8
2684825638125124721145233235577726725458427635276747427441655416785486815765448633535366112343622767527715118873183588716131181843715655762731631878546256123127815431623856538284727518712161836471217564724648731352347122215813571417571822882626726327515155122232878537424575734563123538712831187622151465657172444483341213268611725563145523657654684765788638712134337571822387434572656531517411713667326222135173258827848676434366118637881215282171544578722258535465835142632436587616555436181613286467331441685453777387816666153688228333388542721611216744241576218182187847236767575335451175785662461855635178533136668476853278185271421638548552275788451648344738561581224165252431343477812385317167678772467217813347118844435812635221124542332333234125537125758131648283383235545827436885246141722617537847268631274843467738877747662253876848554625622412168851786518566257771242714522738475454671637118777818741713152686282265345716782247273861745821581474675255812135714787773131251788867481641718156246181381116156658165135776483263562361367143314316476155361277535457185768786837633345532551171322137375865624187327772114618631821748142564668467856633214174843586216421577532477651647226367537757358375737833468241823316131772317815445815248733732628432171216114315785426388347271121877618476416656285581285118777775653351867633127577683761748584755282254124326272512854635555137243848441838324434381751322575366661221261712355474126628863461186715818875727422534266751716476857127126684413622647184232878262174445712822241475381414552575643787345233156165381312453517742237622745117724141241875813774116435615826667132625778371357725567745484167742628857852886765882763412525365236288574663111616753161827422145451317442758428162144746358433664652586448387864268521845487422784614857773578663684655711642476827813388624386226642737768674465836363784828542865725617236571263765125213254822588626248814587844422532824416233215735476815658761831282343636823182646117264251841538721783244221182682228511352375834828314375372556645353487673776245265218447558883538744368554248725843873388388612373418434755487152845372377228147875875131677443244773611582463767163546314115438876744581413476273213734814424362656773783232736744286284335733814247537717651382371188538778166451311782526326441551261724427134235212863315621642465516645528182578673611862545788126482848548366315363331471626325831634645578878463485413245564127286332846442387337735728863445754586442156882722352741416612284611142826222153375256256536443563565434155361355537224866671837852485411813618258671147612455721138266333361755722825343585163745458158175152313451685521787162317374387581631546373835174587787373372137251822355515673737566115483315287748162232761158876354814882211185668758636447316642218287376173248281164415215876753668266765156673758285373831313538556381416732113688836276777147763152268552438454346652341621586413381222151666286563753432571337356855737884224866723766132132524328412357648243582874374153325616253175851541588357745352578628415421862835142174467151775656654885858727183317351736711442727274431313712288831161351362211127432237128385758523648442662641353463841866422174355756828254875883276832641528811183652646732432326676742583141258182265814743175323863737633725325442618174458672547722662643345781551538674518368217845225418175617432885126853861445853164167318143247441285248873444752734655366251111685361755718344486858452767734468156148635251661152564746581634618871843535367864787278885565115664625648265728217682372745415667711374767146536185331572272355736521617572735441641767546472132483561377252673723558424667531676683786628457418754483768382466136175447453713347484666586718478746377784161115554877344672288261575454432538271348648214824517555157211361855578458148547855421683424226212656368273733388787554865886664716231127166163622474732126451712122131814311563471731638164114726635675626738167721753656737276848277745188183745581563212638381814748444124367526361557772471576122553124252673116668427553371872784166578646127472333755173146826431778741222156258135331515817521565258777848335217438546146555523115678244273663213136611156326683832843866381327281852636165312682446448235236145787537831231486542782475865635822445734857654175264118375745213316581843428723411467115256663164431585483142457165863188733716345864421425627534727186566756242637748757131748327187451113326576367823323116885765261347571835527178327627374532248873636481858356855626522674768353333133784635122588822276533535765248227546255372361284447467121584113836358546741751362624222248656811312856341473178727338251175743433528258857255744347863847122335374268752544785328612666464376712385762683148536217161677715256172538464368283873476425885562866636564167587842258861166674441721544541465751845813115334777868573844172554328528571121588852861865131353455326332141156658826663773865312713243127278752713136124416134775861267873835775178381687187556248866451624282466885635512466651646878127244156653823444247573314512261172276827811221642458678146861635741582473164734841565248712575156173877255345418256672632576158456742237737175852336456412626538361284833442846665172682751223121135188414314847243472354166434144354362487762283531623228428581136261361146165324456645347317361673671382188577631354545342177713741776675581853855111214477355588374147254226273641361717311738554554446567276227254882522212724376421167853372166233145863125443152758332528435714128512574135311576128241681867438886225624221238547433267851664361152221313335876685623115232364438357447671874524242558643468873564375714487856142284737172546584187568628222875772255153826563642568487125274752164546435253583425435734447584786817551143853814516776886756712282154725122127445771168725462572483565164843386731547526633877686851234377524766836445227163848415425744363641118743831717768718127588535866567418717588435813574334853245812323864728333831274377371285752184146428153812878427742562146822826635346536783414254116367631538763486136412652144244847761521116426628166247137513514451263271872351754545858716736768882818167751842156658286848536222328175432282487668388873815684532581718827235562487376374413733177668627241683513417745283546444327358141726266477258474487143272514577256744278164667117873356224642564228343225373281857854573146868352845223457636738274342513285287842231573325654573113833328584386218837256483821287181472842147667357741488772856435264435218863515388338873635468173283473478386782485874326562548425663166686842286785874341161673226523358554468224363664467445436175166888133644277511647157512875273842442616781517663268686754477333277415674612548563142474782632845476555686812435645574121853224728171655116846121634713787676627336317865328837687637177525287671426861463136752635481822516875673166274486737882317368278574712128437743226173711516285743281462122565576255233263878431428466344461825341551547533455554272513821623323145285548761124542487448527425438525271766545865624535247651211732428283426168547661255622442482343358266564578322447871221131851843768575841562772538241821162656141858128143221434355143718175475447846751737772763144833532766461862526381244382356758127815218855123648464768815357738626813788162343845137887274863645382667545445338538434353358678718633556161511224267558582428466111156321146268645161625834541222823345328832763368147611252843635836457147384532233568472565815117421235124244424372888143314521153142221341743847146657648611713624516531322615168441315235813344714224256173586232357872268464521133557735781514346782565223574544466321468526626166334743661782348136643612341657476422364143344723287454357424337136733347338472781513844783776356148841744372557217463527863318868561514643765373111153851877745782523177831558838642684473233618532431831173846521775334217545587447141145311867623312433757176727233383434187838831161426225564486373433718653355157266887125551858387247274416512138774655777574168884472528246155614266415258335822338277663465115127758342335524323312175128528687474174867126458751637886745475333337774284816557521171661328717746325445782146865664616485875738427157217428265737267577162642383166786235122682574133448362587564244564145722138588448146253171251214678766166585486417783751466354622368632887516827363658413137466653336423341612438464312661124751778217538285415322452278857431425135455464562263324117614247355735472874142858247227185511812574287886466358334656263631421545665561377628513178313572324345723375164442413467417423651745333322734878685632548887858833233454214657336716622226663563542787125482872367111888656528874734232647536663441231186455318473715641581253276351338562163127365641386323616133166688816815428143668476316621583263838371738683636531362681751743632651418345327642664511675331314576527553151524387458474126247215534146852173228851588817378665287313815763181656665363667632222658645723287331566781666581478254175664541144681466441766415387785838441554524337547585332561326525151263632652215144234172178481113786121882118363683287863863648138611486264282236212165332286255786533226646426644842444368655335655566317511871342185288265354838174471237823857736445858585647323351144713255847343545452683425457128218482145761781146265224326737645254465811658658146635766446327814146614666512373825418753171547842373446164182354562416425275141848281413518415522641342566147732727434771771838213247152466255183736871158753643633518422714323663157158832266245263624884313248242814814782426634183153548538153321372762678427477781624264246237363556322333732317346463784516144365114784247165718456412753254651257384727525163677327568585121712542621432814363662234251352442563435465335433651441855577788625167272762121153717868227663515167585333214211586148852735243358165618528616435738732661255257254682351881531164654827618324141576617387426434568557187131532348876713214534141613523482241835588246264326382138377286466261436322634133763665562451657471223825175187444467684715462721832388457163424557326457112358858658665133471543362176454571533514142554513523546645451574234545558772812754224545782418837148312841281373461885261322771685325426236732137783311182278324456665374854637213513511487476527384472847426736284222761375137833362332633426213285377115578168366265338467144161267175343846741266661314778373368646272372636648186223281285123154748567787263272761181768467473526541171784727655631773481214263526685372638282364448648468843284531627751478523626657611355542614673138236785166483838152566444867871864618222538422424542382658554241371868227166865338125857471762468553234116684283752147853835152614884185432726753164558728174322472777187765552457771357333435663527837462833165513645248472125137516144234121667582216752131314154454847358173443634116761881863328468361847378322678163732725124561264258154175834737121858236554361783465744833473851856565382684474471864154862356428733453283686145787862367561868753255464384165342217332757545436447855472577728888481235886181444238444568157616343466525382835135761287268841372674343443633312588314182785428677728138188871238666245824533282561148148546557281714413525882755468431884656265213341612757184547251341475687128421177333238254875171628857656357463755745762756331413384731136563728113676528257388384634417762124624647111883723328458888373454582636234823362383214754478681658573385785122246134578627246328874273428587478277515477868381775364373742578255173681173873667852158331554276345615371634617514315315132245751426551274352262218611318224468477748837163241167118686327722451711653555576383161118637278172163117121375164147114144722726631811423226628224575675237161731781418621188666135311873386161115255687763331111537286582788516182467214234214824341868258616825257638728318682225873864484282474354245135612784178842472467616138528723351538515215314256527817758437733753524682282314143433275235868354663748827755228538556131633238383343235827215227771573223535232255575746533725381345336546261376581262474763152173625171653457726834673735141825344547574531418162286471551348843885724376824781711115761762325421812888357616676487841624435667625512516367113428773842842577115266334121587538116467358476876484783262832744452765551415753218258576745636637825447255732648665381644814347146351176526382235435486854878453145253564261383535672333787643557268183218248568733143123746162545125443364881534717715176354275787132334431441521111665112436675445347476132181286834534444122323817756225332847611121355333542838461143345446226887171222245317342326351782574778677716531231525424148735154133662228777786538766342332513176841763617184726611444333171377678732683217551881831324338334188642762678244333823722751774251284167825736731788761553387624413476264717456216158721641488735763151532846337834562643742334867343353124756326373523787687672515517728865586281252287636515323563322317437757848765647357551724713811754316786374814747353142273173235265745548636777574574653167171576157372822558423447724771576531843642538655383636175553372542546776688234651681488822318153273437286721853532637535625587516528315674638888753272721135853515216761342811453472338333837855575763857614751787621521573168626351352683265245677436484461138425456325318771428853567664474323527846543232364235158536664762184575218522445434181858273556465724815836647287387358867284746136534677152841676262168848834413153481713686744152335888878881856815853828653765664253757727723111665633558813168545537418257254387452426426381825565822816323723357411717513514752848788582541765313184414744276176833583456413611816357482521784557574726133111212813328571235352718857561547567425356262854548331873618451273625326641732856886544875521517546267582242437723444812451276641124844737572131172432344363813115256588134836884747163465463748152377281673843384787614847282754873718744835834864741835612886855883846386575143586376754618414514855254528234443762523584584651713388756661771764183427467548626526487735871654138131877638357828337227365332415317463885737688522281836536464511117316576345364284743516718266346766585236424781774282472165618443283475226313351768877784352866383531613141365318814773725662887327148123645846743882748366363664435347373564225211471877622847187682478346337554553352128874641576475875324665282226185178224737536635233681376114413567558548452725314664368848186454365786732173214647772742421253256745425323311474238118821633827263771323448484876444436285456374522658582211614158558774421124276118134225785887821487836528133481311673338535186233586855534564382436458373558332357653265682727521266262226621843324612871128862887372153432176328758643422368535428234564663164546212253351811413136548826884145663774778671687181325374663764412356742768515322823557685567168815586344385473572513463536144132246862866165134254557721231588621364231737417438585344153672611414723513424727743867441377247355347615113475838283634652173567262617268584676365334667872715533451377286632837252338174865584536664158477541466216262265384454171253182543658176754177576627186727187858234737474857616865775253132776416486345481827522665877271438766425725322111437585783578322365623814416366326746382448377474553848458643141632861265781518661161862513517641744752817854582214867787247813656288888452868688242632443311275565232767125881475345246446562785817281558125733163647853666545143438281263652535858355373844145477814171153215657684873776256352258267343258432367456641835352547462285177632838665485587784848475352561431633268465832411865423625563223242268716465622777386267775613887211682385554713388872431582856377424351816443373361564631476711353674342676824217865184113484425454857122421812464871157353465817164543784472388754468361517765372385641286325852417382152715431261484561212414514144246186636628758722783681251322333118368612347235472352836655584554457427543132531432582866485847454285627581721453323416242486817374553323154168116417687887375224638166868346853664143818437826171846331335522854357328368731534287578522761535162564466425137454313731174716411363378687282743231121188578876871378844663543854135142556522218387753385341543816327244785873578164851575315566384128155341267262333372518136453531116237325748837865723685418352438152544624577461658575285127861743687736884488231288677856741584731374841186825185533134678735825644748454722472542415873436175328681283371578331542136178354545261381274333865836788464115451837833642245437681366814364626666168114224354223826614211278515228278281383773774125433321237758637324451417646154314535327281631158251211162457745367418375157638553668473677163551417116268633357584588853466433148818333263487257366721263813723664314527767358776538252227486764861133775271255568481313122715763742185324188346255873285133526711675314673617374677684886828515343861848318217233618185776314588455541476254647814724857654214145361874381732282641642524684765313167584276316546321538817855272287817432768183724534485256465252142445338337276331766857662776887743172862458183735132857243512353356523455464327536423883243177371138145557651223822712186112548618664718641457641587787117267215138215648775626475222823445833285123646382721264776645856248458836887327561583632182557332264736133852478414774578742535358782212414617247283617347462514443461576516478814834658463333644676614164778641133355218418464713241553647512382326884524557585811535866624553671131472514853212264431188451485487513431723734826168735447586116534566545738887251214745354122474711523262657553363624848322256546688613745561584836127828235788135653847465534883384683665822532187452385427574863147325576736832346263775348686182881255587257483228254688364631581315762657487675312441844426573324516732542366864627423722278561627311354257725286644676712338452887874181872467712366627556463258127187772185446541268631136328886316172856582822118838842344834554338484741812713456326551641163282711872143328265584226876854844174772172114187324435181653243222211178376753344676853638814883223832756112333667163133183158371341472188888236818828235212215831847754711674152844743463241733487838115274246447782284218758284687518274318648438627718682272646413172172853586535365811128853268565463335582811117317476343358222438758375233343171528313515287436162516171315378446844765474737434372151657755786481846472554863417361143438168324178733658756263656652611563564573222586463745712547324377685721632872314348735876314718347426488654582525467656486867762321856588624773428365865368615513655875846135334356824111577217231637372672724826524885658438843822426355134536884181255768721712621345555174434548551744685633585288452838133473118771225777214684336488412326687365887542158277577324732168718285782215177683221828112265212632866247453723782754761546235387284775471638118751346867672777684677375148626213383671557642267515348614575353372551616146351171221248313887224478546756248727546631357554443747362624445186452781526367462626451373423582346125273776634553817116345214485217482441123248436316687824163541151384113836546243418252335656752457754724167372687621554678422364626287264818748662633767616583162657134532515542372357785555527681264233352865168264124266628354831351382477652545626733161183185287736141513437868547555335232426215561626638423846711488623461287724474256758141481411168326312244388621185556516313411318515471711647444168438131467258688336877838761267716778583475854744343715642765246582527452824167487667313555176316227551727225664417838345521321632157741637282342211212354352122317672344231121232822227251453643477327717528681782173584646512546378236874554518766686221571413141831385656176721488772846676857656643324583365172166851285571853684575144347443518362872216817846382862165528747434682428176861366128226734477232557418176641436637656316645237153761768213745225677177727347643736764444616827153761622443876355818841171638245438181312261882248284317141152354261366483148338348336236818635248743372383285726721211751733824867283823312471238748585547536633513811787613786466383556171648111366143823858583882253851835843648154313387224264388645717168333844132337735343477412553155658558658753316531544345216278745386361825325165625251446254187335637631862235317871131645722325774627311281736285888838262418557188536525384174668537455363728637277521715324377811726813385725621267328811845743871572567651782825616357158348536354567333128772327654151154524328465265234223851775388355424725758143566758641735134536175166618363686172843673285344623335662568548753617833852153522422875213733725245646682583722663837248487445831281758616867214586117525358843833825673345155272578486832523876747812336417133886716568437475161566451112562756517221631567644482246713631523341628782727352787568828353812345817756135531425348232727727812268155455817556241258182778366554258662728672315177884132665172414141233782887283582864217416226621783648745325572467555355874342172453113615833166587681387487586418618146588455672251256885455712768478188835363478215764126317474178157857145154664221388128433542446387613324672651758627251572335625282221654426262131833641754123248431182514222182174325181263474386113328712522685787384421324354621853681752577266683114636267341313362324273118365545675168588581473475713168613736112567226243787236316571212551861187718224118872528844155261264133421188116155323816318473275648686783411116317655855511888523157737144152378244318866655274278828483567713624755413148263341343243218178117551286157571715885871717475173837524871444532182651441287483653264638364724181822856642277528713863868158457246413646462378768733131185517138666132377273138118417477638442115665861384656337275683526436347712865864437231525281443756271827774476586318236626756118323385744777517215625456138418337644777863474215374728418325858778834681538815243283748646342886576815167638311388268744534423166464847776374164881571834163346681752588336784751525668663664338425531131411556617264722675778726846121767823554877428384762321675454231828242635447833326528657888313162885258451253484253727224242247316888535512851143485713384417845681653774176756186357576184577624746734388572347873411666172553845537624348474247547322831176146516147568424737353772145151434171484222763323228214367458282566613285878816388768763677584421277564732628425857845813638271865682161813514611555153135811586135888858316466288455654721861248638334831564853888152243316122855584177712286253235156346658522661245675412784177678471753414557662717117374353782488462418734367244855441876323452168726711216627124665768162367244723588378642424887132117212835127376362336277234144742353425884687175377583225276261383381585835743842717678884526326246383585166161226654554673414638127367542244233887121477675255653556111232324561172276654841422747548352471517622511232526364527333264128171518668678812288346741637235713852587265233423824687761252642714854677886217285535463274357545631785552772657321424433758378813878234328244142784286578274264132552651274375521541364843831481352577565681342813816162464168715858775352346234581214111477454558247448643863373111527236538155675188853855354562371168423385721128825871212537463248177873565234223372382225138143647116438643132458555774856762783314823577446583217646117452541441788746387823234667345772116141786672116715284557152646843257847573474761378625582323626118758326625687423481511443611121166515337466816325443144375483256523616453751442675186485684626337688811886186862237847476855557124874663373646866752518862486754313671614648132627435478324861411348876451851782642748477735743563562776548527452616542434778643158214554476332288623736311772174664626234537453384667855183316431762272335667116443845445342675632516748313261774777488884158337158633331647386771671548622511326876878111441135751724443563614188686654618472134225326543728825472716374237112478662336264233676857283673258387832224447532865352647163887574176365718348185626882355524368776413841564174645811736384332318821874117225546746521821454672548334314233456137766558611634457477728887234516151715376115552158816483323643147288424632343448118425624857838747456738551862768322843845648681236778542537772773547638211248853547182322716145168543451245236147753655582383761721233856136711273427677414481478258541353584668182555366313126148583575641617276137535853261735651628741877315115837121337477623772332438768436688211211627445474324436478188757664482433777472511823337746773326755858843357525677612486132153648885476378236684252866371443723613747245165484776671415141122448331615822457515163173654655581484465863714545748654678254771731846148171514677351637341777731534385363121257651688221255617467586274253265631355847623284847616472556443862614367131146242877382547788255133558132713583351671882477364863225285166332256335182238665168152631817337428242357242117372283136736325166147873653464858175147637128582886752676731235781385234536256453785541823883277215437748232543423537635625543434563127817232563583865434877387342651222811224134421138484881435517226166184417811571581681683728347845244681557215335881838821842615721856517488177575277741831167328322678427173712435711861646475166314243612162214452418161477172672763134281176222338846171456624516861855634145845848214351888155618415148148644248766863852534114112375871814385867564531773751337462851541646233151418257234256651825566341831336847863476467711783126441231231535887213548186242453757867551673268858274778454361653246868836351816784747754382866876574444738736116252624143816385128133416155333648466777248765136516527721428771337125586473656117668227261215317676835641115413746458842532128586281454531767222557448263175144634676748773614726362358264667212346531518746888572766388366246147711558113417356114483438151434364126887747631841381334815815112511866621254857854676634834512452125786772863437753536536146278182336825767117884323676351845822145713871451321317663887682351434811365821112742368555332126151227314713511654576533722834615437227318236387452274153335683845725315737165817122285437664154315736116523618477656218642115445187488127184832464152636586147616423174483854787364413762273614325384448735872615625663777248242441782444538668737484448831422555385548688535225632233723764688285448874817285464557531776246735367262338147375711651348151311637152884765661241866816578371343725811176521581377545313887833811466565883823142516183173846734771587786275448316563872342525661638167443887584252456241463588568545276143882176287518523743416831215821276474654322868324331831642311127622767286841567662454435335334656843438133656523755865187476723524536115162438464661346674166375417174682485448525615874451755885413838248351212438123437264363828828734338355258767271867115854555515617338722485264366746143415135355675333573151154744547584164288437857815877874167472887111475438771677765634186412311166123625218364157376376827624722288422643646612445264833414443362371242115646581124276576682835724437645861526335423167487256788748618866635334566548378714541434862828587186541714717778834843148332757637348138418354847888313883278517313822733437728365255552436187788787831348736324841155318115565241811585277811462276624372517627678718323721536345173127267611274624523562624125573571364234722371412358586187553562688128551658485632242557163421576284741472181651842663471438154631212726135787443621835665341721787141343883734762534287622368455228841248178465627784556384885423417288184121647237641141448587884411826387128437388364817536176534586722684246133831336258567876485774841131634783483178635288518247348312152431431744677763724418338241816155768448877331623238651631432613381715788332361373327347382238528518676676763817788383288112154571258723461431216246262763835884128567875537358131356588873548826548487556458163614333828841487228267581816818768867321771431343226645445182575237121188747847821282432887753365767544238888742466316562417312885656266635316458778483514134781153646468588212245773613773832134317812737425231775123111384554851442685216736722384311416452727868618886268857757874875686765338268654462433227613782836674213738384718842333758248838666757736453543484636613686356223865327651124161534252221455264237638264346348462854666623886125755363786137144838416244184312576774163343246636643823423424648436438434654127747748142461835447257712273355636566577434474635111872655181251776235165573122528373416115187142755128563544764687648326586866222624247588635664545464723428781853146582435612265373752668548611575732145615878283568335856876842285386734123642854554758417717186236876357228171533818521116816325663364786385455426147115415634887774363188314752253624251388485264511571512656838712774824723446787552523475737674763252314247784246467413872421866358178581161452215656512758515211717764537374462133384145186673454816351274581451688161368617841181733447856613767445472228828887661172744221467818424335384753636415345667761337271624821356638346462144537622541267366463132636344425874625736423156683853726456518154482641353354821365657864321373387252353588686684325278211815785627444753437113585773661456116367178232164572881575412254824317776616474848638453164275647168824344683153636562567853226581252573123887351574337784116333158214575474368184536413571824225216535778263772344642588377375883625788676135735356173612248434653848823376565752438716571221386572448744281772585232871662782226367812387366282421626373538341644445564467657511637353515216362612235373128575217144362573876147827523574148561461564683586262661422631244667472535655524311464523376361416244163538187237342653887382342633736255665574174221276112715664614328855171577668484114255422583122174582326773733788374783652551427774672468618185131478745577321715263326886556155164115263664342755753127764266443724817264365547683114757862565544644237664725571857813485523874354367714772847183558518732725212345185261164441363323816174355486655248712853888332377542174381653736724611116885783247415514566851282633431186235556867534657148168813742712232656341763717618522263153344154288581537525176844232136436533128647412731448138423532845617877512348283346716457377573148514134265755245726237666531412168533155311422163786361678681513555437157666774721253372321877284444218643486778411788581674211654142612842688345175531368788852135783154283774372545673532173875132444723787336256322634428714127852311351141656184325466416874666516312416547757846483781458583223748681811756357863843655574785777713414546877335636618236372536366624758413346516846466754126624184438378371831575837511663435532845438166156775174415568872132376431413217783152517665523732636831666857413718526184553483332135658444751716438235251566718167244145132212854437158625455838743824437345486541846724436636671633272516625436237871181428156721685823285437157822671683684136763364643784315654882831886166344546612156173658128873637142465435283867643127681254537112248387867731585863488124534334455151717381456511828877132435546243283633764232783442342481555336253275228338478723657754578227413737121141187831882344713372283242154154138823668814174328548764665642254213176137535664335277342575411578586216828243666251652811556362221447135651174367443231242578682415815576384487238448233471326266654827514643255166846372174711143532172422634741215741858818173433582348513884625756558456834344654487125374453685441353853156478785387786847214625441416472136675324188384771223634772128883557648758757233815278534413382324188161543132423117621152387288315762583812754231883668765354242635555816283212862334277713817166382888568455657472566417467262467366371833267872245543378763611416815565777375256712111176124162723178266151663341222286487812653826543828846847156772582147721722533521175478245531778853482463575544553281775845671245575628547762836212841141518633741478814641548751124725873723114212217233284736747181375556563854644557543536277846662787142416772886327361885451777834345455718885333251836438274536866463653327847331178383216261863676512414385284758788676413165181657517615271356313766574441148672547415883185385573387442424182743674241246475811811642673153833267353863567767735468544518488725312614657435875473113461118857258185251161235744144157165627144643268863185231212617274646527873315817264486227355168218552321312782375781213534111687653872872167783442453423784554438424512475332335546788134256268167285138233356562346726818623688125585517411254855217587421751458874542173665126646463822587383777242446321837388685856712512581471324625315211261632123371118626745277425815123756164168138611152645284654823858262534415445157872581833184371783653263317888777134783182226363347535653137166735724271117485688247674573481634822186166823172683536555862614613818325874888657677431686766814254673341431362738241311583843357736237861854747467458124418341881218113758318642587115216617586574584536456187247634245876333182526661173472363135256725148125233516564527645125611148558232425662118456832411131734386376227655552464766673676328555744553334546354636184338867873267374523634168242742872747543551888126846454364227113256676188685553857651653272142864312177856277474811573881155858876254521737642743487656633875471755326885461611651423752741358845146433846127753784771152754725825368634482777134217771153114686238662762658122538123188465435615648585337346158657863561278346877736168453235761564871685531284667441183163548612161786841848412815572577412868242782583253261327545488211114625764531553731438383788721781858416866627867621546575534574461116463682585836147313825444576257781861726386681537485181245731328165245574248868317874585147746441125238251713634283248731314815614287778758238317331818835286364643531473156153576273144653476437771575882286522746221372687841774513168758276461653777613113142218266123531344178854385683164754767268438121577271325845748384472284684365381765413157648338764558185423622468126432253785438785461128352387716548432627822816154235167857414224767185787675487711473778228647224584743217446234232225137663572611744762565887877785468216232387873155273437835712455176351456851333521754654885731414736472244766224866112457146757841555738226435887587344128782342317851848278448358181562227348571832625614655271686613532822876848727478525118767428768561755528161815824184167528253125762181113764153132137856463742335234885347344623433328563817746366733157787738762211634174755257712267824416354361843142487611541667121456262555521522666113157225184641453675816568683113477316476747554787178645375683682238566227673128827462186235252464337516464446335748844337758156288526354467767142883423767733228141443875432232177331574124132816641814446636435334858431441642363863116448278373774377432262388555763214188126865418228135362287441452731788586686378383728614427554446226242712541238427847488822326648128311131743451255662358452782784471454235142253475327233118254588684774887171188626446447438755632768264142142623333874427863183375712363546375217565674241241474622547788286624277623736442155527663228237518623454744448254623246167842482122366517822437568754456221136238435743515715558211216885187427326582857138255762853552727658257714658568152638522746735567273633118623537751318463746853676141346828747673471886331836811614315154547372671775517362622748875587543346525368786683452315264488241175714881846215122258745875886562752227863571282827862255322848121832735171118886651563611864776566458834841516862185363458516231765365435246841748432344382564621824553277432413423346643861837188242426858267118381661636636115121838622617115615648418132747128628577627224772125825885641542211168516335471372741111544587418573131734837153814814837184712435635777777374565133236633174723453142575421563146425675153145471782548251715278772156557762177766527518478867455332574447615458627147143631442134878823651355734517112171182854113112176173353683282855164821322382586864216545552657331428422351215488875511766688432232243868545782646367151471388223886388841235161716218347344855855251212835537567885526821473164375166355478215682854522351236622828522258648825217238465475726815836618643642828743775834412778168448374315216182166666674832535478173224685111824576355627867472171317447555613162463832484743112117818364811367124174274464672452848746813136715873162417563677578564754764421867365172536814433386468423454257152268483141571578883734146263844752666672481425114187468285241533468136833875272577184871282224421431784157373447817413138321368178158134553863763361543165717773677657721177862355478473564117476218688756358455858587851867775264248721443447611551113716554771761748553764312336434362587673461512455542678772272628748613658716623264247126334262156584868516357372653254754867243467751778164887733155117281824237621757665122582786117737535628556533168541486546823713235413858617512233243814215543836136238656524437627575166326576258568234753252631485152371647331357867358345417544128727888423425213515538248811478161828857816275446666272147753658446413853667278445164835671125566316382235143584266251685657374872316281684158433254834566884458556365832136146833483448245347263758148243514313313554264468375237842753671222448765778325221443234116474456377224418337748551868841574687125716856876737483446312835285817455751218748675188481573268656252613431315871446475141126852574425457555623753462642644311234675727241623658162746112442565611848663414646344587218852267414288136474527348388278762155415671584887328714741337825272487556672777578326681481287476376247486332258172727554244182421683512331156835764288521628856683553644458222357637655636271528862815356267111574816448757878445636732524122138125761323112635885247188567661358883535583666722145522537815616656175635157311522663876674851685811433117748556334628884176115412415313256778523544514817578785186334526882823274384482321855155454876363434457787213132276453815413681844155732622832115742783118368168464654475645452115852253751656451523832216627885287478664418742751254841223162357185133243724816872443461347564141621884875842546441656787322323344142488653813626488737565486617713857533771723557282858265535425377246285374385215367874447676822785425618738346843747853377178255466614574278441772676515378865427658273582245771827368417465814448456473263452528446184811167122124658645887648651158425273584785837852256827553556264743118145544181715564421432158233484885428525616868477132386825354321833485163356864776876367551688743153338222828383651154518364325521521543734332664438445478561788841865724353188188144357325351355118251683167677642167865162263361386132815663486361237331227222812311512174884327411811187418561312428583187221836187686414451587448164844763553332687147151728531286682674511531768261676664374414738567137786734427283435864162422448718277537631545758453521732532513481751531352536548711453376434631426546237487143171132458667242288511734561171348858762348223118658613735731825527461611272583155185867256348482217834143362264663721342843872767362766153378313652385458625588425588861215743667763125756375274411887674224477834342727212481881676122533647442836225616745515361172282266121264552123367824122125883128626711756138853321723871361572128411543325817248331288226232143151625856214828517637255545646623684855536684553175716152683154338474614374415614864675414621121658736324464115412435176345826182542274226677785647323647246713736821333666225676227578883341528871161847658887525443848831851847615685232728267772762455511561132567271137842388573475513338337275861163537664472676746261663557154726166513847775461844877733214683186626622486118783757231257386683365686443124184141761843772246531781245556633733718461618723543623484825277452787412572134885334263222748352217118233136232652137156316742657158632842654886166572763426678281254125277346544358246487723648732744138723577573584713355326368121528467773241256546432661354865574281838353838558388265351624362352452343346262712674811672165862713844365553618447845578352558388681777341362726576282136882887854813413531328546326486783672464835262475223176778174453422364434547756347343881468514814737861332174617283282217665733226811118717245135341257682875283451131111532115248332267855432446456437377457668363445247481515846581187741617634547238547667758575684267214574615475141776358777326681211365432841254287574468261548226841571345366453312324317157641142256282484641137761851723657357434221851131283578572324675122832114215778855323846768244443515716783461165554527885575826856184373636431646115884248612483783331361168134414851164122726263263388853863473565543651718526713712317682818763437318458368628888736386553131443278774772453148882637873383386375861427251252221343742136436131327358741766655658131834243555647444835173444878882853866387853657656232273531286442645345281153585778683826135441511782471256113682527826278721441236341425735712823722448177183763164223665842114153353861746673671288433634744821343585361814178768368532883184725175628371448422458378247554682216444342386744171677562134184372826151351544118664582461576675747148265888118643183811124672865671354721676351636676378724671845547138667361413162416445773564738587255682632645483784342367341366772357182333577724224347742565224346253155811743851452235178561615386358755511483585678344271247443168121561326642218731827143476751433456387823218753842726652114256462187575556412583634816224518843722546252512437486857365785446635546233181883348184727184518868573286162152345742383788328873731717524485571762562856555144386274883832551314562426163674774287657557471571614746221255534651475247582611461721133247662633772165431352887646751132467342576673882124221674135185242632581235271183462216525774165837284763482187112228546185287671586844858265666757468177317133783154158145518255613676264847323285386312738725852786214577165885525222152113288178716734281786115286113263258164612854371135686813263285212174511366781568288486711188315421536663328165155581777757477885558873322878281421588174728278741418446615522623463347321317778771732587121853286186737725483177752676457241166465225616226272857723147858635378552128431217462841254625658773488511141232648431426454131164124861672652575485147374753561638125781123267476187733877882654566722431627253762521865634581124386545673285472318854486553655282425843868574364366373147121585683857352815343741175448857813143448841132652185668724715363667678273352524674822718856573816462388384443877136776767475443271825845155151423111474383536725523274348811853263876316326817266441565436228115161761183481863573636748167865272227816243741265288873886751874186553867832518135123178322318775241434874244656355323745873532615754843336463754446432585748818251642642187861465127766457828531355226385778826487342656525167264473277466355664465631852525842155834771563141256726477381782664366652465448135473787637414272564845153384264422486828451845613263647664652268818662613487835742273628182868835482223237122312186457163328263777811833783528738441244545251417865854884853533146267573715715682753333375638644156872767348575367651687327877854617584326841464348875417863767785644773466273564532277575757347778764177415458723512455517118446334412222454433753585223678534323451273124554788754146814433835878666564176436878443731774237782357172271584782716176762282647878447633673767648826651478551314358727256138811582834833684382787446352862837547446711136263448873578463325171521316171766621515734736156364832638443478157868457542314812852732463671453241656526414761636476621857684825582818326363483741462457887845511662381126136416444356145536154781135687411642453577787322676165134614115876678886373274348556725383463557323272521837123174336522758724613581743732314667282423615687625174727617814362247888861586365748881757357652842642315452655711785542364145811231361575417187647382485566153166764472133738388727634371585862527166735677324286666255722318266643876555353473226832264315782553752514618153144684812342481343637445772474757224625716652486625256444578654246624755226362134228751388252273544881218445615234771718374578733837517458686765243831768876738778516157174332856346381858317854424786654287858641371443833438766853578657151185731534787246624115331216628788367832412785533631861141328357752651557614736758552623722357711162736654117383845226258482277845185457827356327786212747533424633735587171712356847723376585664857573882538435128557784243611262586852675627285742681672121637553217475544131672517375276256577817416166271217328156362154323263121377182168567163456537658866844863348246663465472135861554815467313374851214742622277884182688236455726837877246334234341568278785863633121512344433754876565415618847221741671123165424277478526261858844667641743355441255226733435185423856531846277274753136446652354556276861685273657837342614446587225723547233115868463384648157746434455268245718652172522134818327354546562752437532451361632623255521837123352672527655784526538256341758751188257188237386121545335177853657378157647274845515638334181165751763386222515655335135441444688433732214362714143216446557816556781112214844125445656413868524811177267663762362717514482421527335128572424552717528168777741368541485647211141712765353214737782517772358361821754386666756583421757671563265821451184465775783767346361683375131185118686233228144346426422821571181856648162633667466617785844523325851636488632268715252443775717411143473852238775862223211652158253582483576232438512822183367274211417733225354325476373575461581687162343745373782276111627663412325156412535872158466587162322211425152774478254717457754153243875157315711335415317684716681175282122357851517788565115371475161848665526377253626376422235713566438552376652181685133236567724264228154637516546156448785347454833548677438783464185662212657717228186581176171588723614775353765641361174683727451621765161344475528327656684531668453858641787426847771258618336347581264841742443881813833864284114131222353284153718263258545656128746133128424315383314835581718681151452361417117817116626483433445277475222188471351178328632643251668276155884626384386256181375148526333888157686725588787885268127427476378125483623218155242721657466784763322354571246661422274182676734122846461255578631525622751238217413625732171821632288144124645472324563472441113878781853486515744262511421136172166263168731111587728456431244422284217781762527868562224818311228611475222161764722141431132151126624813728813842745765467343812661631818865851132324737352352125178841416818113741378165816174458344875246714184773656846531165656252745126485831766567781856533744875583213413251713672647151342431858366276252248264418824117727814517282527417432533431587178877887376545355757122851161565233828357677363758256138785743465424156734522564551858737373685837331178432354668351334268217787211215227111477473516581512842667484873574587335353622738183756565168124443873578556446815377825283782316312526272576776472873262457348661483226465644158223241152876521561472284455427316631415661133656714571635875715455286633483667157523246441122533243573432768562188424638637586767786146828536612321673355111454384617355228556477455357555361781757241732354182715141753188135766282362167464424535572576456514384577484217611768384247541312647166513881451534233226162218863458116465127237511533281176844885565368866381217851246714568524271417362166777561351817132684177728352434163536228878753527885447171288666626344888764783553787313382867385886175838428644624514413286623362566261617342721732872857338523461246774628881641447334233674137713582553128773783233616572154741658525434168158178318657731775821867277274156851751523116254645388214538114368452563561285228458146416366414355468426512134646346153476627721133845385565538861245548327756458723128365787442165285287138672334332257614245822241736218247366451563113174575481233751764261876531811715333878583577522147713235323111583587416632154365722135324521241586814666773866247346568887118727525852316683377618436483763752274768585335323781634144137164382335882574765245885115164872316211615721887278367734442818616137164326316724627212623563514826681722528267341137388543564125454443382277618772516238452764111122341434815744562372776161536348431171536222247862251534556377722588558867152555437471815388177286723416272314846382442542515482143471614734388174875248866276372388355715132818187568236544348175171637332487184826518361365874447572412221686675413131233632776381517381465614311521283543326646663582215765786824834857286757484451641224411662755352746138848881625614745777151346187781472346128648131317771712221861615711422346826116575363451546314744883783254722246461675618136572647533847131854587536166676414338657153523525662235712276483886563465484455888228458344571848355688717241446334766752826861816163813436567757341186284752413725176835358245866866343784815274443245777652827572823252352841374565741676464823171456377268264381541578722321287334623446121428461227751882122422574784285217711737614418667478543588115375626711341677622258174143128247776553257822454566544515876417276818275644588543263684373623527864551174243114126455751728746218455434747727836338574533114434361861324713353885541154134463716584585673165334585657161216557763283556431134283456233348685478467682134247333665358274211325358287317478722245442456547278614323621528411682845152612428161458436478136665756462217456351865528234134461152685575427721774332845824332136363476625486241573734833436245433471148665848164147517512225738763474117612375671241867181344777733314631558137757524381471467826216561386216677115234348846734555868817337553463153247242425837134175724341373358664157816261878477526151745271614778371886651587131383374557638116632481156773675472328662414171451588362858874282321854162568261331754825514538462253538473311113274356714866828732265211417227183527878343631611586264271183518852425448373441288563181761181873624835723733458126373466435288237222761623757725454456166676615537362314375137441473258534255424817215231713343182367336723831127447532517513767615185733785557318752178845773653863213253717315787866526115441443324641887427864761123681244874376742416748312787586833556141548271132675326563137381643824167653626562253566441365111882164486768285317325138626726873648788543553758557721653142388631326832374536252831155351455188776471315627143283887581283463341187625357157144113858648185886682562686168541842334868764833688822177484145241841436871444618351535335436626627757252855385837146541741113474226617784321514175718574582818887357217315353337827736883143648574151471126126717652147123374817811157226437275521422233137127528521113742335787538728172888347868876852741481258742628765416284858511375485412442213756116733825765812426654457648635335675667222417328872334258237327655238522453882541478782372224546255777881875141647334532411464241735234388758534336755616653237717336425412452752217667441453744344155363514351531464878822263387381836744345168216354313436725252221585835542128444545775434658847816251462673224637876186458128876652388424443875764243755336374811246758218416171254515147466837628885472483266773814414322622144618247186361658148156558426687657633238533514268141485116445317741751664834447822837588848236812773721818411762132551145137785564825123821116861175786365755428477678547514862546626134516727635481122843138853582384625884436643754818827413468654235782745511782343812652685362651381574735771182172224151376457257865355414261474365642375881523311812522618624241465218768526754412634782433843841266111668311722884841184477341426737852788832621271385614244246585487236181268857854581621615835261171458473867631158776824126313327124658152585567556847356877775657721372542767524714336171565111573577632517426413513222338548654517442387216424475763566131655722523448731548176338676388851188152383372815871213277566158238231861265166624443721573848568173265852265713843285721274637613828272188548411738171187337687856865762773433423431515188768334837224453385644853861561523246345123535555736732288346867858573752724431824613582423676262116142231664432457716655578313113314287332365221862334583473751786326218316425572425531475761425244534222764188241384148582313884356465622622512317617337434434828362713162737157786688133242541137314372461243688327837823263375763782645735684636486887222518243533413845222642452647268386821231462732858774688461277117315225333163265214363828134512147636258256248731237426131241342875566558874824837448128111745138353817813854454768477157148327813284151856457744482257667585455475847643857748374261516363578234477213418878774787828523671281537445446111848134826857276812865475126327478882484746334521786885214813447316253316815157113513681151882673185382642354635172142226712141856455621422875453664445233384888345864625571132868313583422772422568817255724127828864213452284457827618872488241616284511626753222882876682563641138548327852863633577223171322321845664438583863827311317318147213766221748713255685726616387175452141784465656336714232537145541621661714178778431541363164635364442183581465467283826834863588518628867771387176165625123838886867432866185564846415163166532285635732587745735546628186346565737387416182272785464163417131511418821526441521733346577157224335826677388817881371815472788372744217187587354458228754513547782718625161566622581243613557416257785388436784554677815367667483732867861241513646537621457883746641586222868248858382447734274557564185778761426323256516885147574173557512341842267525174575313416733351172236328777375611812253882886684717116184728156743835881158428567477647285767148147687763722467775346135362676587226884833148824157627824258524836383773653315726255654141658757184443324655887371545128675557166562468841231537588252731153765583431381111764638214484456341888318817627782721747873488123718611661447883775426322621687578556273384653136378871618768583254573762346226811767548173813837373631431247788745358357227417843315855635575135362357646257543741212635351453186877327833655848625888271286263727358248285656328514428515822764555546255632428866475315884661786451263412214212748148585848628321114144255645485186153227285684754265377722161361143165741121586673217858255853124121264336872551567833755242128572514647133257872365657868671638556131581726364512743531464244766448287276878136771231737328455118625118487367145764724326752438187517514342613375336738224156833678218641421615345188571672342361281722761587288758326171875113617471666433222267618164223631561415442772164876723421848762434562176821714782541753516483243656734276864354214251412216236463222331627153161585543424186741722125174876753718138366656447425387885451615173683221852365174623118324885261485724421656824852363812486528238761878854216313516583383842531527316367488775645482621672445564111687283162342552684758164381686433843726642813142234111136765215568457128825281314471451236424836573454343832868117628613142115763115238483655623181151162263628636246755737318367474247362383263543238323128143847152557387661533815543452165426281456872428577747188115227751271272471523236567264165586133127735843662554322285518135438716576742728864163352468442872468274857746613716283118853722535543815475125113773654646674816157124523735183447423573747388612463832874171435766181172722748575745113121721384664768826761325861136147781738886141838525554821582383242235772175765684828317163288473655842141324858442148445732746213466547266233246442353585471757151474288882215526327577782766248377764353541783134858335578863517445477483548758314817463338376281745652515587484555818312246862613767887244851416113834627162333576375256353363131388462267167823256433267261264263215883468857368878363788813886366863878565388854852231277176671466434477574271545655441354633346678733547165728352566562132825581261224882268262128675544746175182111261176863762618252313811275173211777265427687374214461458654164152565674513417785838144628173155817575643651418518574542541855453777448314425142888151761733174138868761377473647341836171854426321357882716661252242825622164512537183233566682416667831613254863678653111648885222622782763731264737245775631853231466258242337412783466818112184217428411648251146344642512627788517258288214825518661487366223164755374362753871617654272763176123656184335311862484712855823622584864854541646576864738422351578162137288333877345434366218733736511136828824728857452747621851387387851542121523154238666331158887653614566284485878513845847414368385453163178643384557118551856746477455751335632177657521515861575131363413135343615237385582225787732262442536864577864228347576431544457667864188446454455714526347678226671245751413518286257847326315678664845645116576787653452788824556557232788153748362376235184241716535415177327352248757467573538882518616248841155612255861833828241626437888164385426574564526211267577473358475526842187527747525473727253252628124334772256818523585327688732413882831252748362677825355314554511784415686328157756157288611761741871426725726662377213644471462226835226685428324714764263876285458866316725656116271367565245486384822354436216871117731425654174243447777414663471233845571685616826585313766724714714322187365536375562858587644622224188725877573731132642172521633787676842418643622473342418542422356541776642663876322238148852656817185436211568866745321316442748247747267272677128651346851734625218876484537816768814368418742137126323435886671246564262256368236735778468614634157464356588463726481114864114225838124674387671886686161267355844726182431758427244451274818261522827231313722316757536184617638887611487441271732455124272554524351116812636476622784878232343645452123843672821111167677713737348522525841232348125478336516811833784177267158552676616134684677664662245152814672428622146525157425346842638213322278184622876788878644514132433227274522611255654677135417521533146468511325586855535733664427388146863582746212331564737336235288456622553262111226316146651341845223468483288362683464241741735154367876712435612528888678623835338277467427548766466884866838568477781632563248772272548347884418258388245436172286451855711347833552233463141866618461841542114856768213177774441347438151851152648335631427437553152534681383534154334335774386563433853678183218587832265582357356353327277554471861646866168554386324618155263266287884317234331527178682218232722512617581634655251128311821162388461375148174386314315183616415442136632318335653154328386846447321851751471126187421318618324216868824658721128737838585433814281682134663672364726363723763253838713866214316677112351544538838575468175475723321413536888558216648224752433451177387154628286436458434534576375221686125184344158857172536832118275876153287518482811233426584522171443762222737835817856315634512526484663425317758254842422868771285653511282144656151868732716736457425434315662343138522758243755686236466883684167636518433777323716441786765362614852712746657137447127615388268355215181655124838747624714787733321421283464867417738321411248231341468623768326111613758461183235242768156748425586532145244234647585567248757116626432523685236675838323317615337647418778852685888787777645875721366741446276762421318744838571217857683326611712513573166582617464334233853511761688183727588433732822267238313472857831778488678561784227725161835625411318747412247556117512254734371462125462676118718555472832836168232475558358281652316265457152645574148632622374222544251133283721232664586382728561855655544726516743888237371384485852472551822262257167815615642214122347346233847752528278328236518388181413667248812775477487644244223361587112813751485715245661183428245846243175782467863588317525231634814823212456318238255577767786887165373224425418322536373762438732438457866516114864563447341731144685573214572167581814338428181558764152228426743883136635341456831146337336526873285435655381651661314787256814281413865212267212118477218551145685653368253848748657245287752437188872583556447478883113757616476872212554854413352668554482738433623435832462364542163563752412734746386418335656553871725132212376665326815571283177766331221444662811282715585581133736757458586483518351578615727782474771748285413445454832263143856342876683744254361468576842883587753223464578572527273874664183438727135171547761685643125482442123725171644587233787716115221322368874848158577837414113374876214787353855423366263341567663353432863758366681117112158523727137822813811378846746828536425887746144484137138661132175683387773246546556125168162846125315258161775217521736631784285633815522666887641438158247367811857421346843477226183174727674331277263534872381666662253577621685528533126823688366557526844124343266275737153181325234538117418485611253538815643836376745255185666758213763837321625451876583735211177325625154285447215731724431535357581112572632443683434766576278847524763512753787142537743162122474827777631121824643277482353467731625457556525178114821146181743411825747166545452541514718784214783447842515721562588178135415582415311137661334288157126237747685272874757451465462841563416865484353434268376723614641871344554178828143131323351624788581145123622685888587523282631255251753731858225264582822141765387144373175817272541737513341846656684753458767587367277428564748575151856811358283817448466726462834181441463153118724326617112214323427232213411343445772673463562564183714225226267645578783758623672158567658873624832527764482768675388655658687171818775285138886273157381856634725611785187854368572161153632764182676245641734777144757176333413567753483275551154536812584812824418645833257251361857224374145573517616873464212314673177272441651127776734351147273451265116177756345677668741558864682818574438668387655638755343678566522534516536868432167318246283422534681111766316474811431216157372456264211846255215857148642241156468756416233351855328881775776184136477251183157356316271365145218756538648621255853262315878481362635566217221423436553221656753623246827411222451626184631312441464223563374188232546171627853185167335621136658711377158441746321751373155332377325171635416215277876243776615483161233441756442236522718165525588572525666867286748681514832472318267484787276837713533822231352844344671518783348282284466268358471827145584584424338646158555581588151575535143143176473418558374846554274375368544348381222616711436555851273716212246234465643785147318827315575786175572756182313614683473547277583122883563461741711225171865422683477712748873161672386153582631577437628567564523348114361434188513141867322733664365667477854814817664213475428542175533387675246614121134265176151511548124287855837636224418115726731412737384757327131171156288778838772521666457727783464284163832516634411113582162427716361264122655782573832145254631137224322553643517751662756886811687681513874882676418652141717563443163166536612452187217847663616871887621877188857375761683154428514835682516463866558288555514424574754562375272884824561686235553648212381528678236651338148264547154354413856437283285261174447841143471476238826245427226537478483412546326827218441338677436843383256545284624255857723625326522533856543814816587178417641367282474237285375645418441872878487343736555241724852863851235674117477648724815182257554266685715341175167554161345767354134262415514727331643447621426585613723174453775726237616727473844323622734172351674441183536736825354133481336452512362221861362864363523652867724122743716734686224445467564123425255223863442121234732255657665277418615816774784837253485252446376354514787864467251185672482731522533822475728281771415255434443586555483545552648458672821335652826523474681752464432271324551647166124574236178488627628761443328636272364863527545376364114315777563688256124568187771252378764321555167438782487246338156614132746151751745682576866753223283447748535266732156411175414331644188627845375586737813213643673758781371428635424275485361315576236254813835464757187682427846655342417682885842751326454828542232172547484187271762424863536321584448275545268226137235445774583144567283316327831648841237254528543462488182771422175285526138674586733432271382111676844524278547772782615645543371565183412333277856637367588727871156383285171763512147714745311815312687815858761162537863283861157223171235228236158746753225722341617332711788184678452343675776744364125165144528122352326455718333642745428566448331468275455345326217618253867582514582134337526333154646843757525875744246115618662146447673285788862473741371856132462216526765457553747743438217155862581236478214245688147538414587444437662352443823424343274318744243571712626617816141435422316477645473624872743243852581782138411155176562626547888725855658366377845388432782342333877441877362136353366545446566554168233551734265418121354172334747336688433548656567353622552833435161621135617334155437354456466843615715165715772472327331663336667745313588236172763313865365832413814763476742135165838552725163323416624186858463665582461136835873524678375322375714657722272368536665513214138271623182771127846514262257322346167474563661124455832643575418176574146864143487141723241477452728771577682547313251445188485633627646172832663847188367317447461312515768133487863788486747645375412178587787352217246537352486116262732677413338223733367576774262344163871723732775117835318623723881778737861158225668718737176266252741587368782458315888464171663427544471138272772177121184232571834878172666751658436236625534586685518363627751368688857517836683818743272656374853555362665444334375563785488582413611876422452858213252662576737185643484636487466472624463723372856212432177585231152465756682577214244328764384388215647316565852166564542646143658834635442513721473484256531783773742456213575278235651311158113487583774248437451883681616323523148236227251812652581567255527532441733545312567636451775414723834616632252415844378324564843215576348135242436761453775361556772413116282412174731274461483771187484124824188578354612421488414313622761871514236557675722367758781676642612231546122563666548488254525355545311618852788521438112164511721121781673768482411412564532324385162231174124264361184527715735412622485485772815671242522783118232862277665533152645587474374367522348173333538673838773727351663764432464724652552111487374356313656413542174836716453371473114446783757632275766277216342353676823314766842284423344535667585857284632133313745646181233168555171454353354685768545258165172256868382336653341784476188357541746743665327612487445114646251244778143354184331261442725232325484315541628257832163221784832262568681622314683811227317467572784464516786266553275673225844134566586766241565751127836581868873613178411427683611581221813861317565223324171851176268766261851627845266345317115538463688675744237622112642128377375554188333343672883624526521428831148148161117254535584213844717528288183184821143368451641287641558565845834814831865516336261833858114664651254812232862545344688316333415472848663555476871416113445443857712447311815563371651562212167528653278247462358485547335542188832756441874126155371173334411184245551347646322726584824334431521275216637338277836827136231888813271744543261821578183723562258574525568885684712771668875787622134652326583834272855428615566756773614454324332586735665838664328375777721251178428886475322424347886464451454415152611217145246815648282717244711876617172683183637343573814255723558357286283535858274575157541585287874313523225633257433753518685583881823881454746258234485465571536637526538621815825434576735588227646868887887276621744524771683233721478245653481572634217245557511547232313213831281317233644484425788128146348438258862333443841438817513243246127625825858244754724661582573875727828474184146287232376215481563131848855131618232336147246271274338731311872862784265846334457542222823122774151176347872883727636837286844426435625564668622582771311185443273324872825686415651786586646132334727571115453678667424678157381338284765127886833461715322716831726353452321813726864415275845684371233164723714486816132382852441133846477365472132442246438543313383812447642745155878388253241576837677257483865254283175181244517343654584652244358566246737277172854471713836153875651131837483387632773145447715441142114548738367526481642423626432517538512148851361334542713243358622648748415532261385435545448421271232263385228317437578274172716588776173381382614268254332228748326682821126386473117431617588236786855666163311316111761316225814361713378216234815558378562238632373616337122567734738786816738164115614222838723282141442685367765815423516575462645446522648275473874841365878613857565741738873872843168363284285653214847715211184362854244364885726317257445442764651142575534226714228161564457771885118362671132441123141272661625286124858157713771254248312161658337433888766654745858751163185687236286264416541233774457736166785515887315568348586648482288474685882772845868488758667857482862156215455828557241124568325568371187313765787362178536235742376443263256316243827877366412335841827341672853355728225863116661453244813714186248257444751477228214662548145448454768351168756476553474355488412878422225161475731875361828561728436555132775468223651613636314227864447332865577818167111347758623636136333557847623473123585457482714414455751637535516766478228116216243735455227468222558247627438121184611238672264471412873773485212538322286468727524612646156363133125831247178516847813577812281183643656432178773563587175264371214576771678537742712666854457478686372426168424512445747243867534238161747476817657887613666238627532365713564386785323386821447262417885342432777118138726767384435881281484362148842521764683713867176276311164138786841366346248817335123231584278533531222516417846417437456431474417286446654444755687418753752367776177758264546623523484456273137436763778814572781726753537841748236412318426264345136871641475117715582534852855235731562371776327574717251456666225873261858356615173718514742464138146118534382511757715858213275776456878125246887665862848264742444742614835534167354525148473384665816811428833455876287113132415686386885555411155471271244481626325572246683458683677713717561263382422746253727283831771684427617555311676855534784578547651531443158737181611688214665512231343347871385436112173255626818143834633368862578756168516887557557177821527433314672642187751222171748811453451828158858412133817173544385341433815867567677677246517636336166154526433817633456674144746218512834646133554715234545585873844114267736783368773884131327618178115555242564122167471228876555432676817131432318654432486147352428766565678411172434331844761177665438656517322122244348482161834134881322128881122413123825675175542534332872658766267236784417858162262151775767155574234534486811284386145222184348652275372872586833636225125545427335554623572342312173374488117542164242488381521388224631382142728848288785746533252284274155347712727456816361542762781885476867125857558272816148837584212585864221162556427628673137417354621143716138341718646541482834486266447726742833456222837626233741575863627766623111284565357683627712248575354254341684886466387245838886278562682432827664311673345741255272857211168786883167483543658334538446253213412475374245571514834538241232567475814125643411553873564286141747447546172827861855373312112176781342618712367161658888258134624414665323421823685552234746275376711447341418474611721261857576757757383314212467421243318126468852677174165817621431752648176147713572147235117152214877853626414762536156654236857343217131741273146342674287778674862674428417412113877186772711764842144154882768734544787146623173887313458346326332622285564748235632547277566318447237481444324784128534387824538458785848132421587442546348462174161551454263827633757347282188256217821343332215157772367546223411382883325512714682584324536864564734165386544861721842112455727352634868273548682372258382773616538883877713737653577567656684344313351117181836271187861218241547861671456448754764326317822875448474588313275338657477248844278283242263266786433267852542166646862875267514346263827748126471144838125833357871848423485748521163872464757255828768274355326373367174228842238773661283381678616471783454264252427214114268746174234266554878777385665783636332424837384652686533268345677817158513347371451173158181527825626347638263277352557253274866415248568285424818255647855128356541467874585573568688255466861521636322676835248778485188485157781573321128311358817464174551338174326884535556423831437881583282681378743185623176638278344554483437267164315513353361782324363375188766886155451474434366668887257115381616222856361353638674461867166244532786221725255773881673456772232371658441153512581555582335125221385281863273142754371224425614633328165364365212518227536716236265233438862443263772512287572855578483845758776652872777615782326852726312175352426384221311518784876376472166727253335465473432536754268336825446766363572424344175218733181514847574883642772741131111326474537383557483336527631432253566526436647587537878622432314231878382666472834688237166314633482422374683443577511827318477776885731855811265175244674227186456816512288375751145121532417721266734651557211875486446354635343185457428881177536837263513234141355264263732552842634684564675611884316371213817231556674248671435835561382587167734458541427258622865164838336215357372334716674567245237231457171718147288456871484824646482866824584363325874624113136743635884343471617365437814224557577777278426454381531171167534142836344355817116236732747357663525226342517325587767127541366335526217158856112588361722828358816337144585866233666417611235286726376313861273526257687627886344168486773717738512371627227457524531715753645286374153765376135278336822275362681762224643125441344885161313563255446567778121624113371177315336832355183112774252556352152372642466836343277213434651835251874136421722231556451832575716855164476257367831646336284472147342778265888458483636313751665455211227474328835284485641713128331328156455147654164645686157677428331646326788366487536213662121611775114483475784647437464273314377758815221415836661163287537556118616277725477742728735557461667647323712828788841524171476454374676657751615661727376884346435864638422257434423322571622422127477186773625754142888167771572476846684835526632727472368833747438768763884353145884676275526166113681858175485574828346558263848817861567777843115118462388343233688723657253461666213418318233568247264158883535356614285224247132845811816731455773218437418222162658426688734163881711651578386223221888768846333174126761665387316816871571372358422114242641272747233751885186638736311475261824644878675854536216817823581288528127853528842358146427767583525527471632385127883334127544885514123156773174843766345711255426824378534738138473717374158511858156171231138136317712214232884718274886865838335126884174864321815384657222645313663761254253843578112733514115462654336652853817668723871351754588128455527874747436372426118537216243461738364724553652167881471162817786674756877814117563562347215872628712466857425772215881722161343738745417711384261761722138651548581731522246334412454636381352361358162283836464371343142664756558526345515718236867233165127768622855273734324116881784166814873144362621653158727514111652745121527478521436177815312854188317431735447486785352448644221757651448844681441572736666788834361412413548574312444622466321457454265428463718544122837556388615273331237277238516788322612647336261351767352778567266144278672415181274861757662255565154532767374858425181824711353538872734358724666862624112787251128752884436888256125232322284752444284643118125337827245135111841461514765744463235616268776477522363426611144134214737466221848273185455427532117286114622373351568111333282853368148116315532254753765741835268643641461581675757114377337525288551567323352746324757552474683228243675171232554545466675611123627875241863278241483221381458737585726813877563527436235877827647835673676284245855677763634568858577422232553727343731113525427136745658771132566746523765173883537781368442255546788236442736258835558553458618385275428318871541213225231787473862273721765588225414177636562738657148673233752162536318566726673543122412374581344842817246524738117857253518331484642566775327785687163433833862435258736838478115723222124377572784644146682563654133832438886636117273747165841143433236282565863681145712462175125325134341544711871237865134333564664267828168654446831413546461834821418365117442182743264521564135773626826757647828883344167442626157356118571442137332435748622376828581254267162755615251127856318235851446841183258444426818581274678471734441735646747544184278213651731271854284778283368473354638413486582517172867814448775347748188445315171867638161557147833617348778474567411817868444316264618576282545345143715441532828376241568684237638578281354215741425567434526145811531623113373485613223575776446216865766264211732644657843546336824586774381841772747548781583874381678665768516687252717756155242328272435375625416677551235356274663812116668726555367472576762335573483251748564767516432717532256455471222165212848372237587411116641453235626877715588154884612336468682831627465684216565632732237154846875778148535257337271483865821327855537277654583872187171542261633885318145452451635133254142114311537412127761833116127533611781551362563856611126338247275255776513335382168666466152568142231857286736548113458255127688813585374127447428362344442811867725423782315146641764778666453342774761811271844882145123358458537612668373447714617266272624676214147576826416834457635517842653736584782513853164837588383225417627713128875282645285781113313145532481488174727435514675113177246485235618281681252386466663286712472653537317373218755233447785543767632528356344371718711671722188662531123456845532573317478588533372144486171244462612126173586881685244718831867715116722741436216676757721524184655183277876513867521162131245612727282581821374133731114137255443738188657445725285283353677388363347714557718877464716165561554777335657234733341727274647484848473627447586821663477527454548444316726676345412351172526147178176665183334844176754823337683617434844874138247421873813347677478573647217222561627625828776384218271581378246318776348723228611224841678653884467282641752673371464538454451716682535617536734576616543684731468233468323865321181322586161164764611532788187257388248822685162588253418127714333214783552235185176127881741768781336283373557655434833567552247832247243467231644233281823713565686117344767818828334386363538255435366623218162512117332671656211484166844812162867611767514272872187382643426314141274144238377474223144186737717826377481437863354238645374754653152717416361655778728127581632886674532234381548186687114264363612651544831154554238641226551871753774866563185125158162483487141187475788617366732345545542455461315555535158342473686212144351457824436538158364643831735257864652654174185638153353435627114146378377656126827831231462863176364317141422611518283388483687135133514545476584528548258285184267287658383523142563577117364756275142567738281826372152855832628324467857737536352436322572653371786578138482174286585454688534514843543487566883353818334847365768681835752226548818437823451814573342734612166826436377331822145168827375573842284788372171855152154547213157273332331215387713665188566843336666555376563328676252728568713248782435673114148325516254282415155784468346642361781273352518765852454187738853843637864771457158762361741615166838683141286687341567358888583775452335425642535548142831578735146366527757862286711164728467877375834428363553741516685233671525218251244581554575244434612454162583377714758276467512842276251376612272534222868425528684221227585663526847781638886836445236552138182352732865761564775385111321235131324412654417885124282834623326457464588741585114284353435456158515832615335733823355657711564124374443145688171873225685722721348451655284253827738317441638721365432551163825668368714444326323856772585744372227785848347878345524768141578667257648343117183354416412566214826457382318268415455283128786884511136863771782836153461151615235738572466515618875888881822284774383545863414117586473441331315442355828358338775581411583534764816258152144638275782852372355713528281315737623882273371123668822437538118751648824323134881858788648326262742731733285251825415146838523486336426686278841572742235286183726465735113816122716131316672854267641227214523781268716164331754535326617265525533268873425161481837368255763183821517846454211863666572727277148111585317437571557222151865741621476877686215861657554327883834678347773454856688452473333233351281567874145615326462755634851646671267533763412114385438882653331324247435462243547272741813343135528353466572515488274845345645386888235751677287725278321554141738728162231126484112611665771821512568442443253561412574738721437674288131126841851715877738573816486886614384351116552384848245545744522527721726272382475466122563681457331368874223831567836743673434356858724285284322614845824256378544535125234632552553254546832786358522612744881753245315158348841568331525575367642778385376746883586525773865611575224328813358628147272178628373782828765712761441258366817443737578563254117157764362122562441318826348348714587122784621832657641831865846162571335764526387758553645716264377826583615314286123874531246375146713761462546227123466251855135465458452215887418623135781863511713327548787515267141321176143724153863458868553366468167777756762225462837884227834447775667442333836631275316151112558223634823816246855485252737884573545814381525312416633476345413655715211358558681368314817244521657277874788455152152443824345817786272562214326472383374728128854573415275324838757683265673365683611278421563445322388463785132387466325163116215434847276475325733531787185423832126714223755834756816413842834146686218581641233583314364557168348736355426516536866864426873824456182331847612855342458157816323622412516133888121832736337828387248366136122584274466215664383264616161378518826864652737324381767145268128877375417581183133266571256765334262423348818327282458445728458445674664365766643487412681282145371427442837253517817846833214412443854713535553323214583574824234278351672833234222542888186478817514373433443564687754354118656476522434768175142586133188132378186248623372586622472687351487485278722146813274472527158188615281162846514522831843344351772116113864584653522566417534573678156344463545586713221168137163168663771742366657671644656254536414473234362134467232564241288518114137221871336726661254742712478542354458158681456442526663511465367468364321356666828253511624751683537668754136778414622644138788228882467576225762234168178138541216413766575763653168664547268885586473712444421683356776564158568823268824452171423687415576414883311368312576377354251318628727245842568486185626113711372351745815768465174316663553686573624725167115678221447413447186135574271652288117722528554433743311775757636314685544581811875273857118743564113364781587545768135733776648126153188227843126628368227448421185182863436438117682278824563642842118152752468885613375737687878151653517321361437435627454347821183811742844575337586112116888814865141284628722667367577734685782182777711782665482816486736112772158841526443888756286765163351525278837643638374883666241562284718488223252671171114387442661721656545731117775473722323441228252573155135864227486377688417383441653833288262126352782638558563315315524242121422682734456314314544163554453484354414548346667127284558552711313341762786261848427844588646466467525785127177836772817472785233884231348716665454211827214727673213333774242654762864444783252277267456867713376431875124811275583444647487723234287658756545184815466776425438747574266821176276771567218743384743865634613131718435253784733217112632612171622562756742372613278143781687751576737128316444352323362346123647422884725438732161857277851832731128157312755537334147814513442424421217184326756727627645178371328146726845231813671421675513312816654858543231184716864182188271553124167857856144617763673517258421524178745256683171447365676688457756441536262568271166242872526468111764251374812565381454313825586671253882352228747551571843582836613167284475835477412286213383663538445751824558418525846733665627468614715737668387747187344826358326457641513118551366281352656375181765483468125122717731615131531373882715716318258118678248318844313241681137124571545238756422757738818828771717838453185747688243234182536677232143448838487313672687556375787662813565512142871746517846473848716263671775643424735535864725716228556512745686231383546838215774638155241715288824767532147586156533753581728367755364165584866621665132714446372418823563668317465544775736554455454667612647244315758443114221453786256386212313477488355466417457161368155372281688534667478382688683217412571656266341258747524453761276445262755551272136587513547635166641433848663746562138188723185451111364237578712614521268437174271774816632322488526688243127113772268512711546274714725784554748633574431552268521168554176231688115157118383845558571548237814815426834523727371884858442338781317681228581187174178133823883584361842861666235548228262432777721875632785214738446864117852341437812756337477423725386648873823371462865423222568758431177446475488272721712838712424423864613712736826857841481513645617264455388656323113728841721871764275414176777678666622388184232328765874522456138462217224516686373747861676348372212828846675311381276855586185362221725153653453467253468144261448587613844878333655152836151712626287272578278554137771286233865684118334848751833628437721177343353356346383156384244625488734256252773577574873367716845888124646582728643137162822523722671751421267713275683474383561418472583326186875511555684817657563687676155751817134588656237655881468164318186761876448257124273385218615612188644387811768784734122572228424888384745838577157568374216145511248634884752334746375786267637628488548872774355654341527377725452415164258375521542583187461126234432726412864625444541354453745775136477331413823164611215581775348186571536577855432443658336766733482211768651853264481824661121338441424188152167477475511212334337146446127325768273534541371774285841358252334322374385434162287752473367287586722721128236422787813348755374153215827841243138581781336865167455844684475484324188183478652186377624733368761735745151525782221558142874837511285657426655834681564438522478564611447211414731884116655461426756567378375468134442264421558244551385883436848151266377331812867616253266866542535853755443641426613138683143265351383747773722282282727627815516343584162121248124886666534674468484712164684656253585248273626266624472856883315224785621642435613242314163158372457885821854131122258632517535377143615457561568454473244154552163383515353175837133154421475357574514236144384713265517223457873333423273323688676734533567852882213522541771417787221164861755846368221364875354745548815877578372761886442546187243248446862758646682183257557343263217781645628885285516158554471751217362544243622848652567122186774572432743225118542487761136422738673834215313336473361133342572455428731467367675668678713532473124514317114842228653641853687168226644222566378852725877327631623153165872526263351525316775724728285674512326228841472728112578464633753172361254268421137773438863245213145152245147727685835833813484464841751135526383556715683118545811656466878314565846276573484755737161638331354854532776216673722285335358185476531475285738717137332864764167687436846288266146568653218213142882276713486651314876264772755614738276575251852126443777861231621337843434238417752711363376227247543755375883645735557886218884344636862521575134351246754423454577361483242342436457711742784252155661874775838532172152232254128382451815284727825127312183212637833523118577168247135714122351144113173637412122732112271376146527535585316517357454363466662484713153684821746358685688423357617124151443534728655134836758536487513617537816572144247871443251611147511867683787877746777863841525362467284174777622877762125743171374761278256186184466545188417285373366853337837132685762762252476688144876746548475662718134861315211314188323857274362874142167278826376374336155243347342115811887633151241825436431252143233287131343157118358188772845868788663463665245767436322266634328843788266346831664162285537558221588473716456488483372782654375335358338662372886332222384622822456348813717887372483387626528621125176163838437544561488241127226384666836868483455575481167647343426778566473328873278885736252261757712118112815284771138742637313258361862128328387186842164812877571673445174678175746551116365624747253467485411641882113786134218875828635845518618875822524632681788432882243111664856267337267724656556736635462853641231143434851362544384737584865547548558121647558687237887171545166632583364221188568437343464546216436568847856521431854767877618828563537434643452444587476227726441663413446353513168764256814247214542552887254221264676846356777818735124415835512637382684443241728372482642217147777846446331118114213164282686541335646448241126286214681865228328484187128681471287536674783724761776374751887574146664724116243737523117754528878356784754575465877257633742621642882467872214688424873357281751658783242852187145441733323187121768171343253654364127355652234211725726712174472773325547651642778862517713821115183357171251888882653581882567244278544636426315246414253375256671345467116714138746757656363616781144555383682646828754287434764864326522782123371366373282378446845283447316245333667653852785248665521411232765618462456543757484152683476658786413545716758517561746774227716446462628454311747787173355132643145816743241834663577523173223227617258434223381615124127321638118522534626642478151158882521437155325646117342726873847611651266754384582426364858814764518533814883453662187251141574845565525822364331446857838577147314736125223646356817452325131852144443831282534784341473642714515516811186726266687312676454824242838815386873348641815322671715885842176744665641417831768745114255363616271425562165217688358442147128715546161863474821823756852568211662137634148142638175347284212735815764848811678577772517524717115543643681358374653823342788386812772211343837314363216485432123716887677142838156156356815667625371755635488462166413261444715814176211726733611457735465753153227715487242512356181314778252163854511171232153448468554231314318326124214311341357878183733221227436547144775867636535575583265627448743827511141661377417722458884857246666767744748388147273273334158676133814857853567352346361642671883841413868322624855273253472276542373571268411756471365321515258147412184834176385472621661253136564344444517347756627372364347682285245264184748267513718834311171682827887478185726166156246355372171861474371563371652466783181715868516615763757788616373378436523541217454737276246542865568287242238172234557268538783446336647832481563634258277757157752122875632657622713622563868724683571641775624554733848343785824267348334455827361662653142213226122121566654551324558851661688462233355531645754211762418544277362316735586732318183213736342678865355724567415461681663367243181323761387645252832188483816723525788585456552744621331577766237477336878241472554546385648362215518854874628864385675851753634882876845314387416842284851823328166767167454262535745381878376281537441876463532123313867712381344254843371318576717765552776577664255281721738426813235871647575157246234367821276281787467882457773582537486114431468873662876462322542851636171183671527476721857163268832516575551372221412483311386878746464618734155165872878878264748583863546827582745134872517881548713154456372155658124764331372862347771167373845417782884138235326714777515855266622722871818212777766683755172441682486547554313255525461145878655561325137545432171287882556222675713176887111224343648552364248676181446227241361642353571611265731572383777412242367385353168523676876361627713846765177374713742516738856447417152355171232516436625577133761245431115687845255473627526451574174754324775186515866337171134413585124162667387545374278782318367736243166765631758837723651576136652635313845677571168181158728582324745215364188883752864516132354617885228287254131386717221342773367746666252652681837628454682525466214538585422412343845474346453244263222321167363237665255567572514873724837734644276313526374542636875475227358637465337135276126715458867413476831538133346847528634582438447146761733154725667286655565411872665347314755378618131687217886233634262316881441144268886753135115172227567522323381376633886413672763321247146375471148138641815743675455251554152733735766553117373527731455867227482644881266164385766772164555455326776411274663356514622276483522285546561117888651787872321243868524846814613347424762161774152611154452783233661627832566172758725837716181824185675713511343882544322581682161535265482236275811133282827224873151616578284484286573461743336343468137614158568883788864764585488467238212237624168133221235475423313731823472885458736751118646534526524563323867752514325255576137456811243216182828122283452152566354375385852728621541473658425746242461634415144254818335746127713856778235336422778718853535416367546235735136374752623676273571342661211613112274425471165434258385112143123847171335313845127856134347321615411238636886588354534834556336444454137686443138282555117631171586665414715815734686786636345161636846484675227353843363166261228573828356865312652685182415414152111843331866243372576425635236847613843646326525773222682772542813876746475216642651821684727175363654167577823187246713882618883834432381752157542373368445315617757846528434255443376227418848425315637577614745743561422365177275715233154145581853812715411777155577553654284846813683281278652268535517186246717266255741712878548686263444234117633827654828543578883247567638567765287381344362357263186766324766486236826843248652662114616273427226418814284751633731312578888321131121111556225565663421471328128187285821238755182342158151658267156515338862461411515177623545417737322718153653778174726776376726627718362344582285677825221683364612618431788867513884576346568641772475461834754751367583726777762671724774365441444854845221164812671138233664667764225447512882721781713171224116188613128875657447488753475742427347326314771582136613127282441845676364728548342118472787648634867562723666517575474354184867852777856738556114622124474876447276678337354552134812421764478386632554158522374471572555164164486558132578727752876747425477827271743866445331285748641785357763723661425624733864818647374756118445557628167162457383287371147582717278776383545142362758534478521144688828841245448534287282724525155154657462873485822381247616773157428723621121377127238658314518126818366378364175555137155125634184627445143121336445222331651168431232413411244578261111265763772565425333446865873658336821718623365514755522766632632484574126448555642268125685558668773284415132683421482867574231115382412111341387387251575887655351111227313818715222278745371416524313284244134613436177515653871416685617776716651157765187385313632818647385161773538735565752735132653183668443665355577764844213438745612646674875434326427887847473853777543532245563321171561425676664275414328443645758475573217761857215387738213355313427747383357734464724634136526568328844748233365417777857518736465331414434466617173867685378623225856165162748343616165668332528712468676546462742425672662433161374348583331271483657485644552378674618541627666888447867184238754884845867341618551113823813555841382848371347868831388685511182781875561212814867684338458568617413626746844311746831775787438875254587287387348132625365618317571831735654254167745433111886445145675321336781271723788758551761148531361128637776152613358342146165713771451238412342564564645152683541382465872626578883367538668674321527725187342311514154181858187131517214535626554858458222182461222182152681845347848857237875654854635815668718614356138814161463536186528218235357862537845858318824246256646332225175848541161828443155385838727422876481516315718772321871552361527237245563124682738476513338157561454677848368227163773772387142254332133131512327563541778251366768568847887186553764518534632164632282172551872838386318647545176815211823172361761457182554222473658657655458515227677848821765631365737148181377146516458532612715175788765454348588232785132212417154811523626566258345517685643148416257436254746541186836481754411176535226311855531323838575572641811572878164283372344287456587674343531484478766817126538777526146816613651687187756215784623827374144826175854436727413565736365636837513158368841652114353176258818468775313384435213348514335886833572727644156644667535858544314353132813877327775317768422522123833178374715651271536565373285574483481767143156628132231558764721168746521423151152375311876168142123445273488554643841518323833712115331575412672536676378247524785125173681454626845674284155285413811846882338131357477858278675176642336236748845471276751438183336236821281144378363828162537862474145652763862715267234153551357462117872244124217836183425442884755651434816126575382583247316783825865335634143662537513341778741334466136132455377238161114177777735284714546761654356847112871663878838151434568853546156315848883783765517132626847523348444133178353774476545746567553563563661563822858371732277141157184357465457521254316182583618467483311543862686173483627175822437368171177243527566735333882184837415514834875643185538875655214154575644138613628377835111582154288653233161133626416624443346735416478755835786217775838831573121757711153582213657846538587565547177171411381623117667684241674558433163168282588162411822885141854356333753662545685443332813654676171453336241376836231127153537343148347868666156648537331354284485881473326123364323716842826133332876868547574873751421373146166361857522168426418127222436713431582821223632138642454664344353878271757232445415322375761713761774461853216324846771327165352186518215583834485141278646848648361387526728825288373244518561464168831278262486175416536474287565457375268875673281744287317134575411673361748727863187828637155382331657647331187384745425271776611643117846623128484642856114465118416766238511456581673158583613311687421837644418147443188435366432274846712747753666643276774224412783274137811734567582238552687547733235673735278847737753628561153362516471165635127813832578572775616445228672384141134858814153233847455384228584364758311773113186418187125135167413141628888865265175543756123734738811466154662355461752451443876443388812167251417473388348614857377747841536564368368388831372278661135777532538465152611618736451233622232471384518666487447754577828642476276633361825431372341182622536254574817665228844774758572512287655643576787658633775714654874318571587364716645723361735781271715465858136671258276356512531677784176841317383377524364484538327422676714213242161184534656544856232562883324271278511535846442631777166165278287724477673373245231817321537524166412875213227717718211351772344555443831843773668251353136721372826275871738752774478473152651848344838622584442755783755887663283353222847482244788735132757744266555451285216555238487671265358174621445123378888747376481886584136667331365352712641175745412814341271877461551772458634271142472256354152176732167612138231845752473855163425528471251731884466225262644676815821633716465518381574358784185373323551816234153861413878457673174811187621786174874777623246445812622488567742711354683667428561712547511852737531185332741316447268685471364733483183237867661156883531324663123127412787632337686825645262243112842687261351188386662247838338281351773768445475717888488383317181165323866462553152651585485355453854217525641653428164621325467734822663717863871484854555288662138756246811758587151125315368137124384652786356738541176361774342672753883388572433216883877818746687154374317246166626771547428688251684675518213644827142544581116742311757444318417372543652338613711843476725755254114441371717787853786248682316324727513283848784661485134752558512157334338274352167371353577447311744244732364242568662528438831562682134827342484432281211688435382454813646583883722483438377513658721282841816375232142546484666347364238376612881684855584121352255567256484573323424848442264455123585244368682648743683516853531576761814444678253538576358272838663464714243757671335821747137685517878178355281823425286168485856722325357546537546753165174376627726448263583127683116574627346737448446485614244212465814418178581514711176551562624862472356813163224227561336565668467563861376554576111141453186634451357473617263564344481718468465561465345232555581141276781334781587138628465785585571858688144714314242284464824232384261735215333326513148416436623141223311834863638884541881322683361611464457686686711585587424652472228264144678421266482734261378582425525644383868315585828656275184525276272478415522223154778177418624333576177641768732878484314866156171778211253786854414814486663871154562657884688741786786531427138286428828344374864321563665455471728621511618282523676824258366145813534314871148464735222657128271518146534214222681372144826441262163473414883763751662238463581463367325475628864547661664688385333762418642535651233768288287487671532462335766771263758645275123263871228353111683665538254323331635346368241218366436427411743476116412325416881541242688743272488735837564764885871656581615424384883318752847412246416233762862836327764655563646186476464527626418886167375526333642377445767578544242166288828273377787462731381774147466354348377636534324343136512847241645661118652784287187415561185768383113645881866773381826536218715776742131136462367358622118148684867767457254187781362568171618263841772367463223228166641617524528564451784223444127472243564133546683763352562863672583726876841676651655763666124768722511212838582536864237718853834652662725442514357372232676136112264326522378465268378256426286821428242165818235134616855645446255168243434324883854326781181415128683134432421773775461231277475155425437368424312854567355111673224636231663268851474818576354543573885168845747885873882386347365552725621865621825222111444237583645864161283344533633773863628653351623348561123883837824386357341873326741543818812681288422846144342185246117614541531262334645748114388111431742814587422782336847466133173736874433272837232772335587883745548643827721541788827477843387427472341233876863825441241531862778614636172477746171161774777665636615864172553321883172261883455783376764826748517876218858261446775452521212163862247744632466222327268281414651442832454267571613481125753285818112814482855886816814256465833533781888182651141387424127621571728578557371474174822834755728868826432861865478442642124362357226456654651865811642541866158531874528652448146671731524888728664132857718468146681747234675347447614482337312661622281538663514435874177765643461385448312368663736334772323251378878471664312684334417415637326772721566584424456474321841673136868532852481716251272346471343186541742671752163257177435426426272765688775558565371178382814372165235278484127342351851221257152642765423734358562357371852764687845284446768383238823528775712656772376651658878442761314575752235333885622676226163681228381261611168642565857551626387834642478446371233687224373823772843177823521311368252278447385275274843264354387314278788537726131482718782381786215675614555765524752342546526387563784228483642286827672438238553732224768241321623486246228772155877862855674642551862553532434872465557685226177262886841158257455617456638833716115616462174788156757282774165733168676572831532874783872155385612546864257877275355518422622257172667252545423845263722174258166731325275777748862321428512167427458863217182555776885425328151513466487253177633378781127831677884618182311768157517228168243113168667564341223174482418381561537462738324145418458686383321461767156558661761726443272573226863346882537512351115838746735422443148262788835833285766448652583784672551424673883265471455312651278842153277447452866628828141258623535844657282187636338243825887817483438325222155677362351525316723766414872277623245137276776467752187556774223246646265714257681718652318437642173655846157877867441632341115868245415627516354714874617777162653814546883688648183561828433658145566766133886565678677331283667324651361331883222751678465642238315337132176118355171826256361811211113272588275354353638433438246357632557566712883733465678414115435381157484274267471158856133366716877427833316255856423785128715464315785133427111453332841572227528655838376756788738688716525444876438137418755637214771543743717427471827511134651648758781271588417288616621676756333322186726636412163612761142675674578852531832718771123187833281515282121161352835584863465772513138881117711181358426751115755635634612272251843884231836473655278358444238824373463223862234423355858848842875827381586616158442814587443346745635784232513544384621255288841261728732673814481432557163634451483842216214213226167542572823123823714521612881317728176867341248538847628577564353221814487128137838761324772326315465465373846616584386764163381813251345431161736735418575572532816542272258812585713436174314255526712127867733173336581687171538728177744584883882247324772715786682463883143812233622188371728288113467663161843215122115187674671527482357348331438541825684727541878274525558288723422151188854858567686348737616658431241282356221145648578121582145155745561888854284133615651852134568732732473413875843467331431757437521435672748131377716726862415234866111374877123484242417648232375585624278176383466324275677512132611727683183386628117562137312162611246245262831711234336223886737823544627527557662161458757237178818142781515178743857788328277674647527375443434625263114188554188852355711743872588711775732232684728468151448354312858543622582543551263877521811216126155312436452575544882882668171745863276522445188175241127833616861888246152651355448522372257825624345141273765176848747861738462582713527762161732725378167165735665624567375465527713678543182568746854782485856484653224573411381173432362833233365254662823617424636531321611643367385583424153132444173223783181828145184551458684613885862346838518177581246763341318512336136586565185115483684475385535288755268347526752782336435675365826414417856538775517227573128567324335736456335755356213171617486838168724514156352647843123732472287178247223848721374575435374453337847631771438456574136361676618218148687731633871458773521377785451388137762168115651822611485817537512377254232387451521366536486216313127281486333355147717446126457735225862565887163543353835346676318552727164762733154127342171416833261677132812273675125873521374282825737524713167368824376862486278333751331517431123421726823687636522625762575344683361642177442211442535753483533736716664515486237382447454713155412178216725235132365621787164374588175667876486684862517425443557465782286516233228476337748785212477663133743165673313746773814758585814855338466466657186884466886244615888743578822482187232871512533232776141183842621541335145366575734137214285336146766377615321413865383717311675368166734326163356553831631785187884644745158172746216278834431338711345551165251832255747882885862866278383827662483177864623326178487486674212857852624756645458467777212623478872121255821132138516337286412185863877147751133574364688118215662121532324176334432767767475828181714113116716856183545371532447588658566747533828764457472373218665372163883772754761614543523455881756743781173438216627661872247384665855653866574353126674618487762367731786225546428283623553846243583568882225864478711756226531588723773611217352233325887647384845384352442263186324871312126212716843676862261518854152734542682446414711887644316773155116246451682277764347435121172658464661646524412482845543247473475443284746254184887118131747776487416577863378437748648713377583414658526741674264718478614268478542413744573516153887538652656522427763322368574844657388255774533428327512468538182581566722874773724242358822437653461153226382544665762353212836374146337655878113558785613863311562754626871772237773854312247862156285773831612278474572483888184714357311472668524542772176646284386637473618357672836714575764853685244211113542331177133578172442633641721164364162772148616517477642633436531186872152632143877622582515854134427584623537583335371412513866114758882755614514132873681157367424414355726844337222272247871523651145335678178861777868436577548524753827833785561166871687158762723825465434877175448468844827661132338762838744175882576135511573316388153634247386552335543511742236148113483328672864235475245828338216155154828773782311821273612623184286685233528656445333513432632751486121362117628242117442375437266565568441812786564475618722348113536441237363738247367356577157467172182588767753381773511323751527314554112884271368528341283712447853361326644632343244863754885777771412143525417332787668735878627464678816247867226651682758787244618665458853642113238825865381756381886472453651543542215434476712882548485727478413583733741122377448454586132878317372335334262113524148443386274177711114137888216321352251868846724884184783474112784621714417756745342681635645885164212517854635868115748421671856366477373623216726467125243238432276562513784443756557278258612585253361328733678342725311247486177375414177325826655273816742448356557123421872347455623186347871612114143221414757188368684178718826122448441572357374814177858537831741642416542145543542117631531314145275416616832382463243785833887415632883653772627613188647686415547744728266148525472312272878443874335258828466625726134787412486821112154816637226576535472331178788185252725414627377586725781448457531477625157573442621868874775345463832416365576347312188447678285545686128546878678475171555132385725484425713636374853614727843232741742333365861426373764345554717588733656323125651114237652712667656588322334765576155582678525376616515485762486682852771632336684121551144344573775563643435762263338481781245274646677127364482482181141751448574852621454563777577452444245163255477188543481858784584618222547142522536445547186453524412653133385515751175774486354665617872326534661774158258481837184853671113477525521513143216513167313811154766335172355565723781621621625163482886132358817376115133712177427364874275645561746111481687216633127115678283746544383121836658637447813587843367786717767411864717365231174426286564118728522858453845644653467722373231783685536782156232174863161854183853472832146626432827771863443438344536446768477535124727222433864376687462178813465553432342214548877722835725738882885288818438433875135673866862262356244657387683866535737282315286777354751685882242482311447627415237671348817788137255865416246466884835572451353745347877568875631781357184286462663457871875127284878685714228355212681655867743247766424533437655572356848384675438761874383754373517268285333735428477523718314554147653255215444183412787477713827671165373887487748834478221222676681825324724588258384325347266542514182374611375362611312288413638618833113117345272268457355237218752238118811224347373665288175567742327877581684528556166675237678776534481165576418775441531184572315422425144441328534556656112817248472152156288242566718276376281715612727543425368628646344561612368222572574177651525328472213146828173838416363881478123314317661644647555842742558558785286653476547363726617563478164558885783245147881467225133536657647233257322227854442842862246117487764313284857182373231321682531374315635781518333343844113223857385527184624347548431532524765312734343772316731744484645683328483433467614376121166111666557564424452282678177655365187644567528862251325834686218418374311258652577361758888578521515545657281444362354353871443251674846336477864111213451212283231622125368156534312556344153475224475527531274672714217314527746245486248334368421781337641334815425146636853762522554435227526657232564256221863288247751367841631477561847144431344785528361311455727723587641742826145662713414886734253534377266841424351682156441426446874386551388634651536376184345688175441236686233886231885131285264775588365158817337376846663786844481134585186878327172418785488518668225631478127473634368575545172651238847715654523526562182311235855748388534584542268178375368551112582241318351547253242344888585725546646278331256447342632376838271714232762857587432554488243657415785562664284683728854548512348487145878368337371273347385181115516785688237156752275672257257664444671213175461555723538122755856885812871523235716766664511163367768653471614872264817125683828772354388438426618116867544743371282326261278448256713356317613682731253331744456617141446714733623617117272387868338143781764242473873367556123153636665658731177343375212723775228775121184258561784115284272783347855632647364854425632128815348682324585133434845118272777368844146256765124168676361248142536186723188662775343641751335577754586513535318711764741578187571188346258786667754316851831454453454171658483765865557627364726732216842742735432654226854182661557247183245484558637333487255366787586872176248772612521443631125742286165685343212333176311127353572875421645152755158751567314323116658671856137544281343748832743564113287411332342132373865258163574413811618831614532735311827843381371351811871831771372143844363316117758843113781737833886371371577433124485464454824311515683457211277336734875176464135565512878657476261335531347656871231184656415788582642636262566556255622138678384468617135848614326855764612332645226185371351348612278325547373511378527611644315481123534143168187656276222348585653573684581568141638326242766383352687147112663435164657532262284133884415542442155482845767156256525653276132283713666251855347151322538888778235183427178513478111331836762475852751667385583211843533378574676832887684324234374344273282366828225654146465564158273558382674653877483616833417126143867735367556155383172822784287152732134848522721688877733213574434243587528462431885468641617117232487328855615465817573541122732641432127354781187846267336276341344223648638485386578373586277373414735417854273837535481228817825868411812478478282342438436878545282748857852742772525537232755162253247811754832151514184865563354565133164454238358338722335352375874752384674626646274177321155314788535684232483272546167748371351878245538375258374187533451283851862572215632631715527531556552528436545225145685244667734475616321175254655234415772654668316137182317641258311755171244775474754675528223248834582326481815371455874565551428566757284871478232485828564275737474381475484113857241154177362226325351566874868771553867781573271472248713281745581474331358363372213743138273383447766812485434622582715784771134872538448187521376536262251221615535448355864868532815781528246661772414162158877738418226247875663821376188556146144566351745373231828584251431245588784675263252244764376881121537423572165877213676774464263386115131337483214138626831144841521733423232548523184446447842861613652844765626883836347112885536813664221647317617833713668323878843331385786534437314677268234735627727887556668186531347862342813742242564336846565351254154242276367234535325643277861866457546843653776177643536183251713536782754213511142882617124662824363155546484587487354236358422557561174434741351773352577581342785713316466483271413262187622817485436163473681487722581353253158517875738178728267386383624676517486576554213728557887225254872322146367657131576172451146214342213748615274388513455531847872212553231324744464726348144733828775754755286634725546451514486441523167287852311554266126443774515723447281121245338837342286546787738524383317511451275114635474854476823344114711585113162671666262563784851812657337212465418636843237574272443746656581712671335544463471385668811326487262885525622836856221621748548132232678842214561877826511532135328144144735882576437255867776375871354737383257761643281574812516283363163174727673862688157164783621183867151775142117174472756235884377153741322222178134711538177213875858657778574577165674553161138671343131685223675251675558637516382612466854723134268321384211511631564851417322435434558846686736443835542464324537841814678853517562682818137456751822845812867684451621231645327125871462364181246265257822551332828663486865586373467266127222863636673331881585543138781317475448213484284728433613543361224425332342637718747728163861677721321422684465841587455427185864563324441457528567171573372545667188281213665388786824328573621575215385668757647136167176155173361768182177422825588486717373618655335518851218467377155578711743465583587515222858722876857518715155371787321222751857311166557221357187728716673745366843614286288887476837685645233433763772252151584357633884576425788743168742567664444433852214471362347778113578834344388228524222342731411658627627247135657268364124265811478321132514178753451563145636471863173738314871385152863585811116862754441845545111884221411566234328431422145255312384315463155154657676741462668888836433445656123556242845262132621464478542321375155851437541473486834855687322884576231871678635334581151588444883572276325878473832613333766323377552883457455325576518783285238845131275882523747488145324436482562648847756242847457151461765633754657211621465286188615672321286538128686732821678555624822142362334818678761718331813882252187787277713676437831126173218465851647228544774676386114182888272225614337723842347554633833517436887381748234428772244214464813568868154663165521345766768865828825481524587741774426684256745634848852121785778877527633423156446483382371525411732515543824225535552685447858538761372333724367483657218651524286282372364457266133528485424541758665887334622482311358461582564241635535513312543535248887155446525768335636571511775665477632341524426675311161748322561888833872483667368443236654877877866865162144672583715267666221874567745828174213254676421632426848423862571866873147658482618813842217165732481482233163884482773868473122861821618116166122761633667178263834154832384615843822858633625825822174864341635874171543874535114717855388857226581345318428128166553648342251578521746787456434158131134847866437218757682434411128173264821563481365821121262278753176178233147745833115123886443451134614827788848358536774277231743313662246212143185441738642623648676716227132487647681554483624682348131531366231861623737211541471443216248828672321584415268873834842332278747878117526641338687782822211752526136645871811468325214374166277757237775576521222638137241855412231128633873184737732252817547632438452726183165517681587342762524526418667872538168627527412564673178156521331344823632262485568844821337462263551584787646281755356878773688822868327777554341465153681166627523424882717217341456683415736685816113248568154216445683845612268536421474451561224458653821714737571534641666455411176145735275634654735763217455524734317535265337671333253664326316717637854174723445737214332668348173534548122863252533155888731417357727371173165334586776368318711573872875853173583332164552232356544318562578745145812354244468121217764878561641281183427734442233176245788758748548887341481624677162541174165888555388435563582384528327332781723142152565884634256675124861652853734852112571655181563165682874754328231384137634782654333172234563276772885328614536856835757272581735131633213623375178221617734514676756144115414867571621213322688162745253458456372114631128854836162646588545348211571358244636441265581452642553571366251571824116266317563734658773188126275276563314627667233667174873361855523848877444234281668124456143684854823627711736854535532342527514152484742824576548853177718666168865858212336886873852747314677532114625748215861265115813167532612268331247445437534784787511377255784878628728343687764685433218475743362853874734617276681616325755753858824466544328657685136378865327726333644273748578757573268352241773217332513237123536751386272235226645513826474317148255768552243717434633832468834528612634548886338468762665538571456381744613843875738715328273885634665715716782444322854447537116244725162657583132786216651537842181216438287557346124488522816173783246152877712274571242487715142166378543371165424214344781155337566176424282618721222286868552127336845122882834522447134151857776247358445618632562435717583137742244278725357222435625431383144857473122324236348417617637122214127181327787183643223553854172254158157584414645523577571155361363145754312436855373737843536361364721156251553151444717626421126215816573348542645132484215216534221848268783854226463451637451447238622652656235538874554351114584462687768278632681655252857414451371153662212476528634521137438266243476214147768313652431264172465473263264112148172274312776638266553546144854453541867722474367688853337671232176271558664751231273275643332531725477824386428285473544566776568263862111728415813866331675447855818271857465135323613472125876474453145583252683631177276464777284515134841276158254672384468387344726872688864557822722827743644732588355252326775156227618641123368884476684168535724374815116111886112366731753844848485563864621881233576322572773388855848871161658627148364212117153354252825672523134626117827674618134822456318372641842713272543222264478216214167268316334454363588514232512875452158772787882341767377537483827734668557346147284628438866267641173637431741538617352855547418177441854848563511315286352258266562657727672612612822624411373141876457383433353442371621328624667424711243437478376325456425453381471162165521547368471228635532646643751418428813452564514763837688674481338371635481421786261136862811611538368527536323118668136273754774476347782538511546545754241584883683248187648663823568178615715631855831782328227534118648328453555717843274653426583466455862883174538743328537886318642888655153125686185557443633614584458632818268545161512845215632644314464457112578345531227471324641776282188827452122618444275228384114371333768536716442735347873471877862844417248551433137433672735383174521432887131381734177727126825346247443742747582866454226825128544348221465334281482824573255715236727762361458185387423788878258742375522324334728337377762784447676814233522564267882478335666515882864373441526823137651734551118763882312331623833467157411161654844762564683656888484814827673174257124483757124153244615264448552361675637218512786834146281144866881553364882272734848554634637427541864863177232335247622754513126124267573373212386255442462764442568824227548367151552417251685422121113823456833188786222347888757764226267751736315137233527254846128632527366816516371248135475287622831356857464113784386442121883756573874332717776823333445512547283252381431875264586721447382677864788783551274532823123423687554538215461258367168447371625171411122634726654261164518332546646356128562333346421546576416132464173111781732261285818348153881314364334376281221361355851846546172424522337445448265632426742548357421248152665678223132325231263564385382437653545845676388863388328815627271545685364558523423442813544163173523215367871332263434675742158177867464853655738748864457521238822438731782145831577838772754326558118784187657425715773135537781461351761316724185571558263558385387171167358425864635613534551658564342143674252322747712257281726241821378364283354234116486465188776872828135836426836366623283767555623326426228722515876885768675853272538322311232678475567486673867137166857176225721376285721727386664466731553734827233575234128783741581645515886471735355427366657366317557123752812244646473724552852616225512452563513252238554726557875583438353211585315337468135438658152574711551656278623386435417364232378431115774453742182637435735653683613342473624433384217461515862317212116145487724313618365533628246146452861758846374727461343337848371477238234552618446567852352878884323316457228263886453574768437468768412834527773127476721622565242288358411747251164452274111572481482312386778556887773281818148775875772268224571355642312326782351517722441587388831162883647571341273833858378148233322353721441228128474128624686836722164774883512218372858488777426388366723743121848782431375776413445774168136787647877562111457757416828478757532486721132676458851247756733353267748727875317884525416646673588341833482137486855153437252522525665525424233575781141536684716143611748332371731841684838426682657748747863655416565535274823655246271647128658363586222568415135628384182624322667156764722824453482567736867112563241223422836775182542737515452776515714656342727662855475887766433661136431223856248656843738148163773476214411782636137467157535718227435875852784513146458312758731373767131211531532374261153886824817662378312162385378484771248385252881872787674823732776581428882786852611235584866622366825565452614872882221576848243514237364245633488512538131552863373221342762766435558252124811715286237161724557171563764832518235525323114535114162455517468177641248126268748725827264861475318831512225658341518885448574274744484662244765583482646552145278537555746821538835615332283617661233376644654327787486316377112631834388632253812452252546857787781876458645882244828774545425281857511564634815414182125656844888446461513864274571353535875174625338381256664788832751148256325845745461284364836172173167486576231474563161121427586553468634427252565532643672217854861838861753618261184832253825162122625462733425422525717666363475324862112113522468648575213226755342158221572638358217484416747343244166172221746634578876262182873175374462245725848787224181278553182218324563756613535632416832311521128246428755225747555257447166274785444188626257624748671256575631272272213888451745378455211373457672768128655635843578166711716572427481356586171114872367348663775324456616372878446373174647815233348115411367278814772353623233256164361187515566552746727217133416813613431676132272554131711251457785637312812788152152233228832611731661737167638844124113115742582558347715277238512623678231188354755642766378318147415128687521685836713446436142757426885426556741437637462773558456156614428711448773671564826452264481883843174632811663235467652611786151825188256824816158875153742414263777464125216427416668818721847282187511771138835383371332823742126567546325318718734757628861632475846248776726666217661236811228411135618387531322145768565246154736884771348442325758712333617172341735427462288445423622673577473222761576313856155386561585834845728736234225722127344483153116685365158161528421255611673574123556722638451318125553376642114135427577284881588122158671581864412836426515532243315844888646763155717454677417438831186632327688866677225853415465172645844363366815776148381587212145236631657424553856875185423677817531613112266463737417645878761381431411524337221526178246288725827554323716284326622512731723862736864342557158387247387245443225867187852633332143542355568777145742633766288118324558722461864125255513722488431443135348333415127547886736638641648863863223472245682441212645721774262158487578755818176256438473458364321735621316872667317825232255356831567255554726257146268155646845653577141283814476168634765561285111572511557182668538725367844555314444288685822475333558452773124435514261738634236483185244553682723836678543126732741135246173365255783443425657838612723532554146236241443827477348287421363646155768524473332733352261787232746471833171461213444321416728861318468376181111155544354546234342875723237218811425422862682685441888812778465574735538655882246215212151857523686325872241451141337518685124488681356171783863686156173352667344446142731177157668834736164484817223383452356681351343116156517435361613418735531562532344582884536365672365827571414287654424534367435563724248375615246677242335178613672715331868183767357272788336385462615758368313187876125655374587757811836564831627388564768277151551221574866148748463845534811153745814317668613256217657227731264354452227158171451833715584372677728838711367111213474611137313685354285332788711124255867785632256676876656384363457844471653875321867318545843357153262247282321487775745441335717232822382231365654315815548728318466516436223385782343513453178525253852264511658541511512871433154311534644676347467435673435347748767238316517344754382635855741376285783513846483582754326851588865541462663272131823321616735438544641483612512683584633113525565511648626773818835117875336444614445417653123876484352472286254384812366545833347644587663188185472515868138154885844771246655758176641353365764835314174428513571815832365717811411565176644852142342468826463428546714465521635528723672828267277557672234253714486425527114773335163373668618255886114825161881566855782668474841657716313817851626766644658743565355843743335164752123244138173577732123123328751638554134837255648557768116658773745247317284638372134532366855385876327234386235187457654155255711442834461158358612137511723864874177271255772718823438222464763841664748134365733646654782845241773334834337511874516653847557342334637737548613731485485722543763315785346776728738365846772755153312733426788647375746584366572718652161445171714885614147682578154336832241377376727827647863768767522445241868651127888445788375114848563561283265662676852781166552474417524581764813285275777434347788216536611766755368544354488367275548265722584786742247653288664334712488325455236822457673641248331146134678883551485263215878718823533151156812152645726324782684624878155353535768317538178857486775457683813441142712771473827566728574535841511452216844733656138853113257725821241782774211828464465487878477558387443564322338443872666311733628263586525647272446674172764143856275837468877738567863728723215783453358324617352625856748755142154478872427814762366127564264171575571377247225157438273578684742156182415384788332857375854317513278325554114617518334771216634642541262363738251778337358577822173268382332356815737328774576451344343134325525768287745311523656147152443662347764645845184168448222836814235682756342527821452444643144124573767258821718724165148418412866728335386173835183563113151217788638858523525272147125122133872422426435686812273674345258454366117741478746161885331716427744454815111645817117686377831372783871246277678255825311718816653141622118876562258451147137461641423524228435327854638448845828121841457812434325378288141612661465167867777766411186511646571376881653286572282852528344617716182237116452541715664367445325882714572834185745378725355744444322748618225688884845267753763382146677685732737722437261523523724482826211143731671264275546428735677414468423486411735148787446175422835837876384343857514855638742631384177314618161532684254217872711775323754336188337421787555333172671565568374866427557324524828777414867582558316722321772741778626783248315816275176122815858522262272278478684213572743815856741565754667314682656781681243637381833115535164816255334825874373463334874257547251453521114543548843147423846431472633443864238784684413487742776621862138147877156264224117754223378172583152734217638685341663852566482384576564313873517634578313642772385653151457414234283783153241846518575571127412521711673656452287125664346253315842676843375464272415818274562765688854278375418526276214332465685681675624722774562878177282452677622848332476714188556472584452783177116855542811533771116452631545116788828171748127737441361431582347236145685617247652684687754577161642877554138415634711545561463217315726231166311371312867562883681763275858645674421564182376325467383785458137145218677776515623242581133183516633681534855486622566441611656318265885477186437282835666338121643242446222864758613345667341821341275467361713764654282675376467253761383164327351748517742555171837524832828621355326617833517356628117866417541168726266586823651568455716366444423131655144811147541231554267316576327578876151522334146461817335834773647323164384458713861681888436457268433537564122478127123123365742655617552661767771247221523187868238642515653516227128162141413333856224781611138831514715425744211533877628733683453781142523714754757378258184818357853782762723285623388265666262765624481672666245565253476113846127566284867672315421468136181618425742847623814423268138615463475558751687878177312865815128456828884623427123858123213422356624674745784583555256443582624385754734163238445567823332411418172141517837538155554746556617673483544113733618855415762232858714125286545575472672254366233761248767172631747113735238522885571436312262255636166386247114538663463246468812325144325733885753165481734725623273625815284741653862642121272211538775315448172467338417486613533461117347725163512148867515558466264855747824331245137558261716131276637138228334544358276324636642374284715738858385871562832313412581167527213687372848288136444583268681467446765136653325155472365334841475238643174316578126118533186741351784252288546425685645615856677634128838771287634387855222775558821871535244126423815227166627321178147653732543511233831358177775356232262382643732771426182738332822738667788742881117313576521473562435825885155752652111627465428567166355536628754155687214445368173665838387243557774214545733447775344861674118554665235665826755886883837488154522681864533367534228522462164272822615124352714876845742614788671741823434312461631262448577446482284213314547211337147186781441336353683614522224835781171282875276222573512783872432545532786815636752227856242185846468325816435627588385678885276581222678322551416813272747355812121757356522357127433216847215474221855276117771328541212138333745746464635221858761551434866242423136561787848836853686178563412622147133887546843227583441452521435218254818311587117318454373325785477768766725325226627643144381517472337576214386655486682727577123822471657273525134464523361748136341823417728313741212215888458183752182864714745736553243285764251836224351345878244558437112176778456773873541565686531112221587484778144168275344164274363327737813776381327422528613238137521462651158746587427387372371118755887563544861413217845732883464133486421816154365235427664577842382533631112148528247511657423627472442422632351834651736675616455356167217181184568328556224736323138521328825342161835644783435638351347146572445544675755214744378124778543457568646388418848347845483854868432483672632273277873578862837476673852622518824722641384476334153124272143515143276316341161442443437638881485478261514317323223562134181145241266276324212123846248348328514577313781717176177682333732452521827386844743426246176136362274276663864447356141455657352368354622828331865231363445841166613764833445588713416321812878626684254217726354562213884283134618675182571863131227527633816136662742616763666685426886353626181365443278522752168657141413617735875261772836734765371372353183252444522372755213487535627534828663172878265442682242474243282758764838555786136227352443452617272372286473273454761111316276652585615153131376458438431724181248476873343871323333843684284874528323217415214134328657234238372361587418678288337253663255281126673581457147566183836358547516875834546412768535438754625535281474544244417822461326475584273877332623734325438551855124513587372221513631843755512124231171828641667837622164585453545551643213841418267142561123466688724142115146641544612473426775637138818262445488841144455631384763664347472137628323637152157245272513332284153852831786513376581322611738232276375325142348588536487441431247863214618488427147774587311334221417565122133517373613543546655465238646711756552533744767231666786726216758575738771266571316883335853337382445321387122748215438682822347582781888367213224764783554755272356823848766758832372546172311512214565227783476625845351571216437741832717226475838251376886435776768126538877441134722471721385177151728313124826867116787884183868826457738277764372551128576563134771558247584123745553561724237372344227677246131373218857467886186575414235437533458444887484168424164247657121462166533378455317671282557438163336171174828526384118342175688672386185454415112228243326855724651455512628881112823821616848122654372243138148817761537373781655651874847727465252371118854181366321665257655276175253754323158647425616163687166277438552866517328586383338235421323275463788582241576718487538652546253188157233876534263186158824515525436821865378713713165154175636846514311888478421333838114246837388635775438432165435183427777613233721828563746855155466745575558717518253213818474627453576243783251773783151864135847716586536547282567544216521711652871648851678683446567285263838284767751884524768232541234537124581853648212557277118732242623238734265676717323773653773652135125232666126845283258414476548222332518211552171163163127743734553774662426672487655664447781753232364426242381126383614248832322147546852156235432482566555354438341643417787431545383115637141542315543182732752477357878353376523764664844785131466335767765276554636787236486544843131723482754274553443783426512812558818672265572536713124465233187845588413822861526878826416425876415113412288326165564875523727234415645532453736484557611187516856487641553543357313174751662133743574346682173821334416443242576544845624478541531167672612851561635263322332174157733663855572652248566458554631221456618856737152875222237612388442172567347728617335428776625325483251642233181828132675314546243537313122387146155734434785278438828737134588281774774363541451448137512521447582668163837641644224142784545364542515717262316437582372443841381222357152843542162816742242747521443324518438336536861772132754585787815757782121627483385542517756547181536748527336253777537118634213866612561488725263583451184521516367181746725183157364173281247545422285833518412817822332125871172317416457114281182282868536335436733348155162237124727741571288463784468633756355447273341328233278522275432734374713183635225233155871531311418476775725113523888184726524655311845227388341586266554826157374448127424347114772244315822416851422363657264523413834282833574236163418772824751221338188427847242152846717871162262761472836657863634414861173358444272162614481438846444147434144468342523637642342645256611122234258376346171774148355832518433817713537812188514286386226255443883323614813821118635326638741238132487755247714774126458331324326263627288678237646877872628112485456276722734255551317165146383487722113243368521522138634138378127834828852411542741414524217771573644236467287143281517628487523786825628148844728841718355224463131358338234373236877721837344314148863852886271867416515418581582585541446144287617355852572332456817718423511361753125263116728226186888848643635686271577868541255725776442371748267883655511322561727457356881824321372717516764445256172662431532256414235572825246825758112132847355748486258771232617215174348774365864281135647578486614118674776334753525186754761482517163551341635544751513675774634427661484424644236856231678248341774738842826416182465443153847636166667565275542787838741715637815377132525761628518153141364734823725647232383711723283226588687148214134751241828217276716472246266346338413262678254744178814582886335236243417823364463461588758177511822733322327762667734768373114756815844166518675228682288566848341584886547473714641851563736627766763587813773114265773266518343636845316681652167626888341745114718818365482385736483177168371626226241448576655454433215148761488771525438711323456347757785512578532655332133438733224163324448453284333533845428717722744854758678227277432671331217388384431314886771524458182763668284237835332175717721728165133527137532751535265653645213712661544453235867575611172382248225245252535132656737582637528431622346551741615355714544116856737858372155222426857473483255434386784886465626118716653647272666326415228641147585367547163888581247431482255622218533345632282373785581623844162824824177313116185245364337342518152561867748545738863455886643628533226161823485188184351124345885374881753668877444571547648345444714878725671275348154828728154515811552725714844541118551553824562586365525176247747661425774787846351712176481262747756134474845277327123732745531463672771875568882468643876546253226315481526572328383547868355264864361338646875414435238251674141264867838276734767486167713876688186548464246334148426386275442426172635128453534435735241352414778122588242284514246367114225311213837653767785321826724315436424474248233828116717451577277438764385827775753233145788577327862862558814245468433818866355153358161667783345278271743575781173688766342545734328313337723532562415631852135257158152541863225336561525435842624388441446455654311138372733114134145158462533131644668543728828181516121271244324452813251758758566874162283525136726718574535288477855761281363825455821431625652226661445447618842134246865531328645688833763464664154442852683557776476424451484851164351286227856382643245882457454556333144711241421412662713325441271444535625454262487247266621487443562144346738868654267545555115853736367511514248232873538118311584876717734248737125146816434588583331123214646528228718141261635158137117473234643678354367841513272882741728883227243346646784673777638421365367148243727263632175558451184621235211582824857752367313828351471582516465831312518131177821658774512345717584724623332784835764334235672442521883882277261757757231418523332436335513836828464284382723125855554165155727661778215486368551265378585237511577265621114868653372817422772816434862163431112381282531675545775247445358128227336286732442631751655386788627222586845771823617661888575224883728123652754124786546512688255187815371256265221865673528115615413181223448166131485627337885113323281441144426523164583458161362247352153461123118456462434126842636738776855852574231331443236161354387574161227316331171361667483782346628417748548246368415245282126657388263123846332372886275373628454162141341644767634422548572436881684685468426386687728476385575522652284746235785244252571215636518387768473668881363432248673843862428137881845573875686635835228121524121165638627353636278366868631133615248716513862541246731411261142635512833825246751214811137212862183345244428111187275255835787687883273325882661475162362721686156344343733188714371214373122723424547531516473572682686117756757223543313826365115872547124361277213443435238338526647521546562143454417576426436681528234586767714321678126736485254167133771337628784365657315571884367622455233768316542167573543676128364456731432172877733257236817441855316458236432715287666337777561266723415114385471844646174847525364311421816221315666142512154382672731537218338563777117371418274137246567167172165446234834558168743286818477542282772765831534567554225258614731667722372141464328411885556615663242141344351648578667781221776767872512116762788333727881875322176744154417647372538428473115864357631771621245867816734781474426351845667787374145474764418827643713161745341724158535643544325365678331555643728767133357455572226728732862353786656652186652541222655523624711465112817664584562417556588568573743644517536183383755564437152446622738582766783277385715322555884164574431716132527218711523212375641744425734876464324375563481132166127662136773714212465771574647455283115644831122854412556532364853831584553632734244161631834886371338452425564155252882174248877867563322535131653543617633676433876378242613444685656185363676162411371252182531653362515873241186185676573615772778135288411216775828664812286144814234272358833282738331226721877411484221771768143542353812681111248637322388361521453614841841562285836763361428234212255316338258718283238237611237843431734758436316528548311183774287732326756557721441437447722217652748282757616356486342671566133713733675515841556346225848312288547825463627443144463627558474338781233455888814457621542181521468478435135672734513326525245783417347411678557877211538223417317148751528161838726475314314235645687756333123864363768311321482621513215217461587845435234278422238445533448185858118523517511424835477682317754751428648566565567173523443384331178843586224731315666877766361167868375816156247311568423748456811818418711585323141882833874575335243731845274458247317385621843267527513277383314714531263764777318228514833261342782867722386136848465528845876732885666563266836461182676842672561117464777441244223187487656413471837113726547638517456228465478573441632853323374778567225431384638658524852256541564172374423753725434425312665787213332434725764367721351224351276571431578155583341843654281224438248286163238228374558675356716426316611531248267583256688846355175326478481424744255582582226772424767477476861873247357275524733818744253858514534431724173266427867374645263673223764373685187784338351576825734272625552261616748742416757847456274441526387167618455142842644833464586822378821753463233454556568838376425116658556845882324162134562371541722767133627756323436541477482271124836787351843853677622131855667127367758811816264513476248615264816383374344557674827613563756747576762766828686675522768712486844672567256675151312575236365138186811485253465265121533736138515816122237232627326846828338371477758178788641232735434154148757338286743627641771138531515456871761242514144633715725573137425562286324428757118247485665426631518827358781411885634312728243314785571261316116546674535526716252621414185713236782321468151436665675285443325612713646522362835163388583735883143114736553423128354361353418721787232584445717448836837878527667252316457888331824373166188425836637463262262253277482251673863635168363248125144851133761736686314816282211424565545572565832638786216883832154567736151251178137316615815712238722273214778742373841211772865546334512188141867832852846713124356477584257222515452532818362416744268542128776423245133821256432554278171137666151234235717557374787613616271846836148376732531616536813586387651352746526771451761127377673548361155717453164742844648226547464246674281216677468811533873686211545834145368726624634527886264328827173571562881131483347665167636432381326213866125346214477841651478587824362873274761815615331476115783321274282577365735465278878168167686215134566226458857515513215174662865832613355326166687525221356524123784781877685435853442574286385641228727574786878323241631456522611542116446741748263836532881727772678434778458445785455322114487656676624366222482514216163422284537811886628554322617115314281653511218847418537467365513183255266284747554527165858226425716824548681426837441633525854414116236183114367272842363555815173682152468415274345243485172388524481514141335331844754338154163518338631734363127514583417572583522282234367568171245553162326278484277614436145266472788537325751347127237842224723568128811182186814474247826155122881741756133473827312783268666853517388862321318618885813545832243868543434422182681347362751775642683845157237184787572466414578725275447261131125544776477843514178624447212228473756515811326635366671462554282577887285277827141725862787226132471885474845351148683572381668715515723777121624654812717774432842174462868817161252438873173344542555458328786818628323622842356273424333822363212643662762667456485787286871852132388143326732267726382851643445642653672334147826256427273427553474758842156545236475358667283142423177288541634477564516325328137146433474557862488448247666441252884748361624853414127552385121276362755836873381662224354533347141333425218215242151553625541454156485573583116818134385726553134364537746227524474528261623885183142836615136242511586555521221231338656238541661321143314473183282757441152287326881727866363542734368351168858527311116381555514132536638325247865133462484525124766281723344731114347244365746321611778778268331431355378834633413247135128122655756172172424322646445527478352546212121227651472172644483137278568777415337175264437444653242685473728428224311421855386677456565844475164412243385435251566338473787184241852851581665738152866825724815117763828586738742618311458546713581547514287747115686447362643187653564888644224671181786651536418656142176268234313378625777524481162845652273363367248333244351344234661684877225581438721846671654232256353231481434175236862137247134458642476481465675372555346748251672528334162546644886186667573327561158566376151218428282121857765477314637314122633248417118876184722274674243815336777587273872131225381565466188344118586572453574774732477144668145865331276411875168213776241715168263256586352735656631324182358272416723255318844214215322227646753532524254227388676827731661855875237558847466815663253788754142625147643446243611183468321435354737387343854885682117511611746388138658815414561637354325168687366833883111236816682684311746671331328386318165685864862645368163112131337315862138375448143641826776521441584413337773444615466244483516226364657513444574187462527865357681256676587843122868181574166535527242512315327511171744721461638523644542263673786737728523382313344317472741675438716766162288381326164815874286764226774661568587364465131128416724563111636552458512665776623862426676351876273738815251727764113642467235824784682816855748846372535825216342721627161221272711521222617833261848416434112353321388238823818181886216616743741846458457645314881672343686541684445176727448515343467684157674788886645546466811344774746325751658134555282552653282376825187233713738325561416722621868175754734726327873683842263831734871331778222666835835213285248434167225214372845234722147333762375616874322522612774187771764112568836358276826285352711556854276131435411712281423584256512685318127368318525367674615426355753455377728462167735713342836322327753641274451783478428573364286578718534838828334865828226336651288152243744446734123614433615725681512753817657656836131116648274713687155571353522385812663272433617473137621872761831264257882357665637516565447242837423222414271724342117218634734365353214577338734881422382441774111426445265227317826653786841422528363586778316187431628171288812517554382227884447461144254124874446766555444887332146528581145278453678231675228128677533387765427456375824515215663582587365574121625314334544128134373776335437265653686251338233657615445847462587863555677562414364474866573338133177214131777862128273731664343527448712581154225243483231551522336327443245567648144466173241474162475486118848454761548454562845173338541484436828163665122815471714665371424772445723875245471522555753752346277625824417723762683767754145351133682617578433662654431681286716235816432441364238547324384671854522751555683213667255685138625244838185332512464381728888862245245251478211456843882571247822546638443454415756725841151743664116847374421663344534318451434734287183432157458422848574624166273182182217613552455428757234548717614484365377434562253845156814472732824113825842754224381657186345114572764837224383382467744265675784167132828145341254637142675865848453225126321415465271118563126653871152371271433127228772154726764748674383113414275651735813551615631261176376482167621267581366781817572878635888366171511236776734351448172332234733841664447782823537413345258618611666777527376631242475151522547522856727352875681744111167823442637375767166246876476153552552785221757554274443742257478342471668744516675785171882411482345373256664418575253727165264885531456781286752336328722417557766728287286738562361758188521887671586862325877765751626347434282826274173261147281838353766253841625723215816486451173458764765514186866554888615421633271324762241544761861517641761167681644768588143681456237862847417143586152125382837626111254182465633887286435685156464458456313533738557857536718143548284422472354376273512372853366246385134236352148886284886273587373553576218374861545615383358654111164455458553264715885337864345158484616657145525725124867312573133251734517721113311757555373672687747265646757644771316744718148528116577328684733823216344317766737173874818888372267412733316151565428771448463251181278376582515744637643358662642436354124844178448381525283326161662234324682333832841535537331114386335364584887758722445875843443635362437874328317512685251251434132861765217785515372867571681251157281666256666312254627657444545824152473651156863312274688148547614728754865258258444813416136884875732824416132165425633115751855217386417121774133263573635721446333868377425438755661633275228512868713523255711134117425514462358816867251686481761368538865717754157763548855843631573276433718374742283678348572381515728286182565442728321875215833114531811154667746448244622874272312462164111542346832361257342568375441551511712215812827642665588714765886544751351258881737154145137676846483585317364156732782384768168767186327125427256146346428332318777576177536122773117611348536422831337757438314625453276146557727741383745443711326632815656214845645828258441547767865187777338863154641574317172577284147532477781351328316772848465435388246823618716437176777724834263177445676366666145334163255568847477526323676142574581573741611245617385333137253578387577628488856656885354676614631484325752757483678365428176251366455141223538516211643327118683138588377542468778651553358888283243747612725464436152474173868871754572438176526282136482488344136555618623832321221831765661664326546175338461573245277744877175636114644551565586624565533342872582652277844251728266431632585322487662135241323316656481518747156421683724553854235772512156862611366328672137157315453668862783536238216861742563727645542476641138541844877715176757872721551263274875334114318551458517354176455548173154275741873414215311625731785166485846632663168386357812677375531274557622617634345735514382852141252531786227222715163268422273218157284826348485818825434623518415382644174521277746888426477385874128136285374155654253681436874156831355548814146568787547216312162666827877183345375715572823786134373141825351545172341547524886332235836537543621842563422811213326826266182838684851868251836365624147417217143217311823816318832433241652465676273872348578578472615637434618184443264232676524752284817175641255278583667136272387357723387123231276424273512686233114311662182728467556766815325572773456626558112833221571228347575581268875483385673337415846664324117853413737865388216681464562672237455635282738315845658162815228625854574423841445576264454672624716824365327462536313328374515573245347561374213884835538871215581784347842453422772134138621341828111714126854282312462443537235646484486157277274382542555348828557164471264678177382444678566588865413486554468257263531254761666364378835167151546886612755738256351324437318354514342126366378525613656443435556846658155751323748224535448184356188585241867838717132573143364833788873676466127721674858743333578566532344856337183554137857386241563387758258658562874461361552517814455161186643711354187723578341442158165631672473888331577572336533115578323452721348417236165775785351872387136162617582785443828221368564164641527466223466435356341817174548682114436761213635231836634755685516145687718647227811542126685813214443381261653541365147464634855157386863644155782462728272344541348113173248635532728614638181132512518721743316175122275751834681517185261552835114233727562646786512228842684382775736374145324142351744523618857481728881433513687678716774746375135124634874844477368653716433645214377732736362767381671423384874172432624817171511647676663136135867286286811157682256773685415688578287465231166877356382538165123888412832617316287727177184556523468453533438148837715572114356263265135177153553483617777368583861271657553475674642438823578545231385126164633663573245551421143738311124254281548461136647457487337211582861183546615871372222851467426371478314164567686775637664273721735466761883753216646411525566326764126126458345628321848453882537546854311284763682485117486611265437854874121356162372281827585748582185467258766111786544414855514671386718456154743187515661727352152618645126467464885462111843748865411167474228377782612653133586744517345534463822687533543753344685486646254113742685155412333662372523237315588758122537456731637478468885455481188752667157171535447137678778555447665266875635748622146635571281127341185527618636512261634424586826125547825775515328353782246448216452858237654876722767573383774528422482756322681876745662758272728868122443528676326481633341488173554385327272773238253574383382223553781218456466383317636136845862746864778223828741571383644336222515158642648574343347328623111327584557378346478673222241257351268231668261815543561752564361347766818535686247284245488876571164634646812586363483617666385187461515883227425632118862312461324471541558412645442118235173272375348165822746852267157253542361862867166357143736382224547361157225137331182474173815325723735644716636646741258215734416358538811341815355347867127425122674372475243365866653561813575621644542265183348822337135371527283644721136162563753256465476312376735445218162147461163322528723155315786658853366344333172833815135611146838865355657653726713422558624174871123657424765153154381353331635713767676664846343442464314146323561287761832623656561661261568786816458253832366121186711857746284718475374461263347678741282817384883437575668558427868677868364724666232667234733638216151884446471288825747722152578345142442788777671321718672545431645451636324752751531465325858831242815514575432574386737374874567756166434164782827686585688715687884214372766867447285631612361736257676464131874481634615717872566132647127275332455422813757675875248621415537348772642184452851462134744384637673756633167831544426787776756675537886261623774225552348632158672137621373631748165266745857576445777826258841544231412164882233722274756451222584632515855275223311486118626746826266763856436766863364743587885511853745557845312685671618485623617158572163383427656426163544771353721186322231115357652122261886274244575458466162844613871146655746261526453235188466765568212374111127662644354761543181676625123135568731232328468645474246445427172555677825423153662746487831487624758327855762214188315165122543635626118653463848568275653727786335115561874847412381525884341563143366125516144243812251542615628122434874345661656768584364833414646122245473124757474721211227572351164678587641577856646358124328324452111471488354175422831427121132243857114618767475675676556251441416727254732266731365681373327438217583663571231354873622151553241656633187611712311238411136141776456325186747634754455567268847473125682845428854481553461132766775115218651513623467772475638414815233754575756281164822255183253633618154648838613181175582763716664671112664215422228734512853336654432585615226135877415362382837161385553142452155765162387187711581756157873174536234133548388448122384272185227537812822522553124851338144666275873745686717181275315821143652826267436114473467667326136468352877671277333346124515828525547612241828448778457518286657878326541633364717724675254837475327147627124182854323537187433135418367248325521648863362112465522226841532248811857784662875287311871631524575662457424278687288786536575833551363162588535144834376632281346841256173835581888184353153244547664332632842617314616627842116538862712686536154431753624831274146874221443245257341363362471451755846882763378778716141845157634224573656155541282562563637587586141123688311838145817842487246552521885573575256326216346132473214261427645867588871512375178111286238164356673661487576784662771284151253522755814733168245483218575386318585152441427333847757775862613338585615756376247131767162818747687837461715235138176451642225151741387844256635331545575614818654658428535718288254412647115167233744654841551445573327227484374655782286848854418611213858176212651536831723331212822773777458311854556315387475564452786533233385356656246774347658837258562461882633457636767511453375218142118872377757584841856862252153324223416888617768835388514425727316254828788663636865773334413384525677563286538783171363424624742118463688428367366361618741282183145872523428343578521282761176841515656185626842863673866634324264611175344817215148133682184227678446877478358463233418378716342776574327824436541756475132755143351758357711254716552754815226543385831676657747251313384872233423613646873763648348675133252561432462138315646261747817721644757581714611835558383248632713357626486554627773627513543421616247783245677425384721744243374515154375811612847175168281578511125258416456346225673317123144753847885541872653287285617122254457816436222376363783333282823828416728532336634121853833681182638322332132414766767752636646576514313576333711156818768544717128255574713254766133111822817771383826186378455167145217814342171343848366228476886467834368264357227125413342517322612214121123732613843244111583461541853634624745216236214353656312463335714884165674164415742268815345575562178224522668823186673274732185351777211174862247566781344251646421312815118383641136257533314845646744444331314164486228241582762526556166764362471118133658532754126783565163812127877753473667776435358833824672541383342577152752183555814178283883323447723155732287447843733832754285866843485611125566851213487574147742752177251427718737746312626566427226613621282772525855227441142861332264353487341815524837638786576711732241675663882484827514762423113287352588555651253561843875752141573718455882613841834188562345184141143312468463234533246372857167643163778733842365256782656154835783141781672818134671745556616282266816174232742828511736564753161352825118853142167251564848822654426884578781667483321612363444873242388255323738751437552565651842177768857841426565887244476177385137134774536358544335364642466671548587142446357751184558663447153127738868365121236378825361272144736781726135118413315817523726866525354653331771717164885734537258485721154217888682247482551333862421235313182637528438271381544455474765675825376728385431455752175528177245763422152551683745653214273613876877181756576736388375463333686475375336575234634533168118467726411813667857321433726436434822533331366128527262218747557546751758475254616438356747653223755532475752232442166656573461456116722187277187382564883838142427168365688168588723327277773874481187534511165147846754648586183712332642457138524758281655435775617743188552511886572553265741171563532477338185343484771125123735188314684388784641274256455318517284564684643674758374575186646136581826186855112885852531282864221373847611227866567622446534152146142563681456723552686155427313113861785782368334571275484214212554641881124144252246476866184826446536214665172865621177454542255865285658837632863147573544735123612844734314411475241164243752173847121527835664254731852284462652432343246671766348142851363245458574555733878571274346174464161584641331288246823326682137284824485425344235526728287466283372472831431843162754471776313387435385347188166348353112437654167686887784481782684684786338643278568824361146863332777272255133181582185768253483332146237712111768644271716243266177616446627362835451411775217413778584856373463675635614884432628637228554467735367515885887266645237741256111316253413818486636346187724474225486747615541873514874752261378738568141511588626212254432266126633637354428177355471883616477647162416524478212428475422158571384184743851547686335763145614433813184348114563363456732367617688584888515158446488238335783638645145612373384538543145532511435646717813882355368371514651454137714252421653255774531162127177864176217864255414754537718314661165443345322867121238818486864146372573272877456261157664451821545464678543177661463748265827178686631275571426221412487671484423652771885646858166865634478787738667667817618263858433437424266133566867387821316328353161244754762234563165152741463358163425858672147442624587232467174882547413376187836876716128424523637535854334683482138346348616176486683173252457322752576156424134418626588411333427563845576151182638177685737136558554112474354436142512151534256222288146533563343211875138221813137647462425328636684814426577756327224363852724254252611857323144536651845284321342262254882863125482443632251754166783358223525161375515431463571855357878381414517728332176184186388143863771711688682555252332856532785264325881525672854287841684441164555624766411266673246713827835347825158466574822216854346215416765162177733232122613616184334871574682132845153874224521843146285621584785861255536688651662177311366412887621244873527352558376428631836657778244266612757383612664334111548531516267121551727155284582625265786511177733772353763818161353712261737527563688143183885837317281261638573523483313688852658477212344368522532568488472627335253383478442354211221655886628715711157668712337141626262884742182167531222822722781164354418514771214373264843787815382438386435522648836427786556746186573335777648612158785527713567836268724275656527217756247254847531212571753114835466256878161433518767811217316722237585488542718542343124751283322632871782548584687681642732638813681746612527157724484367411462337178748517323755264617455258182716747318616178386726338555462328153584464737467226511462515446313657662655517875636343264624145162548671747612262566844875486163724472263883775148614213348625116112835874268461341321332281356137331728815512613644464553575387287748615766637868112467485882667557187474614511122334661151237558468213374681462262437534254178633548443578636523656516538186661872835881824562417655378385167636776172263276427881537137631483742448532811653558568172744451434577247318171183818727652187717255646447845112313354125883363145328128721122258144253747132146577246238887123834148888453653327743425812673642223172637581873653665733117172253262181558527551824117115768885877787711762323875173571157124622256847671463761145384316677126332633451514587383783873557168353532767588125721218157171856882242188825584175752737343837576467574266385681842275618887426261187512841565268477815412854346326144244252477473843481653677116422782327433872362571343671482738878267681878673841672811625714783676545314742183766137611351436364175515188768153452788824534367466834588243727151848817352457282481528244422287783448345271666723835555584773338373273712535874377418135573512136154412324723247685567185843225827157246337658275633147312284772354668483334723443324154834127314771426626787117331422775244744223722273753238631762155341624782774858315284267242124515344734627174815284676162861412835465446341427587622488386333185311844345443213564714631134311546387682886273211686636781786547364113367673863637167756416257582818815631186826724685113637474341237661745247721856257486882336141774567242631383617126616515221818322246165262432834362822544382283174381814126816133284125154341548677744226526276456865141261385268611282748237561734387425454547217327118772235324654556662785573165573521341868411833668544762175643555385183811183328761827733354328415124814861363826867441773761722421517615617655323767522715846757865633771343845337676436887678146366524255456855721534734357868556327414546242781523866868752427125555671412547618653858715114525137615443364234756158645816368562418623558137124788638827654227135864338788617776421163745254636231528118148474233738611885355647686663646385764624655652876452836561584321557688123357456767622844113212224874556752684846778661671186875471416252187458146561545322621225265578357284664431445646765786374538435842877126237388646232536675687757855424736633264586725184621415367571151481327664115625174784188746558588526461462131214571688544885822441246884686714833817838137388418584773353631174171564434768468487766218137116115237367352388837772187882762578652555487574164812772577425548215152356121134472338274123646333738622821183247371885364318832372844113772783586383581121678817652738126886226823872841628666442323274578867528524428451476186325514537224846888136877526886575783255836132787381145864253872451642815625584331184352673637741574474615262652637753636116451478836184321553383277247528251318857567185722756165586414836166558376742171735538784414887561823826281186248318275685754271368532826183317248734354438556351364163742268653543837372833567665763126888855875348636737781634316278574541644337318652146271567385744355138268656532443721747247737831484126843513423785831655145584634632484324352612282837447556131261166417531762576648571816628485282748388165221864578568217756866716745348537684147565546837672868228751314241211167683182531684525556685768781564884811128654272387134322257874371366378824482682264383125714812848343231541376283323532778238888823743867665372314633561171171532873348675821227541417213376336282486365563544455116534457257567726521673116213621133175867625564825551522812871844852247176214552827846646834835481222776416532771244827517666376884743471113277813354722285873278653188168153854775727643387225287264661343617643335116185724184421844665145516838418775836435474238253736873534542228328832376686228157746766281863511414337156644351282548237335275382331246577118188844763386761811214824537148115111146472638785563662125838436186167375555114431686786355865564737635387765717836323858515158243615312744321174416717628385716174374254546621152447371768356635168441885233318248133121122475877582647732237643313625373572776582753316275826857276672148824278332632846248531155484557247262262485358878538511248585176468656855172645685625311336542387331575283864211438861613134258647616886881461211177244224218741672461765768571367178257647223871224782145664611274766581173177758316177544572388442662768747521242458261317434137215188133454565327814142754357775874744751864213864167224326781355445872648166458736454443627754365853687611823865262375655546834486465883151346831668884454244251814581455586851884884115276312468724431176438437473574118736833572824137462365783247255784487715814473828223318383275454711372442848248727757774762817454282346287723364151585178261675162865372133458532282358343317575372566676878512727854578576185638546722478446387271515238845465121762871521228634755148843556267212181128711678222425186812624215362348821884576685882582422447665768452427565814281328557362245628632564386787813835557474368736761124144783283553217823141883646618624154378384612261561531584235783218213243311586341453478562147435856247265284828562576533414243715288813438872445313823853844375811552714762673818762123127526613658818853831727761573572413663114862536726515842116165372545445518762253461865776481577738344511157368326378857263287677563581615138132355327635625558863323353563542434835765144258756155857821272125427155365747324685282873661777326782885568418437154213171764653343212624331764345726632464741232442271373431751113762528188173774617735147681711147816813521768745625778658445421811252421556117665254771425836134716854171471214785371888473752733485863517388448134238744188868125573881736461341324384364162868234584563721811813813131533311321341654142638786746156776213835566383366216152343128456264226771166318121326551737434627131465173723671428132725525686455213321257283345315574615272587267165287617887238674715338255867464651471846658384665865541143546118126721553248523678234815358626588331152166875353843413535267736626482284583125126426465153442774573313757231348851314861721117426453648223353228748316885683514745778387331612583384653238448583267717546614531856822812725462458231554381644715464364123621853463488524355316514816124446242145384723345835273373855251741645272363653353542766867474137183366418345336572437122836835415332133633826574484886641113651771153123315634268335116616142736783264182635613645242728574456743628235357438683874265271286566844724428868718766271765754117488546858542428815331166527628565171765385287165664667128852514113756142662274411847346313228387373577711537165228852382561218136882333482817426473527445463435732835772162521368287838273476655828113271138252671544168364641388715283886778847618212718263868526235572238224651277328323318321531778167651776811441332638322474261646513382847677372551143787861834682626462315244155231115712863132268826624388411873654741786186271762511131546631166256235682371464322882825375453664354524432238337433585271425358482821863783425727274463112316753114117483634816482787115386677888188414736834561451837427675245142882134424846178662574328543144718823164228874732176267182153541548722834538862745458237144165181838232282187833265655236333812512475612476848856423546876336184333564627422416726146332624384483751732631846324578122744374334676655588353871128172356482572855382822726762878877773128867638255324265743612661114413185468472678115646677711522833838442176222732354132513632484474337233525787181113331253418544846426777854423421718535563436787211744348481718441414657866353243787833867614358358722228841234264863828376722724456577448238646643514548827168211858468473817548518633323188616452385314282825563445446422348875775412481558716226641172876841438636775512588762515373277472581424117425541227347536842455564626183582126235565127678824242618875844226485648257182144254385871442533878544435742116438557223257872366887382572783116167848332731524828448266443434131521514446518561412338641183162734872336544561227327852561744626162882256561382281876633473754431686418735752841684365274565815644185834226377146261687614362843158222644447222538515176274135436858273224115335752151474486186682371668766158514776422866363818746873456732688667188773566567458216258738667612411155463225562553765425488868175782184376844655618252452354823417314712252237717681846637221132568818725148486862526856737742655523252753462737186372855415367488625517722884453172844174322152684851338534841825668177515472257613443886456248626381247456667518543838242853585731842786134541515555275342681734735662441512638774868583327412452624435546728664751626857565676545685211877424581558731376524235381722776634773716378473134357454546384633117474728627881183537852557631541175433885755534774278115834888654286483638782337455162325721676153318633527422253451647821154328356228247651472784427311175464118387863747453537151552355553861885783763578548411135851516413268615878816831477451843183411433484853851223852656437687645387684158125133435262564344664218678152651831268752818841367485433184356848863828111661767224653563155448413464442127785316448682666227758212216427863188641221477168542228446757215112745763767244715686517373781812272438712386663843583481436533317551182371524817264578233745263184184878541642557676685871517566842111832185227675145643651114418575368147651187618263238211647365868473815825445352332252883328475121426177283775627511451688613825524373712656284645572526274442654273161835522153521438744757184428433423645757178873723315715824854716261323136684566564254423868356631463643412568733327465633367832164818216361758242575227154824677278686483144128773452266325484372827554557131515522734246652278831483745317435886666246422631684448371721351428253777588458485438134175777821546881318852751161573852515487157416484186342145211565332731643278588168613424684641841133754742782785322331618244815515857442322156685825883877138586653586437511861258625118863483168475624534622313374442414754636234416761888138133247878451783526857311881751468643542184244582854644744431263114268845458465366732265325117118522485537545662412218537117515164373533453531737657367148488616211234435788447311237612557535715727867517152858533183255614254733385746547314336533527185221351658238551477471733252631248762513133147753561351336418578166236215426853326322145782311324683174332127146647553612838636183452581653454285148878738682467674543667621218711354247214817776716164633423158675268558151885242528178826228287662336317157272413866455173868436536257123447375262527186453883625817671722328713152861266263411682248377165126122265858273183238858747352853222415587566772755651315731882811121375238774651782533113662568341367576535586576535716641866712788357166536851511252536571861721312128637134241265178446488567317565128878883176354315525238155413171678248554858475517631584222221354278641136642888667587528638634243723783236333766685544324756232211266476771664341864153437222848655453137711844817113323735585561163146584685256554583835282645427738488855241765732172311265627587213255366323565374474587638245565852575227434638776812745436873277386864425757613181334466735241646844252637274571563676151344165666142315688217232211873526623376151247424485877185748612868814518484843372576355581551354354372121165411354855274836623244352451264314316453177271748724746652467715315627675481241283344118253634231362131376366183386314378548537322534358556353253883877513462814223358262564878345334184117364376667385422426412545111222817143671216718657458223671483351251288815353824621647676633554336425862587885464187553385226546885442312657861441883288411235521135353188782885872811752835284886488718357247713814645818127514728766452876423671154624223648632674321428757235712343453336315263362324851631321215257451646364357585141614613424635461245848374141314472523864834547368553467542263621843736326341167824831654562718553543232465548412481435588371816337322454125855762725234138236421852186258622767856536648322132126272584236313775287757471654755134882414712275364616552627653336432562622536121281856284666561728143274134416426578717332887676647135544854383522588173277653137481112166283554618367253838317154724832541765813538342314382716247637788545715155656886173764544127454428688362416753232524538116753382857751667148353211534234821825118451236832834842874184583244552466485255148214312427836222374426233427888511816644517781627656436477346884844374715574322887282745338825368487877143142336746536261732135135573153137266512262554514416876284581554846687872634252587863572117633227586342224211836738144822684166423726836116117451462553637785117388647456756563275337367747428754438834516833841441343234636222552254572264265876172381424145367274512785822526274171133543746652722562253171718264876816872553731684778774531127415785584325354421767443782813321816123221656787735375535373622468171158234771364757167616664571455252162528343387715635868123228334447666266216883226471377651684615238755573842351688387131268241431373847882284828748323316831668767237836643134185627758417172157762534115325481668244642558335228843113211341473383467574517725776677614715454643158816134416844328671221762213528166448876347468444163745636144822535281524332863848321788264533455665684226161364856613325647584221781767535567124454473117764353142684247662541552688167524516717646751384418155382867638751546462653472888712882157587273213511345683572438387561121735625133667213251163818425527567135318366653148153148852224871451186671856356332313378482556282867636633865655876374321445725122772254121276673161118123682783647828331448724122782613538725781578572676264643723858822554138653522748133284463437385547527284522353335345458687287447365272513444766362516143853363711475516551133731556352654887377883544761731223848565416453246646167441484125411834261575717572775526636248445148233272452275154372825518214475387372287113525841217437345474872478617215164534524156857586652766486814471848361476232857328165712213522263165218583458747755183318251164857567584535211855121412133716213838458527235282368411214572363536272648528737554562678714136841365148157641413531415855324128752335847663721744541146245657338432633518587667683487772323243656528576145878448764248171151135457416127375826463557523387417144542224627816324645284174824488841133214652388734813422711828413565453828754787257288846837574787148112573138444351824214638627583251428472332724875183435314728245844788577461727124836564656647838874813425467366461284565786356255612544256544387864136676367183228171155726726373673317545411373157138312158377342343113518645641213141816514345266443313344777588868166337637812555583887362632388852672221822743418757272452271675821733785836876852636567683367538617184356855346261725354657421182756782557777265824145521123227814688524868745844357566648822317744665768743114115858323275823784331513454434545711488727818887877145147451861147286235883558147727423254822633128538178311312188581773142214275135141541362446486245248336424137218323158281816327488433762344652553857534282778638547522315777548814424541688333256115716372713763875445165117383651331535723181177387862168567444534286448754463888645558516456461756561125558554488654512713551333548651826468867718821112433133376358427764627217161747847851248541578325457765647433886778484457262111216681234147833672331633251456474743733886386631753583717511328611671641476645727746234644776316442425224454616452761215678316627736118522872337272812165676445337644555334253841732515263526616167584286528478553378866727246851628637448884828754711588124318337316722427761425814623581821552452731842725467634186453424241145325378222665234544846254648448842168152785818468531356726332325211715644242685357143682124324834571245338265686512836748232382648628828535182422363143636455536265756618385437334345517324577761416274763173775816464855471764864248586581748188685787335177465876715255215125675334657362778864622337458131585287251554732624786171432832652766383324416276632488147217464257874876387622174271781672424518484778574835231318485523334675382776482884214815741362381765814758557447735326467464311444114275112843485574831667715428826885512463612336328456813154113413533761646541273184354656736163336363837377363262466818273878278565865351257442377538553712438373548162756662451821775756166512822585671414358847185377855322161328854655176647454678544672858877568815161435346424348713667323676646754784185633236614642261517362123118475644827355738643664287151467175546147744323854321436842148423167647282381285684314814768421784235614533658875325473868717584673254214248734325851257788424743137254577252558725847384233377251532156868785746117436526751263316512275152286866671132474217587718683285474676422184348335274835585772371424766136137161575647383447273285677172454251378748238273887376722385432854647282222236286532864181614488424348561481161738536633668178637753768825522662624154827835564355583572611876215221663163376622832856136182413881657631658336281186368174774741725378412342161761286652211681663886417638415557564846657386421676226556584618236221875324633661873525832363375564558757821357444462634761655873315772354145586812174226388856247633524838275845141462867753237866828372881484155768855716636583255751148685766144816154433143234318424151237888851335667143825453162536546116112684367638181283581653174655122782825657524344664315371725124263452526448541814112541688781224228377688323121222445112851648157653537421622441544752127742627483343244273427142533732215137543574718833335641868822118318764277565424457188773641621247131218652264626285761115133757636717664857138614877187362643226583431423275723822687584335643118412221418771168318658782333638561487438823186677653238168313336175886784763442313316811842244522877556513554674162452453547616584416156112446514641552822358824455137435665886457121868215117428673122375774286685653664235553522474618364373118574726831455324538511486481712326467157764483452463127367414313611526163278431667548173588681866628382311323146766464684323126754684584573576753517143175174651788224373686371336112465141462547231664534833863648476656614527482134554647841774783264812863461343717263624663253246686758716747277661818446457348868625583843767335182186337232135656776247484383487657357277151673362673483522437814418883665438736561878287841717754443426558588253321831382462826157118632377384582642471534376658555237866783722856184723357623648257124781248134611752283665836543335411175175453587477741118721654251868237673818426882117671742247212225588541482257357772853134521613257723558471273651446726878826713671546171214431572731528171666635641854162574333275337712577316772563841287587512131422665266854667132717366174887145211723177222825715638117516817285764232643842183623381746517883475858734734113862362843653257415152142221571674762662817721666343126835153227365148338127255776757242623685228631258237114357141532363632851484425415363318268288325655516655614821127454867556485127547314532583582846432887343515358745365424444545154221541511183674862578621742343734445582662616214822551634755717253663546766476545612761823483375328278726542885536363152416412533446435148245757455462318148213154786462172537464871726672613524861366265334267236375823754622277325638762345265564126212578467758127864118383848322538456181745344241357843344845185611426181385375126762265558736386117474111248746584667888562367645243353444824644762567531424857568481484783366424347187116212527464523118315643776643424731883746758265162316381852863446216276833416868218587381483787577783272532888765435851188445753313237456553511228324321331526517432374618625636537566361427168528316643215765288656143171557115133366684337526477173157214574774127456856417126582887464738867146778544372753423373626765753356812833821213411747626383545776277331333343354314265562536174757587371522517547132384546822116733351477318168763618124515613155387813734441484621533674812226413711254684438762882855326185432773514844874837726823514874134378231584687682431237545634717833746515534411354373617347677277432678313423448546713346675251818773664825231774132423751163133617862433123686768177854631811861764876878224762431323685443148276644817526163876525441655168154378478887514558716352484886583186832522347484361863712761536435284153276122125223411576316845235636825374276715742566816567777426177323412752333246733251645276852451661845644658313587363476737161116667313765383623225421714667345122712777874353261773821877772383244427826828813651118614453352576674233831482656437385711236151338713253212134673273631414721848881763683566131425487418486272647474651126471588187417423132862611273254888625572832438712618766544731836657263333146187854417152545345666281574755264526166748611812468777583678263624837363248336443187747713735757851674557552253262625416455832373146463338122317168675821571624888636656234465242721128764712862514777461814288437238123268456516681417264678233816574782446154484282517146666856325662813377423483554427774146467145285484832867384333677772437383578187251154853873757515745641588265852654618167158725151582622335882623281256568241753872713643337168477284721732414362543423413228227133285237245573434742272161173743257342762478638163356254267213175821683437462345332844131746725463118158885785428271573344822228535142846523135641365618666878513214817626186252288625352126846354655286513275161548265144737434886176483727885126134214577481556255565514318822672682251516652444582653781647575645827674356251671752637462288451523357453175243874654551478122141175522588118167441756584252435211768527235237848134681725628836664535825235681681135174355845528638281473153728788157483674212762651415476328267264828774375457381132576317882428461455751162582612536266653762418142316318538786628383665122322736866384324713245765147526647527324611783251264347452364515467355383463747455886647535553211586282148474336472725565232527264443654257382886277485675786321624686673517484177827286743234763342521466226382281178321531626117828563381586412461162682661431278636633452182315813273155157776726275476282173673167868475853212725154643857236288156884556577356838484488378514568735352665117611541856542417524217418366767617758552776176746836666351843764258762155654245737262517567515836574488162546726531456214835235854361173216578718744222322582187235288521864542485526544684871483578511314458564185446576644651625646763767725882536242523674625875538716357546666187218174526712461322854427754251842558561842145174846347733845118252727518474858143647436432582573655512528665566532141644514662744352273148366836631715356388263565374555242545324414886283217121627671265136354651721245552332463847634744538812174717331261367632582675188685761242642464561341255471688325712883734861374124131645615336824724164551255667257872452552154432518822647375686445357223325764685587658256323837454263565658227444266672428413227232258631218153136612513441732223444866185851763431657513373282485587886443535545562332325242352716613157166621347176278381535373124335743562666161457187617386318318871887234787843417877775512212716763255215865813612378716877755183825515612863241434115653215764663824451346367361776821311474822811325156778226261567558316664752544658337311636671515446728864128481481731584728771484762625736473572562621613656313446578762466432675726474421746177715683418718873425731842523837665382342823776735864858721128553283374263111471846443882868522811835312528624618221268165184284877465237768316825882485165441814412631476174463522462135271331342211328683681858715678384384137715837553833585276754341478748338888342682621315857173186662514281621851128741315161348113234328382473245736463671774472765766665571865244452735763867252338163332127238675737172878751881557751853473417881455651385482427383855318221676422854844581312287181672568636865262633172227887763742667581784471243427386283841281123743538836556515185312662652451714723626847684364415662814651386468336832467854115568425857586384234884641286614762371833683428512552135745263528453426783611521476546736144363817328564782823667133625476523721243756346417472371527726478521641686322838476564526467223634785551283143856523643348737712877134228521476244577473165713581311422341178618224652524714234754784687316843455877141536648732277316144434771845648363684666482383687147573266612345514642477326573353761287728658771354258887345547835611453135878624786755676817657228834334412468558341568855782671574664624832584184222714483352378326775747584863484272672564762313647283752255155278327572827728788678854735348564412828177856432188851131345288245436184556286316868678773152872182712156333161327253241115361271351233856838152747137738335443275354526811713654136811518724647874415782548415774575285244218616623268123151518633358543131882338353264246864447468473442417312334627712218613455381385546176216638271386857263418418153357655477386832675412442153654656438866466166884442653537482854316251516873568621456711356123428215255448456435471722744153351871456661623856561547483514411585646471213515757473323338771541612228238241322261562412471414245336725731568473481241455463774116677237844788185626752867356753287872763812522258482388282534443346184455313188118845734677188121686212338615265658812476772471551241431251677821512418166712864854867174727211252388255543715782357123214122134731453873723413535117184582452745447615686144163274873817224155311141328681186421575443334741867847671648315644757112444588383186564585235416453234165584124181643862142348181173586745326323363528531665334442362143562811216567227354777888725828743643338155564868344738627271732155185851267564265346314177767663367734856424511231721885742525518473447246516276338128281212662617547433658474166634251261414331182415771374457127213226834857127367712421853434245224876377771513154315857311424533582788667335682772177867575688158847764314543682566821474154628211567685258285112614442743315883858635347836134384687578866266522285785248552846326242688422634821155676532333654144264722572134648364887732184214382638584787737455824754531516636768435411354616387442781822572838438176113543278633578567486375838737415451344273282734233562221711521753473877257116431474365343464146385648235135645484721452757768467618522782165515683418542435172523432321476114241577212315821762614733877245358816636524775753523663627412114515844316785461688633612423374741135466245377117662847248274227327744255651461845618571217526128763875412425218645354364733581576562772834222785472725854724532347426375713872276334871432782685214543173446352554158253128258466821785788525352453478456442878547337827836162377382346641546271161762322885733553446277838546324186335285664816846264134855386313686312448818281824177564668486666154267725434483881424771436161665758381744853321352481538842875231156217213581282442152656742434136714234251378523388552845147257418738815843752786423513767378286775736827863728561487745271866524284555358337871821461585672341426863167611485554281351785685617452367117754868355477236613243648763343775278224353143411684164517713782418336653636174144216334274463274714546471754235346546855253471636677485261584274537211725631681167766148267253326716744126276288643856844436757144488781575762413687152264856631765723541784834262564782776515268542752832882477342671764172667628515655555613286354847153321758668814566613872277372184173137862553576246232421255231248412864221547768548482476851171582448862672235171878237588354413527511345557153722641256272538557818618324781663513635814233778565242134561243214234734756882454875844882876886476728811651413866152547716413757118881136763238844188576287238838885567855237127287743537127876536284846268147564355376177746511876171684354827328847522116433131635464517185783554385213715724777432582857115452756363324785361678437471882434278725713272675311358787887187425164244563416647761626525874782388728243258734367841557736813213672362547581526176631523818271544377512351828383166624662588311445755687546175442271346463464265652736542255716675318153468476118283757648871555146657154118311388231884653625231482364465313812832888154275614314242644842342234381815324841842432283386272451558556774245841641531865354418135156735825568341364327544842554736578762327158175273137288314474113648472844752146458734665871442625351554816762173156211755751687824546113471288552872624368837726872542555672216462248636231718483515466812182435521244763523158481534331418347861682675136343852671113624655222272458558354555473271523545157376277141163184683526638154628124738344116323748116771372614425768758761282546143772525656285743328262282115326662724486725156848563652538167444586515744155751414771533516316635342636143535666221761787428157353536387351784165753883632314141468685521366663355311344262573378828476211776778826121237153347331744254318556244753845446372172635257648211585166332532856632514226551237283481188813755537685164485418887234848711673886752335775176842755346286832732267367812111314576278564327217334731577777527643457824413824353485158787626571873642672141163813224211663386443776122876673841863348423453164142623861345541384535246547424735117355285715545568178414256645312147323461175638514254578741441522144481268748351662288741775816227325312843477245332815681247566185285441688271613564138714651336842573527235266471553444875618863777118828512828865376344862767246826515135726771167412768842423724435617286544647254431885217275585165551725346662262352548357574756312181575857144366137528447423231446165257167152434283784346358353668752355161378415454775566263246738855438266274626712338646656136882442165443774262361235416716465311563127356473315475883368825543211462315823848177644861868574811657844116451366741714551425576347613223527322852643187716462153438757668217454624531172725572734476341836673712861167821178338376667651114345242325127732325258476228335731445267745387526617656174566251851247688227676346272476814335322113563484732453742175646665364275433638722624118863514871427882544877735117575142183472538138348344786854473886283246866575161161548815354348838714517255468446557548774868838811126713156181626447332438122878572322636183755561814243742818463512742251236754841832863164677637873164287568521373571853822652248523512328877825133675674728644353623722428217717776851413446578742783534222153417111242173711751586856177343371251262176336172111716171714713825512676476172853118316154444413851738243847284161188784315426718458173463343351256113283742172584582445736733715273482433516466776636276826717875222432373185634314677441126775114827152357832137213147625464674765547473843113534885636334318743167425715763133572611444532476773532762855334543423554616755418468616417836452653628146438841683528768368165217565141783454174136128812528738553263222524633233431182353233788112483325484616826625852341328286336335464812561333534624446432735155618188825825868387442142884161537513585753446845676557646243812337644821325821245411244758726651474573662823514255268322363635644712735837857463556588385357782267112512167422744453182527814711668588483242885312311238636163211761666671746446264886755533821583361814688388625112784826868188822822457876828236862363756635224423337183454366664766748572614213483763127522875853644357434522832215226144812485438452365724576787375641236146585287424566134661467618433187453163472844344411114675525584131414352216346644455628247416711521623713234468822473164825363321173333323751658754732321446447423426357631483347432631462172534832267686716147581338463232471543766233773247813643675188814857881324517873474457683768666722322348466364513645172168515244163313841537155336531716654877172362563676178572342482637775371467632618177143334243472251475533156234732386526136345556365834281871868288447757552164612881486245742736742333175842173378874668751533377216574675884877446864558528826434242316562855761263225176647447722621366252788472484167337768622573575267416822261266611284126762726313124413581374111781768245384685156264581227585635422333537616218576615627273716857642885765252116676818433764456231186264345256881682331317624346125788733455724854673764646647825285775786368431414751875315613233467856371233261325428541277511424818287326311333471415274881642118138526253883216317425575346226788342834828318111758167688471651372554553574554315318645643427456268634687714831437412866815711237167144884874686486641146627687254665134287656416772775423888675758857176822558886142251548264628212126667588578858745765473444432233766383227713757812528761864184132357558486448848157114282266666588351851612585287868145262415752756858678715122867578155366457581855821556135822336342448172641616884656338777122743686262383463738881531227131862281824653166818887622648548545652423454752228168637712753376738866823465273251623564416635177645143346462474425778876548254878171174332546578733621375857155124688237342611574725821126532111271164785635771223475554214172788866823485131128166672662741136678867874247225132356534474176455148746857338812734444452831362763424675418465345451713165683576885451161627828554384561236152351563531388241682132277857664816133475222186263165851356238326588787111826213566253787477466735772558347867732516483816424113272316237184474284548886347645758551241611254244384354577157581246846117671114234538186418837153316124843828343383362677577178421777373235238265452321177783411458353276665372734625431776133248764287734368227551781534247232115222865167848461558528111424382468663245881547553222277386323138683176563387144162756545873256236484727756557622586227326638412727761342664416356638566245156884742472448758472745318871553813346251412873687778166861635123327634441248515444152625787185477822855175112326628487536443657448332446116334866572315626872385335266743164536852282353112812141657818323663167247478746617428542142163316573416742486733374238844147135683513354551743237312312376176323573574631772764585483521885536741618777825668784434653443182446577462231417384786833273471224878376568326623163423341648667723751164682461366378528671326218172778257462415733355821822382386471156768166545841138181328258764866223738441181711668662674327374864753456236314862814243262168232516721243534137727312335432114362614634187151748348568768871163831411818322455385822588554231234335382821166362733652614786718843232131183326268445372757118118828782782281717453557483312872561528485574331163887644645733176717444582834187886737313485461611244511468538835678268425623673415835667672372411436134616572822161247163181247846321441685743656771354553243684375438285651685468564871871841178282817448527652365734477472446162751314225657872455481347252435611641768134882687313334626558611764557467723683174174525267747885147441883252536544186278861728871384474611534354424118182141615644278621338452713863461641371742835787581213351346651375428254347883353448464415242838277253554114446351387414185288713578841422556257254685285371257226767768122316237667743177163581264552524354644411855361147886674245857181165572367485555325153173646242255613688445687281386361644827241671121862287877117312162264655621422274414317166556661743818471488614252342754467111254542485214735251442226451231246356563243626217858242574256347664127312364555146121775817612235317137332386787268854441861151671271664718155762753264367163611788552583514171834851444247578637278448358734537528634145864413772782737361471248262373536536725814743646485175812686645818672757833854613711367346867564413374247244211557385128463721341335721334442256173551257421241244485534635557323265352153774568528137317458352637351136111556124587175737733883488182668772284528434877721667173588435414688652351735366141718737632278315246143235657168126188523446834555268242374276187654375526878112527587436744528182431148346344462722655346468465627378323613121317544664127824453787625646647345258333431278585574312575317742834557786565584148246311682143845382746414631715736136256461622352133441513684747546763265817238112323374311784214887224414284282881324655311631836324752872156855877421552685444775827272857641318126768114228587776554451321342823316216677344682427563582385456376664113734863714351276413827623145445415783268382326636124453456868228754642667566248517153855358277734287131787222163544841243732511581113253561747782852632815722777544538583546826767832882164838774316856216864342222311217367345336627845643147868165253688471664846717362346138633727273737755855235148863243763124713773535182372872438428783185545531541255843141351812446756177216862544217428214761825651135556218161451887775862631263135576877542556553117661538555425842348783818332333758428434763337467144115617717774632542625828463344744325763541661535456828563564848136373513631688384653326643133643861821254338228375624847226271544536352672363867116211533357162525757673771737347855174816423335826382645328158544212568327541683187752484865836117832831642727777534748846536317717681634863647162426421741432877647376774715628532248821664527483722565823272134818812535677483762627878364563634572342416255513645231736841823131765822517224457547322566557467244412568142483826715853325632553583455451265566347814782464386645582213326773213651641884133754324214186741667144628465774721227385615851626587855563657286727347765431118437881516478857516146481114712654443253817764322876335415773627658641832474526662114315758721283157827635274437634255312841666148531311625167447828525321486262135635454122762251272721728213462542776258185827815274233753168881165751636328721484474456638338133578357651637344452884354356257475876743572476532786821345637275341122478574847673435536111574727736842566656482545187765474853646186223585315458565418554641174351662181327763425636353634788784457636458712251781475454481448482325627217171758767111231231776864286823482466851727731453287751861638637462266825657763788245343162585848133424886764721641831214124328282214388843174625725515813415882212237232486567116366464761868148333142852225686323566541616627612576438342722111463634684425876114427448686487281463738342586814155566432232627654614514454654226463123383154838886427534885176421682672557847544356768255433764811778684286827328186572122168221384724838531367837555434636557354336431341143836487811164686278322651455428678828775577627142841112746448127175534173814325218268451285664133672256127528635553268244721284268341653461834576718433862681173567648845645164321351627474457425255721172687186777421354361617313474483557123362223217645373213541651582354681723614244677157378143782887356185165181234881587568457547148458852237746346183811755371175676268452246841346337471614778826331276466132725554818666111563385321624436265481557424183745245443124524742341185843428361774185316425756681367552781484478547244572747514332176833573886821315731814734854122712736135374124386357416782851746121678827316335867414143718871377314813783435687135486446114238668136813225441358468121431714466148681828151755788461423561814614644335717888145173184141217377613213471745751424683767548373751261115188631373727254678326362375182567532365526318447365663567163828643466137435368663348655162421375382812411114877873718122854888525475233813457245283684778774416812282182434725135355411384782257467546456535114541742777836123836457184446827178124268658457421755532863334738412484858782613645864231261528256885452347264217614177781532244718444547865475322481276886121452483527422551748677463253731546453414322444227153816378232353587715336142521135473671584485442232734234356855554732557566122212474564688375511841786521332422526643118613251855132488487331558773753333645411871626635565272136313315276687745525247462178752481671315574158577783648714481335814684323424843738658311748433131556157386452684261261242254154716472866613842165177718874151242748843623567461647585481865878731325553676131254121231283472434233784123322334413526245581683722756338261112452773484558585564641433156253315143153417136551634647641823318714228437787523572615246747148126214224583321635866276757632231451833853871124561874336151341385175341345353471435564371364413677723547148273786853476484531758341681172555835236242881321116837667632556116236842287788816316168412357534357647727367868555722668554327458331778666158665757721676778232221287122487335526888123717431518387166316618756556128115815535555838638811853314576183643216457652584382846273632347578618822774124443534852374275514431438317768783123414338426164117256144532111177388628361137145731215655733531431168583656261721531783346586318163132317584365475265551776214771174375141274473888522268576834148566646731368635386471135638713656387171264716332631741878758282531387372422152385145141623612451586185337511436531214863281146262871128548378818136288218321887156765475111112872351272218855731163327728876244376484274776128286234123662376471271265323132642434582768664878886571222185855265225162637126123371158338435112281616561472651655456471884164884852328324255871423227877384483575623222216784413685573878327346415783821356317643757755774577834474435557387638115781865333772338643815782364232672644364252442125473652545164342175561882216425633885751126527733151656846258722777368862671254525257843344226181786681537551668355126441868237316543315661634355737272235127515831256633463484147752642223663855837611614544155882762854221273476323144518524271856252531658514282516627576651656467382127177164384556122346423126825137585888487723221355164373144226163268217575814636813342512133481623683257618768565851627776786835265271127515257714462256823316883426277145356736874266538755122138647222614186772854317251437531212821652126785557175462561384114353434246883247823265873173488785718221828211568875561467424464141563622242367255468426858165266284456376463855268176468846558878384628333377764642476477614687587666555751386437345541427774684156378534621164517732863347666748447116248223678452518548324184118476787425643575426366874371751467624453676112354557345441585348171235464262466432336467526141638747154177282814634172731515344725272656172343365761521566652238457581768158386531282215541662666223268665361524648436182735862371267215333182155765432615262481224184677854165343585726341558276683737383656251525787228232751276265854826543354783522235427143458822123744165525547467818371623215324684667328544476746771543763162137264863536545328563637871846226514181351674813561888683455143484761562241631653643378322785735217235455475251475423111288662858778884548154768177377864817783437486447421566562366753324168118747553112138776673336657724322316238238112176411443175556655783213182613566817823871243568127485612842215882754623433786357717135228818455617168178855672437837448146158338113661363747541133744457621618526544267527343843374628286727745481424235135826224543258542375575634647826518281355537577673342474745316157636458877443862283311452882653126738336237584411616443247364373535454744564612442243454351385354461852177428258464771765565186543318473324741753287765433518321641258557888671651484644564586537323765335758824531185227564786584571211375344417563182418885224668456481625252528577718484565738644351122514733387247643116371221655455675735665176522788534226887581758312845253412357211312886626488386251742783577465183388632167674861114348217144321525178853686183754775766237351372856448717476423516144434226754625138866772134351155215577738817511516245454488565742366641641587514838141576513673576357337144765365768834545424478264514428865458616615721337473351421738322837518245474427162354313175524774331722158462764666767262381665765847151154842178765277177222487188484251622721456572178462612266123215366428222765144687525633111332824635246111665744586726686736575615286516661244361548218557713464658328646737354824585151817212276214775238821828447151746537615133377582174243686253844553414613612457332346373817888855855883353265887787426774663235627226428415552141587236251273442334673678745815654574268283547431414668654722477542528547852385142275216387413253425438872722882228411131546868271471135227173252282262725277265811824412718825182878162685472668456867124115322511474248756184546384116274422668617188672447813532518827868282268148526767627541567456841731646527278822651124731672166126241418323775617715258234137418121261668844272858574266566417866183626627786883716328673121427123185636466153118632665667625584718438775152138868215468747486543546482184787654644872762577832373182857315272315481247462265151121313243637528655745273465842654742163813725687732456453154738364247545776143486688844816486874414725863374388128521121755554552114312515644646665366323865181367388125378711266614115468577364284662318341334162177384248175212245365866681766845464885754141755457644471457717155112647752514648521657668221823533364125865841458524867571348558573854522712857776848417137163677144465344586171335372782554533383411644751428258686542387717626154287261373818735175325763244846435823822862515721317584768261763421482378118577325261627234277186245131542266615272311224318728518763837725182518441558558437184662832361578616351364835848448773662478433451685488573244145133866124666868848254218124238688675353726171141665256737246666332466748124138252736126481266551617447151568452535886546361135763267673386882232722245478442724112761716516628867673381214173543481272787436123787176663272413752565425368637113472745263871235188611314766244587433826722784111542632614137454187348636773384154786664137848155471451738134236572345657123687346348428882413767153585464743366662511578486361176812448883288555423431146774857247488355544211452752566221315187547568284564315152365687775185758573512528141652568235814521216622147211762444681574172511571858153741577437887822186846864825577838557481276644823514761857573833887637453684273488776568876371568118742771884733777481888323341846782545634124168768568487482543823654227676783746763628134848337313724258545521216235647218113833775867782344122431562483113353647731528721827657725135343378618188226757751323214777318346267773664146882531817475773714182536768861566435276122261547856771156624677136614123348351223561533815143452173281422127736273713268634665471758567678261745635127652627363817865481414458888282136714317517162317418541511226881341772587114711632273313322577522368438816374456362553552711668765414184788812637851825616738325733848485173253627666843576215487483182611873351727427736527624558555683452476225633426234586128864511825151472845853366733112887125276683687657254587761762537431844323658125841856613455328127673225247751311116644686324785651643824688686714277217715384536682553128588345734552112687126773517511566217741762872217571335555326144622413278354531188187644843526685415631662775852467318784125352818232264158645578378855334535375315183417138654557254443486112232781716321743818684787245415584474435756542738715281161522631265577761225165543132234353126714157485514611735148837421613883385215453781574775364273314213187578721651627756881427718285115533162237865652827856417874554123188273161332284156766362677685854872878578418415152475523377844143337742783331412356767763367432461252181331842266524418612455287863268867132225567125645756472338343236636827572161534616454674315278528227636883856184788863358847511137867667658365755347641535176785388635282715346767312454838327513473882678763556876221273162522536773641686528323182128183255164423684623142574858622687678286388555884857223564233163731615445881585882773638223526488561774871636373431411183414654677355421583337341371488681763881633875614814437466562212888278827876244314647181327517714382751345631157523838637188835152816148512376245115638444817511787282638737218775148553123761721586465127848486557428421484446253715167857464238547458584115431367875437361351861626345423633466254483786582678727458661634161653658144713642324635518647745766643624155178327341517242132568848362743852578474212523425648244236872846282718376148487627338322176371158746465248655273123845721117171665417882564642141314543544122287335275318663547574685121182377716425823756221674754333442366126555127164653632264213226411672434816414476748533824335543612524175426564225765236526771727841117655168281764854676132711684312646314328863157586788636686774654454476341656265751484128467431875171474425738875181163118523271775774835218264334341617331657433172444632345748243811633767317563677751181542425426476638258126172467233356465116312545262248557412222217524172773114332125137574653561322436272153582613813332763121228153337544753638176121766248321322325276223282266865852272173712614877511538443111553377555513664662583543277454261465237748113148384358633174282348457382261574274576221227544435456876761788864183614473844357888657132166664163811118384611156177472658322485683784784751536814628575177376552812341483423764715761445274515783524634532828386543574762227456625747288156873217266648437333161342257633377618432783335265132266348722128871483648873255665742243121233287744277642627281445528532642832612286561433828858472144315167815782425564556458466367655333721888211357778482384727581773132622618442731748547821646622684853788631818853417815171327486483438412463165476876542278188444447385512524633326132755722432466362482514676824377161628423666853212338416617786611447471327511871773683468828271884488431877843572821754515431281338348184854313164255216426442164665375641262267558148477672855132521684676481353836732561453522744514578888621173453581382554715326441441828176128474471343488182316146644353665361478423438438528831582687151574333242274136155647765141446355675618727386653336761874184726855432118418265454712785815843618727135646358462853713358851221668547722417152317574421162151637352281112716184523532337481231863742843681868432354473833113218454315575572272426431431681877574525148264183382514643621774383651732447756755866841878123453474266467251885243444217671625531153481872132313356634512362584686812881763884335668785138277313814761756723812245624324787528876854118377648553125523583152128475842571411133345553723734813751122248876678874536475758856288866151648324878138647221722187575381422141117177643132268148814148642856864432283263388351812322386477631244861247473278266187734548123283278811727735428137577137888718234714773333865474333612582278168141534527814257642573448634331345364686273515436354285137557647732361575843156677787477788324217184123364678827784317674626183588161116462133422812371748427464332113726521767134338111612215545742673142685185587464435346516157883283152667887615254455613367756643857282681452543775322628282553825435551313237513144775711565824456673621134444615784844866227651187156738271322582572647368712861473153631732546412566461157325128132362111765213461767748336735615512613758166328483746468721456817264211217448444687382173628478763373361122656182682485737732328356374452587866736173632165366282526838777545834387252435122487341113677518667216638738831271162662516127575362131674574658335558328182441676858634182524557713642621535588852524881753367646177228872288254312462513431312866388856765657757881122452158816542137622856632287768162776647158853681855385464351867223773388372221363562128225817728674171614773571546724416683133611274341338557317546156373486667355746771742368783218416743416712176735575323353568226567718555444186345873268233722537325732432541865458446136314236125565478633626833544746247566338583142165144686147433743611184648821226627686162872256283258231233842574341624822784418485427212552328722581842686247254753371186337866682674553334748282275274774367886765376261542236355764822155754437536354315585386471443647728333285436737844533277332556345377257486248644286222814266462555446884567213378616787872587441885351677517533184738327546172147578657164583888342871685181715233285513822327712185735185273665675812711812348558718418823251487675565623857778458416858344454838475657814487814511314245371434477854454751357478518681735848847743754846147785326376165628274835811111675522253457134353176148316314142381463428287384283814834532115814147856766366773171261583781352423327563318577555578517644461572864431631555112665585321764478676676648474575718864254811345813577728736881232737342312316584418287171776588778664781581848881811388133678566581531586681386444563166112167476511231585681845458363643745581811833588728873175677852886552313363627266264148517418567881221146375783478553111722747333325328623311527138141278834456775377848866884317372156158484778366652345615243841646447354482185757668838541434165426222631536273528427133173271632328283813581543151864247526385484178461638448655642643554771188413341171825541273846212676456384385413251624482386174857253558888545757486816246515156873848848481133877347868588784248543284748718664588182822487562523512872523481518417686445287121866732143488148151526226443344817387412717628384812534835336486836663554383372378217312782211783521872822216114835633527637674116654852648418768112861788367747423575458386344814766756651232543556183637432438866247874863226173773623535475332653222527886364528487642856258122444352727244253262613767583252465467548121246431611687413428626763684386417652672741357515567752286233563385561621446217731323183725177217352381435712255373653534247628253882185243457683527772853735711715862285412266288876743132578258453333874666176872556528444368862315358686184478512233767211867684821851258384225348673118265815483247231751242443172388212462867372765846532476744531422364452851116387621765245358162217521413473668131273364888816777515615541577482171424771441224542263434472372256784233273852122238137472321282877381325322428313223632868578746573365583611337325557722646321534832177325245844288161214743513883766664775348758426244677635531576213687337864823216632215335473764743643536585825248435667273251641674634381742363875443866373324373445542633431777138825621147236447612761221754366355536217127463231177765452858375814335716541434582878581786382482882463783846886771641476275832226134873347833322153666475647456231525658112411612577373726358142614235646576514768367525347342278582262531257612337188381122338758143383878725548345834543636528273462431377532533126271511862786214154652515728187422263256113674675136844583163814236113713241275455741815373264343154815838624358414181687815145442712182653145852462136837118648881758822783358255365158568411456432181878374785482664237268865578757452351436645713332228173242176528724437688345378566235155261588547151436332535472762177562532272877131338172617554757374516325521378828584731575637455866315566561538477761885254866334552117431574473835182267662114536434276312321311876114447324636361485282433254717475885326681487244333463744832478838562346143833355318653716122615537438633585527254685643844212335234164133382164581264267545748127485887824181511686111561752654213752348628778427288725586738255432253775661322786757127451363875666155588336113757625252885253436182322854262546875562457848872652551655762583387754686151148375247213447613782544618424525114387225231812841215566564623314638552264231835112368676125445525541324414216474511265553757826536337664252588856644885362668373122555161281653423473165248747646862438544378227433448624387168623865471575257162862843861433465637236881416873671431424467462834736273884248213355167422867132472758145261677171557288353253161216721383867766487317831855227338867667662424754572142133345277232858325233518664548642176581164335737142418343786662866282368368842456283286566318253443665353226358674813626154831274247641852354838386358631624347421284886713282771474313175126858848135762686875671672185286858421831217344112336315174611153685658765316616581237785732537864438873264842681321266348513185115661187272312111626357378254652387367673861762431733652273315435337666653616456431653561712442542427641117453762517752842644567325781557368255215887748173441878534271826817228474358236577232744268736587115553175888316185861456136755556227275731667843516552152316868356145328142845866587751882385376851588164325512266643423347746213827725846117274826854375738226117856152757343425617213675353864468162827418451677485638765223225288182418351128558188842534523233112848774755717363364483414727685578434728155453745882312654222671678167631375231726844228347412141623486422614775168457842658568582541857128153561272846773345384125211673285528336517845248335747425284178631531877367843875236838244552472214858672566435647412323764578768762781124456886436338313737615357547216548817622425843372128355168551722762634535636555734756334851547624547681831556748372175232282534155422214331521224422685512731743354441561388321438668826651441642786541668567312848486263774457634887833655483674234817846382232537131885211238657125771226318222181156346361833444883512312231181263786434187338787755576356465148327127233856515146682836541744742324643115453867334484757518874763346327861226656165156817562648841633235227571743455742567738321453343834477463478851226155584516541883337245278175653455582152673768667578757662847741468361117342827773658282876737464167778624516342623538736161474881468316453657726748777282818858712348872856415158534423518365746161534676133688357751676618384856521757167446347724478226123218846573171731222613757631412438378187813645734884766248856686374344641815244533671311883367885381425122586126175273837262856255367466683164678883243158723535752365585882868464758121713125217132552642815557634225883354575144281462232477217688287231644248347342264418781656546155128512135838753388747424144741323841153326388275161872882436565436447431855741854812761824336441151814556841113411647415485241822578145435285143266567224417186354225737314827281557836366773414836566866438728661264782275586886311166671332258362427543253428755753287221116511748353644656538771281578371641781686552186416374461227152133767787251438645164571288612775227617481181864547683473448636717345774874547662537746687632878713186572513168378663118862658516525831651153552184184887754472188358334887258457834134765711171513585685126128572872158646615465385552168432378246448178626824153315472432231622456834585376758781147857266748854527663718545282282686411242144262538625536656762111447233346424573144365181673844645464465667783114341741474444468673228683462673264855551814252176118564822256131585147618222118616263652563346383566444126724454276422665668465682115514856317473134857234647366147315661866425627671588634457633551184681482862618425478482762177774258388552382334548245432545184215182816746835171114514435614721331272562835541221347642323384484478332485615676471225143848477482185381762431764756156142856753862262844156631272754555356888386163764335665351585622253523547722784237482886156288371332256137814486832132783222621751145347745244537747587866744488551685235721371652511165658215721776118342166142368163587274635771157172874555442854322685265423538813717233767561667537752311321871257177134557584117871776718513328183453874433711387433124564883562724263213553388733112565852377265648566783128688118223378423888531174723681366244626855513788427426565485538813374646787244785614121566778676571645482822367744746563242765484565625414681445836278564347844152538746216827571714721722375672812555863263871157516387126652528464652174863145452141858385446151522476774644871152726445156352424228863847383168251411165367526647535825425378385842115343162735554723421858854148816536544777848132833135871455826236881465731731533582276387548763433266718583313262156452316881213286577213284426323837254421211285744251271377126811483744554233724818624642224861811751223616674172641162373346136723712732216364435438334237737515556616536258363513112424314632377528247561556724624836453736632571114556513251638173425465117856834351627811668347556781861753146248311761784635251786773538848558256288875428181778437781472814636315811557127783746382187787367857225246648435766156366143545187871114765775132637432613133633581217681838432312722882755288124245664666361167348414381766477812135517815513414814131787585353266474364483483783813882322514881338433562772727715162863724371374886251117878736111216275274368667844152516288588565781117115868731815623332847562141747357821461421672172876333414545877438275387353232428127164478174777612831433655754335238377342631266356488461613145335764558417224751556111732182335872184544356717531387861641878536436757381541181788543327322835645872676442226213734165864754177576424755844352232614861343342275474566721353246314661785636812228575357451662182435274454241853871213824652727667256382613487656464335786648115881536464611545877822556381387555327821182123612411333832722344735216313214542488173442224114487577827218631835743657565576122841337257786841485726374847546411544335725565224466185245161626462761142268787284811175673425228865161884468388455434688517171176644488446433365877144111578553874823867367314463364442486123411768163568316458443447664462618456131376867578524865312427555211713717582151872145546377213421561552377554327428633137727765583344148864885714647647481276585436847835431167113576326321161318813456565663274487721152727455423458725358373372234211372784435667221643376572784871528467866111822553477245372471547184547857816732271681388214254134277678541283171646742462854157433811822511817673133871732336646134775543513372344337327411745214373734255153844874765573336557173133415621515164442666818334687157167536683851812138426325474351626541816363863243671113557158722445213535782763141217161745424635825775454311662473286341483826575263375625443377213744883842368772265746157876414654258144271654842583885451181466848554137661835154118545654467622373343121214675656671215328172875811328186135617335456657653421612418415174341174386852475783531371827175516274618115821156428426215873241758888886445251788712238387417451155642156562327365488884335742726447653866218636332781328584645158872874564544733128111156187313851125272682675143851636136424716574187837283467431553862314353861141848727635534241143361485458464135164543656172285187214446351433818151326834721878486812234247217613712412548247774544454848661236177324538558834457882455378188766218637241241585172276522172855676218131714763447336675854756322112614375737778263847133527746826244378523486824367672888472678451487346543842347213168677752754883484628121224611127153444388745242324273784765834488641278751142363752137271771281234718782482538561441368114134114285734541711467568355863436543838478443521233171876173423637727635348387322576645323251484863313836552451228848431426233621556716558764785471388412624656628166778755211515245243375751277681148824212322513773122563357784787756763652712651158873377754713375133185243227884777175551817142514511614873762746624846646422643281751824811143474768231573626682377166456537732378188747175314242645487727511718415488754352776657813775216356714311882487643815662145336858346446532672215263615776418765715458763817735818271435146183261475422323782853747577182317384347576477654558518157436654483576132478212333753755317141455464144278766868825867485885186641615281174636337574831285785236366484262512211658722737477686324738242888178242123863721251552184515464477358167135423418461331482844143878852655814344766888815665261134688833123514581246716373566261635388211527534527818513568873626322247886641173861481724422671123286782464247111151787238164263153447341655165246833616328716678823744871284374166315646674152124165538347373748378728277571483456828841447633257788717333367314112163166548532316347661516417425672857378847167763286355665124542444833524327764754546613324648541113155454217383426184482563137217261673761518517773273435647125538367654672338726215147678271342247814142842738518171547453273366264348538328348324467771265583276321231768753385788676453118384635628462347343523156483651385755174681824328647643178325851513227586545747372212211743835853862681351882331111332163863267455572273143262743833748116428831258377642855748218488468777661785628253426817435445358836684748872814846287126522653645322455324224664381788221353526725657358367435532361278275513845126548446876186223147836243587618121164628838551551454734674521233385457322776818652784361682712632364166851322283368765434365514337612817636543746383842176286636567668217453414144887783413745582234115731767262662246157423567787855417274667781512327735283647181521434462341367266541235458855126131563314481716567376783457151723541866863151477872657863748572782548843357363752624421761328267433827221123187257365343142857412551177658864451376576782857764621375141647288777233777643285227855536582467153763121852762481775134783516113356534388276372131511156116724611131468174378573218865563824451254266764278184874872115313418571867242635315611754644861327736874315148665712887367755544336675723336864442647234176336731285376676468474654437545744576286634163316224375688211684613438767345272563887566576213674683276662285812311134452778114243221877664265153235271154135426437276148133337222731543613844556172646356551467322832213484558326572874336341732535722132173175411355775178157222418372251555665482878247651543678624538241776386151765241384238257216137215511376158243368453137458233841267855552573576583786342734685763557271188343662812233423582737741254334735282158372381545485838853455514181886774613334841434186317858837176435713713856611671317253653531864121162336684762568875251264337331246848325367474168562675667512223876515742556754611847525133251218758113865541872845454557778851743423418851857727134488863737578731261624778267641188643186545224287868327812475582225582745154544342848788547283465624765872482485375225278615843214348843643882276618883853524781835721252241128686385556814154257416182212874551276332188285672427626514413834542242422447615723352128151128474615727522178532527425382111147265723542446461632161366266377255434487533341128882138423146832165261831865873563642373554316271686481484147482332466422428237767214758351651784116645587567121547633655322466476727446761363333185127358163777561461757575474754433255762126873571663572636213246528613824668637311627481217123645612863111838461588147734643523641887215767721531112874117366346436814456815667444688781587837647845182753335768318375414784328124331112312588178623224363455437467265365434113561858342487812427832438848115368134666865463574163312866763466348422267312365642868232517525221137815416231784657241467325437111866117432477744365112784413721576354184832675128328465576565533824134287353531258766424672311263673152553726888576227353278816231243867826565233752357265233556237581472118533514718233426468658577523474416664124687648482864772318547875317728858621225122466286217863114842846568377851753578888354664168338656582156743156523548623176668645361265756732584825473752438163265373537211128277625562671346261757222617426184734476234225812574463283631416878887616788478214627816866677333337715574178111242842385153486338218334743651445545475142382184672315778722755125533137364443417348786738522738452665257388316146886341888177123356442367265571348543531147525642356281176631351875848128742113318574258583325474874773436343531158564533552761758817257472784768433743765112277674255811156244773237421122716264651347823687163375784566643361443236884754337555712858673676632612357443473318575772618667317267862675634854568143871814412735678426156127565146185153284363812458235546451852432836726251527368153516813865217417151472488783787224712718381136812556753743188411557735625634485347828361231146782342764314423654456248753736273117345445787768375655547582325632436567727662685722143813132362564832778226172334238585568682718368146637413545655312767486644542423786636856283471563373144568672162332634453352415644615233167364154284335662563246377787774566673263682335172363652247872347173466333225732637811724213314822727457776126278546684775173265827468814315832556722318566751322764622743412227486623336622321216345421736647487736231488312427648281841512427862541381831168541466252718827714538668458226646741535613261812465117643623386672681222145246158231881158358523772564647837581528218812716465611556887472881627538486647874414531826334484255125635455253361783442172281676874527664256271235278854273211885454771313587561275776254275372576862658627545351714531658743887352587458321416187517363823828754811426114144451877674563565411567518718872433122748863328758525333721717811328214681882765483626184145512644521686375238648121376741882233574318847567543414148471561383317338331756667875178534642341662262612786521877556226651771524432612457766865786415241785547157274238816513772588263252473377116228276716774644356348486475343562248781565618612432376884225442563242866436887781835684713154871365552262566316118235375587183771132815157757157668213733687645645536142777688263188447477748213626836822372214274184832426333365658426342467546152255413613148322733557361235417624751237412181773287535328465337321188841618784161584775337832731741781462147212331318817417641331366473384162215842413343174714541245561647837478338551537118438244611732221138653368387288682613138773815774645178517486862748113181451535818264122851224414125321166775373868377431253363761863146724148312848353444367321427422168261652822557557152473574123788763815183854326273336385454731426316473765214583782537763826854242588533228678567486234232576867236681572541463817687771835333213843512753465336283142712131452715623767712315632615755865617854126463821152374452616363441285614417468541678722883271534224682718215151784466525541554673628588526783443845517738875121472442158684648611332621375556552663465115248616788836631275832767171577117675152815664683853731617463741377778846214541542835555168124248526572388321872244416178581812564872177671775868816364233881143132815744527771747234523513273583384845164543633115536774763228224378775381321531741238675554466584478624446166722735658875132652681368771477265357581478858824151774752561386487116152127516173167211357353618518822273828376258861613417434345843127178817323376146354286382782714517268667655351685262811641681626531566333535511724862616645426746783172815535514166247573621484631647545187225322143861737743316341781456257771671537372165463783842674368124648412836613256116486322748426772632522353345155651173323765543423342477712313448544435728341472673531112218224767277461861115854226374261282565154767565266752878277512382525721766671816558443867484524435864656185173315216268117436866134456255351356777464462822665377484166613315184711824613841435861177615546152218851337378183686451782446627584481283587217134661758658837657784868787627522157611266266612586541531318831183554247832212326677781887486556518111584614414772637427836658826586645113251548472321124471448117463141165286641563344458161141574455567747482514445542237232846883445327636547157328432812686485416135768131535334833224151616856326814726466165238422524552853255545883445628332343182227318684258457658886838634618822358328414146472347132661716688582281142542886781561416476723738558663474361128162212428717742716648754288781466644853548874632462147533428465786872312361441247452872324236426175212218848833678673715374123731822837478373357875262651768112261858467455686274617543386217171673628432552876113763283773371455474486553416117181368623847641278287721721182786834482446317383827468412226886345452515843648581343344155422153688451141174134134268542671566783445425223333416828438315437276237648257351387845588536671454747612383227847612827747215757342168718276167718682445223414887712672566363721775588677687177664718735438422488115644113827371431824256217324872425533572376171162184461857826135377333431237213177124276678152546875327817474653552638414818221427116516352486323573283281762714512863255412143152371355443324344537554154265462375812523844874444255262357862256457575738834134421113348733617841375835778887316426411851272663411188647244645346674478484332572357373714277472626254761284358251148421814358326812478265266283786715456588187677583511636412382678375642241825474784467265114767666812123624368625768342753836768561338262484333528412686676833846548566313413664412541725465438181616146347684732873651867412177158728221578622576727825333541822754475481467326867426858261862846352587214633385846213781853646148888665745642382623867653837312286762145626416675642475764365155787812231777256327235478815122587457372135722241833261152568485282686486147828823286883725732427386616366768657846536525758551486153441136187452273581246183717218424123788514438488468778648426427436423444554283241175645383185518226267673118878657732427733144866458277285153188777671421734786233212526238237165531663315784524484526886815773145178121286314651262562723362633811412237557131116331213248162338341263825785783285273216111831834551558184641851158365675738788345166576116283777425878538225626373532217575863464568573251638436476264132588433588424338468362611424786113555812453775488435663415442722177638741785145855582538654735141571232311515751321231712285466282214312452517315135615885117427545635447357757456684343454363683266476223887411161585547631861284532213283113711736886351414233582473688658136771148771582812736164843415178727732315354222384862422468876625167884536647547141773676542814121715838611421885168386151812328851554121732832484384655443662367378482172374274273658881837151755755661864153167118565557161752417842185211577875812567135117844418678315123517114321221482772338857444646114424823615744533432486337613163472543723353473326562852682685611854215117455784117351518445516688178381112347457252767712163718614218328524325711587145258238751241168676175336485851475464346831634311677316815587246471572744527144628248816266157483411584143427585416167371186782143767833242551267764368464124887761634654711487241377225634674267341312773738523641533752238246666417642532488731583738858543816646161131741788747232773614112332848618484161155547783754731854225756715873175245674136121713282477164633586722388458231722212148443872717578475187812168748541284558311134668838636583146612637743774453888578432147152633582476631765131678588453258137154318842825277253762627111521176416182858467858246475882128227838348481844788421738337286278832553462162512554614283723431381246143355216438458878251561388378681675313643587243265882877573242376567837854478453852721345568454122774466715457728852682245782213157484742374735682521612271167368287368274526285826577772575878755378313635841582821314223761456882587751321446638435857712827276133425256862642542744331482261544775317684834658738358314277313381787334633767322344842136857273833353785167581481851653357733223124411576413458515577578453462374721775185111132256512527452356635471858261734648361222835651431838882517651632538347212677426576136284828653576117537656115458252447546562538716558422682244225161431147866816553262117387361867876687484645467351261561416561828685582663276173188723564221113547756134822578755547484872548418382662133877443153418587318321826271383677482316626663161183772488235158768515836318376372351466156558515133625323341575771584288552462672641842236782365425814566773627772762655341274786354416144123781635881185268625111447253351345468854661287738331875466658388885472845122465487183338862462456612565234352586363686358565367644782162566423258485787315542315752668735434726466115745156384841613583746177682152242547234328881328561865744828638571164583257241714411642113646315322337551145275232883163187324555455377382761171866843843362723167556475232881854547532465517712636172554451246556866221431377452736173287817231827315358457861253727644531853113434856562855662523174416568538763245552454876747743251526568256447183835383677558545513326343654438428828884418464581823623548552583552256587282656448626632586756767551375615532263711574343175458322828581214487368486737746148567668334324424257686441781554428243772274325482267577564221637223486611218447232571416835565486345673653564286443453723146576376742187124431862264225431785421752131442551544422733143732331173245356227342671431444724623387622814523326242382316475424743372263522723214118338544785246244451328462788781684645222612186532661616552432511542653781118368512563884214852665741786516541461674643753854188561328176486448477723615656265688637386516347342731666243521281738655825321614884132425666753445167666268836185465316474258251767331827412211326727562586218845374436773681738272517654141543261374568838678557467341315465641464427377815737275165163318541546185471371521447512727215755761245371327176282522411726183541351488582185772533443234731754446585424221457677832812881142276732841437474718667558625388517857758752666754622234285635253647421316243824353275252784828871422528713751353571786143414183632888431625422745532235545512875631374322564347581678783434578652771778115286823677654666775656812655563642443377211276862134682757464648651684465551843743373464872326887556161375836317616524113812551122777563665463214752833728845643882415673878365322511458423573868668214482185686413227158174361814535642526142683124486185588381723174735431661868177784844578531538812522577341817476747383225164854675711631682236571466357855327475642415431353867674111866157413536763176127275843441186413221173657156364752843844854681172178122787432416611883857124188856556735548756223378245847153827474124374738417783327723585886432484527817518157371767116252882611158525446347746721581813258331116157613884777256375176488482182684335282578262816215422356536413582712845423618171532364173383358536321833768677611544613128144887635478356332762585853834788385624823558858185255427411851555124466437871776462623451226867541854386755441157825837121324267838325662815626415188751553845335337564652828635281776588473176676133215353225715588715754238456761276373665313457148624613628485471218575765172582434511833778186276212377546613522662755618527343123226677818866144386453885726675857672578163644663175474822386858337243246571854753416465382157847462643387154546543886583487858685431436332353626112321636127847586315838835213471373442744648165485855845136441578488664615512647344585275528347246771841467348678748326475415286565651466357236216718253414188756878536832725283743365372671332181851351432647583885134367487586452476286132782741154176585422654868388888747878684711438661843388375874767236263341843526367563212666218683875818861827645113481653444414368468433125851256266338633743736773472684356872318688538713782531464641236481637384756644571744577127142457282627153784823813422774654561478647458488581756255844125262871442853863438214881152233646834675847235247155212826138861264618853673266572261352632238353471866814222576451453325515216245248718127743277281523748351142355822574865384763782666618473565753872177664647636864211647612377345441826142721566544328785173517758756562618433756278735443714276638473514253487226757382347753235741182123433341636426351713222456263372424625484186432228486313521524653635261641471352266887225867344313885561615387424761553741641177134681327457355647764655486161564188132874311542477451816373338738747616133174783335182638853546277147327383772625224486151321637441362111355226615722327355338748763641445864315586678112612645383634768136456173711427684728425477825528762548431438885344885481352514477383812525512616112652343513627214484323444615323154288525484814831223466817286418585416633121578682845312681137186287552538577217368588668478344131582345868771276636368824755827574777874858647372625517643282651187783855528444275612566456628428864331782433846177334655187885483873532741635411244325574371886884254187131667652751128223373837851458268886638861638251574467331162687574743716541455111524426224373736322358123625336484716527856836637421182164686813453212866226875387416623788251482418565764228657215544873585225423476533154885473136482442868272476148112256714164373427281215823536284411771874372331758546137486726226862656155288342785518814686175462533315521444234651352686152255824315436537157181225351623848416884447761666542551755534524454714355132765178342386526168472538154334421888528655226771434287161188511268127664343532332447754868771513272157248262861115787854888558846127588415312473568464421376247558175883523427474127531667153474377447765617523132745777354288386147725183814216442586422582421782673257457545341215824263812672726733534178661486847422423677468248567676214258824426627573186522435313624725763225456862372848758356575666744232664162355155187133647225515584762765162563743645677468625264626511117832825846211857525113272882678267336472713817326837822672758363252811152327721528162331273228245383418287678617361261878217178327337857623653158276332847625527441832764186812525827118441113514317551551821148337714657735776214538682473247747527181843122688122657782113576347714567865715373558337218464265655163461117246552452872435812473686843611481656563667671762576545215263373425773125841627472136326541745773351238474525351261763227862145437256115156458463511587344154357134711123455467488445331312734617654756267472221264454155348318145536724352563356658264655282256325163168373314546264688274311618215577126117263875822781137187875244142622135121323462262877342855856188868261388212127873626568161436113826653268472838717224187742412363185828824616354765334615755588557726667115747224327778331556477856523181364143271635265381647283752831854135154824446846676486478332134547121217548811577387512515617257631621262168286183458618261653226277882665585854218736734488722415382268635781317857531676554465662574514683431775644613134437114758361618543537782328238373248382225256271141428617236262155872714475164644783324243826632288466414667742281228214555825114621327582366262842762786175556635437276471754147782871355872354787273826663634513417514762857243831788555785826364174266433744717886558218682177453561373327618554726783438236143486172223651513651318548438744241528646612628175673643356346337341822277421185363514531332652466227443244754486416766558722867581814275361416147484156188876713468457182238412241336883882237264228685864825136765135424226631228778345387557241624753344514672661252781543327455542732853882264888138758157568124864158148332627327863768285264351632343736667217881847763188472214434477124542382175438747653544874433782855252351513544186342636648885781373175143157256851621385751431224532785162854648417416887637645765115628414535463324573123774466836257615256461687756637123126676412833255753838762144542554883531783625861738766541112333472712477721324866811564232434668518444226825427768826141258376216247267868166824863264755774464775662465138326674687674368765851287111214136471411874317754416523123248518826164652253835145764666186854546318475686656262427775255426872372326456228415644288714853621444336872351212432552487554722736826574426516426562472237315454746462778211847562518333758115545773136157612235476425382387522116161746273116645353888688257134782542761261815117456133115527864727171184755335672481468171474753621436813115361475338216744336268318165862516224714384178268555273658343288782338467842535481668844578785742674582183326535588554617354588624743153141683858772227121478412783267167644681374413375383781678853338261641368476761351241214766111783727521158745437543531826684368622263275728868721634735262367241456442183656535518648833151875877338237254714431813885212865431723443357335348446683878666325167422316281732345674873821327722658881366128251478574745537878722717785186127753721762471748431316146253522113342184213883485533813235276374675774355251581728661188614188167325712836553384367846873143126757118288521541174738284288262716316883454526374734613233618758246586448551275368616875746337312652413367146563243732173725223478325522426142465424333562783282121667576882615356475618777784866581124774854475721151185565832357851447513826268771571187281473747788648512377753876576112611875731762422526263436274472637433576653882721417411175231883745183435432661621221238418418778158482542667436428237738771334231135881736566827817751335137442224721453121477765212812524167276428164433146524712613761766352168566676551328361231414157481586351887251277225237845321666786427264688627585165566788865214456344718371716374641326764482546747777723554387633721114124335615454843317384226185766374317875422522417347721286773162513861278331477377721716442457575542358278814687566357152284623344471155625685228824676815144168474151632767175876145613816463117424146838687886556224211727778627182472422816533814832174462431716151262158772143242111153863144325412317243127132833848215416417147875461732211381371751167627282586118778888587636777775623433382562215283753682161727141471675518381878762146843882485241875535462431116887647646754444242682814256364621475225517813136363454575367431145637874745154441756722428363343866654235412523618187338752756223785865575437665331124116378561846441587237661881813161355212363566533123551246343228842463358513836317654345871867853768181617112683235351734422376551135216114841233455437846664186111676857158142376886441124221886555327723637422672373184273843685887766785547423222581825818238435762447867415637743541712682331727533488235565321532612572362443373222115328751773824237865216114423571722354342618733685816623125441127354655526466735126354656861868762736475187342841272647442215242822336716641534352583184724887286131671124144265185452483888425275753751835827524735875135174352734676771872411474147542218231414743236372287846346162353763821165887373558343644447243276577572276514436332355766587516334657562273333833767415761577211345787123143316583414576612188224414812213514334341417235345337464452378636738754884464165567814126352732411455852885183648416527841683742857213367846727428142543678651725333231885373272786626684636378817872577772161256588354486231172576744278475177636328665154228876527645542855634156681765277245517168384471828432757544268543814477316753414424368233516461427765516847385314742322643355187875212416385583866768843247524362588318185342548883586427768363482137187373414114324663156674883783662451462868861187318847833821243188135878442548175141413482475782461535261184888583518558764128726875463468868785753477151433414787314352225665721157851668826156754878267744883817451237775552847313831661758128532524413157248675835112654363776148456452846511264642517681175471836547488246834184815465264778877212652633835112582245328486372762816761231436583464815815381463633128188613122458725366513551874272757728131835724422762283742268221153833833221232465271564357338435427476365477684818833465267762871425252686135573276483821783682733324171488126112651622467733863764848874556856137266113773631123117665272773282617365344583355662187626551771646544165234538653763311656712432286363743352837874772823363426512835221215365758787858375323643546224744447628518864813112463486228581614132182685145132865385516523251564731688371543716335555114486153516543241282533833587786385117138348634448368663828415612378742673325636554586476884464367243167318537384323627324642737657655456168765863342774324417748612326521267664684842164271864585686125242578555111824332487544121333817752627837686138337758352351311176825474843553173827413514345424723352645687115354115836462664752147873558355552658227865613174887746688582216178882755835714381744211265356652627858428118285748857144346618776272224211671361866637752233261784624781768563635168722844752517678125218656585282663827368286851563254676445831717286538218714827711377578742722387551547424576453451868543631531373136444882315516664325255877826776231686524674422418184672141735217867686151263378377326531261771364611316488327313241563356332157135135471323721132655671364466875488636734715765641215813856641366736228656744475283474678121113786415142633741336662111617478755263366115475128652533251118642224156456865534465637654751372263574321174347654287663125724531884126685225877167732718851814153262442851214162422688254345627634667731456834776813827123354137282145781448824374543445472552377452637342314731784218414265163775645278421551546133564851556511245353381126741413665737758278353585435583266817741124865753458417157266254842383112458641156654535843667637434734541471583727262733655284636276537346152344237821255764334648178813328411533335121613786837715613681542262514613438778268121656626647565782853213141653552386155485857487671561572514531655137564725665481427272813436118662285566131336445223321353858786615237517682833524826542714744122311266886786247586846686248241176651428214877414115775256172745522261241585136216781166642425147754735585267788244347573734315771364481817454445536384634764323146255253684718327854487832124335512733753341763365761334433532172835211245277124557671784156232475566486562378445373458555744653721126768567527625731673333788736748283141862441823682571835518254663144112845814333282754412487462765246831581581816783812211557685326878635454551386686467524881222778758885347146763418852857871735461166362772257468132734588372778585283867273186886766286131368225411417223282551334154663366858416226835825171721726851273578275783453645823582641135631174687767271552141261332845427275522415883645736813513686815631872188277548782147467644145364353232155776655561167818178616118128721115747362167535234255535146186713347244357771483718333543317574878653785543573561263186374747336813347562776248225234833817717165181723612372264573645633424821486478715513781847363732243343172485863583578548166321285588484313511726772635617418138687214534881643821251632533146872452772247377371483223446447142787643837322258854376571825686463846238632753628747466265484742216426156732264245658845582172252511716485618683855721176772167824685811537467451113711254322628775145118825467247484218312438174578256628263144453871566426475844521358775247353357465623422623735456415686437753656287541378657711552622861753728518121757374262276148246788267677258232638745834645325115527356173613746427677152371852121826382522462124582364288342258811238442288466435423412313427177262663552185725127457258577372754632856763422833668255618217853423528882333486458344472488785287555122322631863563671826565175517766587631427371647486253437874422272824623156177827638878743355138381453454263832482185846332444443445387415468525382885685441871885285143248787487586725466224278418118333318118565256481173282747327816314775738811351334314155874375665758382873875627215322571814141536532421685356664366221717213335655787566158436733111771512813247687211576426665546625773631811776266325854337782258717666434518236537731224118732762215548166146668247361636375558748111576387834558372135658372326824873617261623522631813811182474877825633562724553323518675434887746376383144416787754478837176737266755161176436367723372271834446178345851613886437663886151281455371873821728521886853637343188634378642628342347734157583787422855531668263413743247186843785551211733658665841362237533768321112772124681881174287816884783513647421788784553142513388637174128857114881426731677626556852154656526873184334182731245746148222433131181433531668673864645334466446553265224857486771812215242873218572761835474138726187317266553167345315543825564371762577833811782127548816164267214363722728587661234172757761582184846838775622481518644587354421825374858431335183864183827136185683175884577276261545784384814431417867135724247888447564832475176843343682612567113568163266462636166186264476386241723786431311564363551668357668451331141647611117431586182825866686467532872157762526282184351187631571347243886157444654245854387413546822821583146577853225551162822323472231241885452634855853634852861153774834465218584256538682878552531873136327776368683352518221474143142774538863882237855547645158361245367351551731333473247421356137664151222865655114425856858632255662353256733883132574876751636368185222761231238887475236711483413132775858563468874586864674872841737474831854442756253677775867156862865626167824545523181354151723818277555344668781285821333861332826767887334224888272821274314215447347746335384813181778826386817718373863452542827666554384672532456323538751652427244541677537741148468844176885411432468838763574481382458117645657781453347655684781842553123558185732262817274351324246454476475556438681167281388423628266771183343313476786523431483826351431461781614454613516653551773886518675425822857328642813857317567513741483288187522668135866388718171288265631583631341716212272156233751334148323824811221188812675866655651647611161257857554683755527281222172158641236552122866525111173747124547667824283871318715574765346662237636125162612258714866482164844426284482238454135272832614118546833162881715365754647467844568822225112288775432512855421733724646344261118323168852583275534688183516577218422474231527637214713221447255713612131148573411476458414886533584614424443641385132147244757217344353787733757462243636178556376472652414371284178317626642837665847657153778746347226741141467168581866341385531447683483511113533621452442664375244164371482752184235846264512123278227363517676656356164584452671683236553481766162745254386564311324566875828335278612732455852171144682381781418175355212666532542822717586616525717427551814727125263833681122218111443538172471166461486417385286841711767823578386813548148254527585247688854874344516271113254171264134638224358461155735147243338642274783285738414176282113883766141281515685515613438215185378151168676843463134146554264317864841775446681184254526883881774365821265814871155413168167756871442264755828825263248155832285241463815186155232442424114783427161127534216638541477745284516873172534825554267722684223634432415558126273368151826845378322222674246831257738532322728637511747868233315787356445335817724718355375366722547853582188441827833237652383257821766645585687147151785875886357433166326853464266725471568814714671411665667152643841814881142218326888456822155448216252366173165451462164841142633455672855338462575748243847721633256153646281447123813865614546763534588278731683651143574837372584651538427554421125443434827747718863574181447521621631183866456421637817557468137212271247771287257627133831541337522535111678262133543886557351112231411446153333376543857653351248258363566868284517881335367377384881354821548866456551773521421426512861124676388614483612458412627575574618348271625556788415277145588661612588257473123863572882422147215834516442454716735521637843351823871385436427156518377743174636682622254513177648334218173556885164355613171451444852456773467544866517575536632783145774626542615443786858688468748177426777527158187681338346771485887263834415315272211214488218784617817858456661752567173613253621261152817372337172858386612548566363231554684267354883221475382638543315642757644111832135565685358376721813767834836781413553278617381456643286585865163187413174421233763273512215468648271585533326518584844761364818724448818381622561825187784872764714761611737555624734361458582578156284777614733325417444464337284814458878863361472333431753372748871448146338176328328365218154648753653186864483184822212127288164111315163518417866677851435348418145318558166558337788433134564274415337215566456846586568833816254676264421236786246758752123734262558887616156666143825786636158374873611415647153112586721236131525545546722323524348182711224332786421758586825148628716524527783112277643414115664522861332777188867642658268433854248248126832838361536428153325486172883253152677787216168162572376435438631817454332648522641568278422355123764157728371524647225164855457411776655581327653274456448152488547721846865712725221562533473487745448213783832124266881337334117358848274237348323122641271647271164858473277621177753567513426421526524812378847738746516445286225577867663657117153411725432723362134517831441822733822122784237886157817828571734723884161253558332623471315187531785813178131864133146777383216855453422825627781185778265586743154486557626516363456244681845251316823452272518721231566362756574743788576783335155172717654468423668323552883154632778344746358635327561468462714888533864368838421847551287347444453416743733444488352361765325427758413753186243237831677775436818725166475616876465514383413781362878674851524767428817727186734128557641658245173841732212874143817377824735313317346466535635176421112155656684124767281663332548616522274523525187724546531652383842736347681866424778338864284155217743378333674237652525632784374268264616832154825776356133431827584862635436538223415725137288555622554714457135443584184564285647588538171744148314574837124657116861565621135632171241528874642117752422181234418124735388764845437331436558158836121258783853165718558221176841547348825722188378832758727223744364336815722328818242284865856343375133211312817838147115356852875255463564424376747655872276165571284126455843337761457243745172651663427571823381313227268736812678871444186433263252867712168334288818418653845356424862267616185845876558711136745732825456762336585846587687138523471126688588227472237513426367325174358375216644527375686381777386488324714235676172317516372277526224514524158436654474618826645826444583114847278584635574827426761238436872315865417853855666414136145614511764314667158285816816271727768846144576348368526723531372235176386715546238742488423546428887386167288717478588231452681656576854368326765671614415375847663327452374826283833338557728582524158354426742134334376737376516622314656137346445831273128448111848474274574377562651157813511362228514652251624548552218456253365282354541217353375185817323626746178483278625644222472211243583857764652623174415318486271245532868314555851367457416185718427522143514756773337134441826558471581547173637656231364363175524243163742774256838163268237756277475426615771171147431141525834647881626315111274577357361851884481523818277252676112517554628755516555578885133411656283554288746283621565748685452271113438163678647364828477181714872721687635486274342776356444582671728288714473517483237732872626758475352761782337556411654536872726122364144774638346813422711152631436537822152875243282363448263872535187881257448458583487481378518728315387782717654614228217737615246433228488235362374361154572215555766673362788637665746785813267613346364514164546781576177481861762587818125166745864672177744581655526184612183658674588363633465627334464634818566183826855853222124457522877512211263734428612713827466532177265883862321341437485848253867755444437565651311211782727221565226256678315443264341488767734142437113143347564155654647181552654262432766281352737868664421556671481633152657842787632274886231771721722177842627251345385877153124785161755583315185534732345526183388432586587166636761181552736663665532241526156631611723515372528267353125422782752414652878747724328381448387431671725871555314435125166685445563512718855152415616878648788423434525267774681261535281145654156225613147127282852467143614671487127833714271165278178121485211813463343437585223787656565675743278128863787866345777435613774153632635514411212451384721715377252474512158746872177131717115837736386258138784163545533343585477164471184141526462824834271338785311326481448785154116222322717418516715826715167447766668756564271852421282455711653121665132416583414531346534565547511721631371582622752211527262688771713547664446372487556141716641481442317727446286627833613844183236834476377864316285133437433723575123352225215822135445787266481653157836457116325466845428734811225765472783282614485547481572518743452247256386733884783552367323528443325855285581531872125826345785227463658277832536738177467857445253228186881748587166511453216682661271745486143828266873288835783561252761262521247745131638275532353411273133124414877646631774115423111112318755214675318484482681811612542476167232368777234168138216322536714377222288677685657674463372863861687514173847221557665583756144783544147113481516173538574275324544628426432283457427335321557873415124427334678127727128672565876257551181458137516377345118654368785511522274542261152367214647284444462681245137134267158128515846154328481513163256652533271445152488888125133428181224248374546385382854523855735523114512653353787681652114357415775246117314354628682862187788466656354254671658687755751511124476162284528385222176258861642656454348782736825283425477218374626111176726177687625753364367488211865624333288631212218543182668462833365252131252441814261147871264567771683775628615783766364157472826176164232668848786271372288172656323433368364858266312281288852653653181826167582373418277771123388354323671548747775673267861355881138467482145431867855757454613423426225421638633337478232582511543254766481131351785728545765826743375685417231226755328566725515584751861771568244753461652268478562657415522444575872554447353825172437641581648214155216513884553463846815666544628338888245681617887375552273614344238824454224578417861754673116286145451468537545817643717178685811445588228564261885876475824422136353374247321171547273362471684121325435736835848433461677744346147247636425671224461547488721184518872681357371634444744785462828414644666462211542186145373571422852178482612433582383531455564365544171827226176863223837474576216372374156752157837231645183471217415427753835735557528178136114544253537522114325746725335615156547582341131258613175314575751471831262244756486614812456832641738426686748488165226267722646486347667143877751153438372443643443778574578332433766484315678572768787812411354617824412565284377227618421552578141187245735858742218122664638514328231473647533741622555625575876857813236688531563437586222418264522714568323346341716184242228277167481273473214752262552763452255571688817875136351175238234426564343881658862384357572512513331754714876443662167833648718248884845131761117872435615656347233337536561372275828258782125845864634152288164563478158861222678627234828825138476858712531488861743744712115821613254476532135176152218116617445657763123382418272183811247677224617666165325811268426242816618745528225614814821538843134472855276185646116164787677158216817525783453133335514378755633838746436662545544185271262435385361873641565628235724411651278673771712758132515284544266282738266254418318131345665273768852535222527355237768435111157818262444376117577164174252356157141855883384727622281225418622275362866886865784113781132861187322278844347784382242142747727356572145268657144337413584146477733846521185586526157173456611274574786765172444256522866316432445835327584737221573635366666711411587456436318866836233488146874814428767568453722232572283547118451817754466327542765651625425457427381316135751686263384532274586875523326862612434334374552871578746245513468562612738782851674265858415343368216841835787755348731441142874551255817273868253713717572666687773464858325747727288627571756615158114136371668545216632414174546456536351126542138453268276612824373517666437387831226744572463461637285544834637716481517422658512822242642214555361332761613523421245118326647865664727584726168251356885531177252613153531337828555341751837341121423445535834748168132774328337135341551143587152634513641338143433178253278585738286151284164167376252261735365751263273356453257471417477675731744232124358674288236642218377133442324651684714687132247143555586788264884341416871682563537174554142537532378136716653826481813127832685788783444266264471571852452521665345355633146455461535361578255756182535538232778782188727611873542661333823152617814575325818251117187378652432883846465635357427836632264474663566871414615444836361286684137451754565835246616143257487511125257624773164685318272112467266453271367364711812736686743326862751853446826676766585336368122817668814653122714433636361833238686556683182732842725527212422276723172157282173861482823632746587563464374158443453341321262887454382786812513828751558666525357754843211452741383457382844276563834844686437467313213157243718762336483133845473663668173338823215512525476174422475354384885373414623737445857683388484781175432884846677233618844444838637247416481765658671242682655335128851268153584223817664818138511363386853777386686161451161682425744515583133753535237844171822463484114423458462884685783752617156534565877424574628358315472187426761168716334413318831248444755531543281734132368868873474561271242231321421627511455464836552343455287815164584686744816267468712486786114458578363364176583461571358666127866861884863622526344431113362268532672167115837568563338666451118347425832574111864857881545646672171673437887672247536587232556365413352222676761271546338242775373377485334567385316136521485181428735427541368516866387344523352725454728825543316536447751183874276525274448431281584176155151234886515145675365472578251553575172312863537261368486122735173347477345354737832772258132516847453876173563856211836815763234868854662678172613783153381613167533186834483638865271576344627141446111248423116584318134462266867547651362267736864847842264532385857845637522875435831127236366527323576485281484873144467252723622635132257256652533165552318346471683525312134883766423341775573528571776158145432738251214368682226784561261674564246237651581412782227832166123436726542667328485376666833241441732475313232646875528813233347381244465758574377481877816217616621764415864152562561851346117648433731483468623738532622423786785678675132663853512733135822252775351734187858225168438626748587238323478245234731374843383253545243277163355688484544774255178384668273467514223577122184612337365378276614136142523633251151786372215566138441553882777874528847134487112642664853741585656557132567847218845347627447561883612528428781484634453864422472457576228115725274386684233141245711582118671764311148238431424685714821455242648323335765827354535684745421381723225468857484726883176678364453332878842647681488354172675782732678638764343348371658586766825773616451484735434466425717168544675177134376826863672252165685221438818337628473641866741876218312782482268767213356537685812713688538622388228145415734482642527236668888776476587177226152378158435322768264834612171472325272724326468175574525733467316784163461677376814465515548445124226433567116654781146517412814133733751557824368861627267428538562844661558555552384227136645213113571513425671816184784427838841885522824577365564121422385848635286858367782435537546642845518285571427864216366722456541757676335844781712214883137358412875567238568656577666845477187272735327865717136781284418817333573714687847747486223323374624842323658443837347155174172453554775612523525828481886184228264317778612831122662627124415388421264742584313268817711347447176164224174214426126867158564167642264532847186415262536584582162348668534831676253126643752564718445857458173718766541476611751352756488817254632453287537611636573888775261611455343115662615451348284467218342575455832283415236722858778364588735334221227631878262145143212275375413524354148635736412422316714141368464575418187788147767424588673338653864548488851744253672311231213261224234736762754272473186774787721848177665556865763248586566324115173846162465528881441264765865431785457312463423164181437132342321436363276424687174736586487571281583512251321287576813612156146716124848167677213888231133417274556827521456776736638618848334446247856162626881633263234656212772547342263768813788262544825161834525613676643822587328771857856415835711144413258681334431775222672853833164858785534164123535468532525873874554716271678888115167876445643715373661634284184367253516137875223441171518628253544784264133541545353321272754674253346728748814181122215157435852873235711766365374115311234775674163344331554253233731544532256258584576318721111173287256133315331754275753833536826617117848442227613275437457246876477248173862437623733668283746472815771676576428787162871822661826164218556315745357525374547211873484828321881486254472833358427724225756413543737373443468471723331413223164157576786134647331221367648656162875254734884487428456377214426572786846316442254715281821158386463834521862257544234782884783246488452517724544826483282631821356862122511624676173317462268862567341286338413112143758643681756651476168628186282274158475266483531844865544234142254662374134346847484815187562474456354754248548355425522348274521342486762423125226775628533152656782248252228642188261131483668125846757661585765677482216541112382843716435612241156774514524441584842584752645427655276214445465555761723177325152466186232647768413584558376453386862572625282713157214118515735182346577667847851677754615856435351165442346718543328556747451573351715686463836335841222136755176737313616861618711723882666752234631187755426183142811245436551628775352768165166266342781455233767384241624337814345575587771724521132714784554685341766341122544354581161183253484446172281125446513576656873827838616573281412258223848214213863843382227767144865328836324321565562673236832334532222824312455572625138323153265473665665767436217411317321537665118343731433613451181873145478186671838168141445451228471634381168132618613624831657666348748843725682633684256738655885541231468645867734821353278674147656764684852642288224243677242824387737838664578462576852765637764514863841884812268532614833621767764237734334527261816481737475258277662261322185685432265113388723686463482362846155363471665344313855852185778552287133168364682644231218684611425385313318474348632643327648382882438328254684227482321245271161773315887433745354282216482485263572761221565781875213512752375318446564687774572158121383181227268785832611134311322347323445858715117365158485576477828724116154654557753317836332733775773287521545322342711234374652211425737882481535412532161183373822565454664623731671853833251257415827474413756832826371562384131383146587841533434128746662175722176442782725154236211444628211478728618851163585764617171166671328346732518834527548423128456575571231182844162826767746687213631418428371476668823486632548772533542268224447411316676787445665685468456881717437783448283426856283147787535847727758648187643163343727342745384766731316147444344516436371525113373273787518631181431735786153487616746263735825625387846553567418171466656817461516482727674275658666433278636474184732666684221786516435454768237627472126518688141658712387227741385417237884467534182826745378314551844688146666775567327446436453544674688322868523822762463277242211336867132654143888213472263181274766371552533783413727814324343326125766826866324286157546531568241324673471762257538851674637222321675888646568878874843173781737756123186618314253324632572324166478475723453747276616535656861578226485631522218838573654116265166413145784814884523485815531216443656833334771748678835285275426452752281338178854547254342581283177784873477473444321325561356635221218257156116517636754571323481522513865673833463218634352212328178176612812847368788284322213127682168335531153638517628736716345253155567371518261147687347862574558725641361254855724324622846883761182734528124563554132786582448225385756454567733886172682845556743387531173522512828265355471752271641327346517651376468824668774515614137775622315642341617355323884816742118711345275316133362632637163341327823531266561514634516321214883684517521347284334675173161258588851478473867187553131144166125577576132187886348523623628377843661874178847263234166435461754287285361254172152557781184158364151376353736532754214811375818414447741624444328618786534225133173726885138437187647387711873876338638238242647113838676345338128678317273116524514548843162164612538423684156574185888813166246181832862343686156526263471254761551713546516378837325558245322374824345152378858642884777111384383474848745741774861327125725721758221714375138422123582164632617386343777872781162132345365513842366622216383368273163361771141867316126754146632847842528384452852551842126676846441218215551345262263461715451252877787413514782674586667261855141886737745884153112745368324835674327688277351232425647541688257671156162463586317468373823538464178643588817535172576547417114427153417185528174843556814715253168176572244627218164765213438713661385266547135132274685535522448247455175587267175215365873184127451638255638533228356842822423835184628883753632656157228457342527871666627651733545336332233174748523742617376347841543563732823864855175874325118134177431388655746332525646314874883413118134275877745426717386653681561474518166547248731356888225243871186863634418152774278162585541556843763328734663786684528664688173167358818476652287558422451165162764754318542722563172327481884771753341814176711724843352122568344645635711442188544746158212736781361846152836882136712387562757872643354227714164624443361252511775617228615178411552855661737865143522178656367423328743432275485657553485182831828413416232747418852267676536588115446766841651543438263723532443653338872826672674381377547753728128177768513342462256626518571487166451467412224131613158124131586247845673864177124137135584554847638863231337616218872287628114544487711718371887555375216724244373132672628675587733414672766255264313262718338217428454631356578178383541264652568224554686141117814867142123841827173227728721272574158766256228176185866745764688164657861652336635278861424544457573446478312872388243354718822766721128156754841562864154523461117771475237333855253525674121687565371884374371752774328477456778416253351775432328422358662858866372377453565617348435112264731165854466624381621621732624266764136563734758832651748577164757732448622765764586667636414575867772621587642711544467277232784268111236111787842358773266142528431153628465356552186473673885518311248285637851231565723178338266872766411812184247621587537424718852613318577882731546318127285642868766624571343485675353167688486364113562562561248364347177123356427341266334414812136411263265577312137757754321521721844821575866778321616247856828678148756354817531617188784253626631563818868728551356212327288838655853518587514348856287674567514265126142553673348825773716664641753236152836356845171162784835177317614516817582716811651841447348126143734554444782867638661565144657686223263653516868843651831366642154476713121427477644483531754166171727781748276127157476458533341383262725631142444852214266456256178821584267128565482875382117322324341736347315421618237148737856186148741246477427118718473747144745381114623462862718744637517671378376717751624762426776216162618644885467211374435264481787867518667312612436775368377454822678325743678528884586234136528453885145114155852362871158612514581264474776142335131145673813168146474568268163665446121372374757583515288116338564846134758344758771488466185821174643788671155134641376543212821851338817868248313412762253124118718385283776714721587661162138611248635813341323477855822775423437111367383484348231387576687137517642267476572152177812372755515146251667475281365165361245656866553226125244342525227232654152773612364785375236315237461566341627552616742424252345242885238387721571261318485675261158572277161675418546455621316313832151824682338251765186137724717173775722642636618378687446536412356837677741122111175771548846672332218171767168643382113186335467348824881784437733633818633745671262237713256688868858778161634411331121443163638624313275324425547251381264536468486481878421835556276818333161678128273685758114621422821334852531218464151851488437238337622444554112513565374887717316235341716763181447845444873428648344871367534648211421578571452445443536181541122633786645451552213236713523532465444275631386214423663675844251682711363163378787662638281366135276861374223752637787486573253447134733221182334772236772716751534674885662814143765123311852162248315763131285477571577373256341872125184614212166775518425126264176352732228876361472434613381385671753172648875184343463682337756848823177172381322627654577161754316672478367116245661138545577125343456384751271617727368733382726162417744567688547165824324456763178464486366887784153585812585453416746248815755857314465281636646187323371726112781313432562716412813742888551446234476381571787188148787751564274332157676566332842532864131518647511475137332283142248512333886647476856755645845235286325375148554756517773873455672471117278745237847722626833216421172816772471764513442214184633411682476274366484617725874124364413217733828654235673262541667117187747138685174348352276213511126551364881467562184317638156755411214214227864743871418114651857167178261834477473473451883577342256274767276671535531688847448665143485821547317752577248554427123332531541467328267578444782551474313157165763471885845822246285332587815552715565758357543238457677175681447664846548453445857772386725536313413256168164368626845524767468615637412418435384657868443288731181816626556753224812526512572382148621133327386654525245171218871727422628258785244328536614358311228881873522145244683163486876168565653814685865345647656353128575117165211387822153828341521244322275385484243858326727546551688866413542156128556388753528254142442713665847583383244483177558611541814467224151134573746683338384172485826388382616682132324851155764353142647877514714516612764851185466231574445573833261447713428625347113526664834352453718251733323733271447517148855783778857781248253314665446482667826413852866577815477882347565336674868733281847275142862677372655723413622373281362454631138381548878247142352184811433445832686541531845241826413445446141815531353443834635133346587318815538235566538562262466736334232744764371841586674582341174163247334723774831675732536611616832662241285558383733876256374677554445463187524766755246575823675828233437856313585761424623651248758768555245261357811137484277261257278361577664261774671118576667145672746661674767836516555782656832765413272524477134481665512881267377683455553136462245785642458783333644751153416286743167221166411461746528526815676854462547287882842284722413637383646882416366421516675522545875825664812618841162436885211414685268326556142727657323714744814286235751265324776328618151142268442186221427766485152137218122865742253782647456868233558222374528431727587314162154876814683224664416763681217861467627275467534142427485472878822784373788548623732432848243685842338327248667126851625335612255888576316874646418161384751146213652152745376586511331673444234418225168554124431461217243555153671246713361424431421835287461334458216111247641457442637164616728788115121452256112235187168751388386865527633131323773681332862587251462212522548487434127315162753861776518328345775386227682773241275515134667356772164831628131614254455887421657832124255755735827451528457431833242557248683871686357384114716126373163117156183434361341622183637144121876286581524624652762231611112251575385854423487374467538385572245735832138348273585125645288123663736831554538487118344764432455747416168273138816831374326563643254766485614385155173275718674688246553188225621885214755381761442686165677225322643175325452186233511668287788658634265417664157418475862611373345637865412717325724177228856242472238668626425116225817561345288373228778471857446517161285364287478224668444348618475252745762678352785635736683311523387752828852787862311871871138866752853525455227818164252832828281353311816224625333317281443868155382152662283323653268374367833138234282867818242255248376636648633218883781474215481425757437182122577457455572732838114527483282128855362875765827836174774711812513231888232634376872331411162738227364787166285844746754562455866464851336643314478735352466661116568612173164418478575482154765282128733286244243616845112485664566256245721314271862433377724347651374826826132777182826718813665711763234834173572671127517542288245268528587753672488227672887573185627364625184731722588455314271412848367776856845755316886821632823541384671141626733473772514415328328484457227566875258171426658656212227786544742334337441125647338556486722282132164865576716641512322613882163368333571762513234163214184866254753117782623145348338615762484541522367518473664616373721665275344141887415473714147236263687372685442257486444527336844873472257458344281415756356152416424246883527883144381623327235766387556764364348444115314727852357128666284685338686836467361116717744561615887434236474867177638171287235672235217823125771323826846428856736354715176335356245845574145425711287756178322516286415775487175754311875513363148488537244648285322378516741714651611284365255477573233477565641367357771415614468448787212662718211888185356468313378711847225642717667311547474778761461843123368116587543887445478225226125423328668483688243741653841358851758734373628638574626622443418255735264212132881132688514742526186371487651826531756776867671456684738255344616648886578117643387432857247515841738253764245231144248551472865658262217237642743736678637585126541722244118858233562411851438183732855433838828265876168672657641833545835486371577275654886651453464654264582248137311451183144151533828438251263618445155456737571873573117185133876258382844418554513728685888254561116261326343751647367823515652667152688288435185838482442824746322457863865275655581432338661483337181387766142367166216263863283683687545826748516336811316283423658373465146166356657645164463447346371582267514266617214222553453682747535442535815676114828735281342712326271636314572844626743843733835348328611167833382672536825327423141162645247147315438722318751632685551245855773185636737411268118662745842586762335778338323331857117683518755188637256765185251561486424888515238522887567178213812221611636226768868723237217465377158677468746411843332148856555156575422463718714746657621342744483612427485143476757326111371387534466273477783237135336832752571824312556185325127317812274888157288352652743351252648536536583372874645731753747522532782247545483467126288441762671868181711151464875352266353127275751812813621214481626827726615781841647128686745714256645323487553237835565246483868234462621536725275742133673131853116235875236752386515543513578576858457876422658875248281525543747751327856873741852577331742285671618164758681786651481242352428555163224271336583617773115254776481322486588255273631682374468167165225562486665845114813445348726147351516244447558128133364226587323171655161822584466481577237631634711873142882817323162855327857335134487544444746248185234128537237236157488643837844466445487877682113828744247632135478625513843741237173286138833142611337532563573151446218718273843565185252266447483214141857723277446848753487816283557558117422236581266463261578485726436345537857874337224337275436277718138875643732554653577672418746355314777727844118324783818544876526552134834385884873831785844282826726716316455751724518153178746528366683345582543588252531221843461235136672416432447367388443386166378824761513427745541554771157773344436447476367423247373387733166211824467164874884623627512575353855853768833323752634541485127478675152622154811148164774153761644316268442487513476534831766517818623526765683516258618383614514443664817266287773411146326777777125215188715553574278727552141842168678326748286572263838283754857772374668545714187851866812114858287524277435732636471742142233128772358787142271828811175888361254146576477216368855138585272863167435671582384756161185274362635278353478318742448224633765615323225163188644878461813786456175167561546421865723478754416772177542656417282743671356764522631241376174484644663415742781831645443741261381637164228388188123537518583372854727248248645524546483128316218687272153634755316526825526336263176852782876517835535146366653127671868154461254473846644126128753528281544636164865611713465157378888154226771376523611827128726513467786242261582858521388846384647583816174138875543343736463436352547256326274448738113325568354127811233721352834712143616283361251778162863664754834852576424511285268826373334426763137641256775388751455787236574573427184747144821665811481157413422832315625277255416545557155366251357428644565666121543128616132157766431853421723854255676178851634344188417481443767844213784537827134665512625887453473628262564137584752873238141885826814237516166422376281761868128718832353155764657374151123635576235167148575652455727588838486726123723742173788376286788615843542581835231528153633127674878331588573766575471421682258657347354178335671787531561783634225521835538654643583328185834443865637376753234251442157342353641723612184874388114275671772726785733632136433134158533272453783862235115627822124844862174154857267647321728877473846744256342136761388146834478643177261781764411246141612258731187515582367778558854184768758437878145378126633635681767721323721432155134467686853141577221562311123673228557851222371717825743521788267684285327512282678724176263146526845443784173717786814336512828524737174477438728426515335137176135834848752741758111633316762171364765321512646257227525762641673751882717833354744555142876821356152738688521664121682585756883285167814463548157774111585854341747314652622673268538665351484435865311247864377321877461468527164362185553887678463871887445328426322777643277131477137578267728442385131447726835748253241527168314576577466768328845725536141846384651256541247187378883384377177228212566276156841511535864738228288456641415651426131633765784614328881611266825627381537763344636332383178447866782524812313476665862766771377824146234134367615352245721827466741151563665433158843222223521214876834781111423366278467421246514854144624752158764471323334852157527581663847532531363253325436758617775741558778815737666368852532466657374863721164846534286358283854653745634731781441531225732784338214676656485516358342582461853571827371138351873874711823628644712631311835138174232224553536516746463463642621731158425637155438173131452333466167178528825555234544558778685388287728327834454518532566245442432713441114428836586454135578773533544641688353672374687222258128133267333265141378427718882513413438223216427423354742711566877827816383642473675755813158623222528817268326352446116813445737858446134862257412263568521288654265867351576376264122668455326444881423441145722884661515213754823852713576265325678441632673265432328666171272726362812178283613514436212831163786683762476424671724412384466454683646752214378851167317325127486457714184288184762682221432341673261541766642237863775735138754671742527258132734278433832467746536785371244884422435375233184446783326182582538738137557436547823824631441311853454278683846645136256361817863115484468324685864651857654557525254257751336481735531813224845422514881171321863582388211662314134538387426224243338351123213226375324236745825855756555736857553181264425817251745511181343287254262328776263827464148274468872385184173466628165546221536122322831484447211123333545667466517362117222638686686142575133748356134725675525871655563143174115327415634286382456521584713764413718472582286838257317457742742183116356145685321222556137272887865551351411138211866665244141733487274381811872145373883887647886762852658726172526466735387256538685557485714632377832257843383833454714352421524176381654158448344434535367438744534316372883737346318616448131451446775565815318816866362842156662445667755456153628143247128375281656248741445724375468271215425456762356462618644272268846278684232364671411172415672373862516121824372183281131666584752618162163562671665765512757318241147751267113175328748722528513264855673574458671632314135873861865541555161515648766748214461454124636384355528163656664161716264547867363522284265587865146331754257655864781766476878544747783827774147173168427173134265854825451551338545574142811127571132377881121174617673878147513526441721528527155528773447288522753814653525186545573524411452213254228577186422835387738462558864886552421768562262812545362225325166265858815727875681386178517721117661557748384731861337888637744312324184734876861153458428783381433718377365638335371878765784417357243635868418183682535222352183476621816854723258123511633587713244842333675687261186235172732716211331368585422132711174236114735535657277725635463562854365714134556174734116621834686214482554871678733248567562647427433588177126188828566888268562424671678151656327842547124167811344472887638327822145854152548541847714266778666541785267823733587435723117131454531713612555521124665163745772811672113265323435482655188644414463333526647156363445645666226538552873524136453466837165673113567723865144648173443751385365338721167367613317313687684281433311477711372667215465812827132857166546571427238532782871783585463127443574164524783152746265467671274417415766353537468175382256762373734376518527435831238455718886768266684553455855878771127827615387557673828211657216818717234751623141342728652573743473716857176872175837883127317613684855754457326421866367667215542146378681533874561354287628273446675512634522578312772353247243726147366437653378437551634445683166464214548764574138168114341546383461434176535835412172463437724731764873682743158266171383772224312665535776173165434231227431837654124263737745345458441871533368466853886766177221234322862317822526866321187515537828723614415253521748727368527471137388415532543327368253614548228655355725678177514271152273262786337878153121747826138753735825245113625626467331533274467158372882824483736538288214621273727864256365215758444435483572561434726443653325266668726744587531822233515436628343382862122842111833241788451282281356565455336328411178182217387324647841573272772586586764313112242586642638767624363621117324215464138362845477772758451258368722385272163217156732773468363844271367245233837367425767314656771764584717266884785143548615378136575163746443883253416144578242886263144758625541857253686512667374458782464624321213262778625528122561776748371862784648571632384452586341835133727878716745664776513216381511757316273436161256476616186254715646152312668781437768575251642272477674757416426184528145266854261588674572883388351262644115588547173581351371813635461867276142545755851874665835273235614378231623817663111661885277745274787435326281552385174552113631265578227413228855423578686838613331748358647243772741476146617511352274618583547728536716464322846232382328263112854244887176277561616587421722564184254838243811146316727556614778382354865336336636314751487445462666751474674457655217827657314447723427585837368558341676414525454715222771326232753881346417811876218356475767654824544372743517338262866553175547512616757218837425528841848451371146732618313225344837828562558361154882772753386476747612823451523512685472477725416846617151112353138344578362518261431835815217277722361266124581541631781477815686784776278618468583278327614231828187672623265775613582368752843548827751733417574814746382573517286678357668124524555874118458835314216163644783857443523135688335325183834423365775234513173622254721713212215683823333612568754743833811632262458458676844481572734772855742654386364125264837272366432685452587284353571131528343853772437374163118453236875775777165368763731141654676162626284867562114287218834112675546233338753534143528478886624247837756712631642881518584266351743525263185261836183523885332112451677853561234513751721353254456222577832825145827118112426538342486756158553652522538647166157864558352724775117852773658332777244136324653858652438662352438854133622157144815157682584717618718242356626227381266836416774452336237416277624781588716271685535718358844425852572568286323463654675241687874242164854342658832486671651224538412816841266268875543674313753363454754572258743817836156318585512884142833567824727471666636277146427626661462811317472754547348687128773785655386782874134828585813847787433652147335444786712818384248882767662465616185436636323317354441824266437114414144465786382613315487136524155428563223442378628758668486787116154842346275224788363273438386888183884673754834556742771371846813818436377361323166742576641817388282481333165443784152325475312787147636144354534188736144642531182762343677211266121431765627437572316531427235787531574255684412348568611488668178727238455813783351372386851538521181646283462716585784276346287855128617522768338478584827644246617378247185878536156448878114675218788655223263844258224125248366815867158443434728432811185127768132834577472761723671688217655237477836675538522575314332613825434374628762788524155245875374783821343836163624286371878113152441244144421658865513582268471622316717355181874235552467873144242633424133787217433536135336422571583853837455285228873172333457267533533147367858714113846357775218538734356242733814215517375573535275562853233471512157483121841554272876386214354428865336131156561768454165511818516285787514826888545123268831886372732377461646687258273176673462644443856131416223236545328325456868764546376515525341447466518166553866365132271765525122748643117362684256172168327728664615813418265651158232754513566616264561187524625328582823836584871134243562844375831287152476845545131887158176365142726665138651253818374382575776145418522447258226155542361558823451422335127641415536764771368372328148321171672844677133768657486482388384433333782362527241688335154151461414451243414728757776158135748871373817344733477766538212786771468431252314543485724635871657462322184225675525786236434456814712812438857275352145375732437567668467454748274145574753863728383811753816725828444528883235742232273464222378831478147457512725888346335454423232235537487366435456788412521834146316645248772137623333275368674161642856785117545768786423856854187378568248588746633462456228535124857567587562744257881662382881855727536151742324618746645732836167887354144345414454128362522235772577682182333665246673532724168286555435667632225554423565862847213745818748556213534571257118738721122852427285527873657268112858161723161456618266448355363138182741747558371287547444637817526662652214142732543154537188747264415323614476317324643223613236537721251565886435461772728638488337123768335638275851732615221741553481138682278462423353572526667127686353471175336532575447271648117684617726826258174634412265143828171533872516222544855778173142845115853221588424775863538433685862467455265624752435475335355717122753431517674576632354475666447578878511475534863164113576826355844865618738825222623646838632882388428463354842664138488138227444382838864828283365712425346757287477342441138356544785326662576173776631684626832111318845788587753275352371844742767333722438371388884778774227382285274184582622276355231552257347522522871712135452874115227627571748516585467111818861358132555536177713128786876471213175732441725263562552218554342545785516388515763174265787823634374744564422167333421188846726244384652751854456718774338627318438861656418752537165568237838468823184315876111774431154813428127384724867678366476457546757466255514682538162465121532227621416833113255638566264817226585686186356377812437712882421766316513318543181223654554482435266734722665872863118454861714486748727154318566877728876564578354843627748786274833572744283234378547382762476536784637155144563174773161875238774817771174436325781266754144182288847646186437664641183417567474347128484143471824121462777626652461318761727711877172268682156368816851632568224122817767871367364536585422184163354747615348132551221727687712237328151275255821117781631216336258221745332534512486528231561252731525228167137374185878635427311353644542855778848443475624424546471881283347332766172641142213741411285538358516824144658845877587327731463473164145522262756576424287844843726131558476358176635222863137128678744452674582852133286518816775635731688127811723118458346682261624773484252731881742733263376427416712883775765826766273427738666826725113655846331517456288733425254364648811318351712588172431126454574232863867645565164224835541515628875278621336544633122645312572468654532535276245557378878734877544163826211785146742715478443314677678386146357113744458114131168834531344665436421736486755562535578513168573832671321566221443681516571435487653654422611624688311157767327744175287854886352383165713612275251761262352154753255646674782164241734165232626543773242576784265857365857771541534855674353641816718862748464224665343335675563743731872587116141341574722167458618466525186382383321482558182847874213762267856268314261636781575612145852727241631744526256182257433675764347377158416783217421234282465765364268676466356285378367222715112425184787533858577171813758458287716743215251175584645536432157714248436852631878411553273175832456156652884587188122148424117323528382147267864546651588881682641276441864662126472417364113867152616454836617344251654134427883721565535282783774546828337123165228642337414452813552484863271467343232643174762187244382676628533413666542638747638155783152164175818663745486825477537848216372462418458655826555127778756284338578181656327141248186673457572486815146678143165844317314167317565261547448525176273111477374742428478381343516735733831638713145881588581512881443633466453457624641568578475528558516217224673147661688316455167124315227275556831786686448645447847251878214564244471274155656422846811577684124252241343777271372642766535514686871612856472268341176636354423172857711427545236844323825857333127585617567742133565523125558737384754377722835342464476137577116458843325585176833147446864762113867886515674473457718515542658623428138377323338216623357231787116871527216545223785271668345222871547456661278238324851572113867622534782876586287573242318315164886366232486115824844175672388775278452617117615751364413617345461426347145465147731372522826263314134417155336111135354125643673643181863285753533157436611867883818115331873236517132688482382283751888177162678552372337423647824623687482321232166888612572441812377783882574472147168733663731624414458526662775343785668153175382637546818254787735317871857177326642443425711374572445437235134614547451117613256886231853226553624538335765642836621612684141327641338775146841527557437888527857647336516287728642581878582884767657817633225778884858818715757574374727738366853458321757333287282643123858312354345836631626442366677641342473564167411433753871627278273827864441747582436732484362786255827453216823665125262558534251612524484746721133525672535116174885444486768567828454523734417567218324861433822537855848455212688282675317656528872575477665844823688325757476171347553321471543872511643576285325741768787742728165616625481588264747786342123675855584284853736876635858237416688257634686148634456658363278845437357436111641145427415488478888785545845125681347258358884753783826527775452155836823417784741743151815417523712164315752843826838578288522482667765852242414763431316137273858435181712128165415213715534785444114782663676824484665384344784382647414732231531814281684771278128766811138743514831568144128626363851638624864124171654723353178344417165468531115166228541745448556154617537337513324745881442166763781353145816235376865676853636875577852228447845238764251271746114788612552416635578164273826586163611752161333557465548847267561537674557576512455576246154486246115151775236138386511374483716414876164557762766237833362248556854327744537364146535733613255721343283346248254564236184121568511588731215236274656163562387858865827618228414561246511388271644316764455312758451761716422256576831376574726462547385136848564837165481743478511135588878813366261428484387858832587143644146324423157487371743157463783763585617521456752542417321211256566717565262453574721343338444717278585278832348382423625631717635342468457543443372534686745274418555257628133857762247588117555471656134683588473367623514356461516725874341754271548866162325445627372413457862186641327258763133421667813316575846148764411711653678536564232483286131266817178127132475714613838312885686451163733661717378362268167543858152824277838656671466371711783368526611414868514357656683473715334884682185625746613358686544764238368474625716567468415638713232238646714384657265115645336645738753131448512337534768312863222187152165623725565642673445656833635517771128345721175828265527458825753555471667745114827148875443188222651333774474543856522263272183235836322628741746217372615475764154652781561555832366513156314378622581524648833666123184721257781856877327761744123422581666512284752348786547828726666748151366628521288741512154727112164787536247253714861745727335548535457171463653716781443862286156558126763115176332145818235586223132467445841344445616625265556836134577748763874444273668822671374717582445433776864287688557553884728521164118482872651366137427458122185115643781832158332261876575455865536712575677371484262881435637777435673856675715227176181258647452836878654784373777256748713525474763685275378554438621681628236611671284422344444426445216786436285771328223364776471668147681466555384273228664868615511445253778325413681334622582728754345324226453633452784828787341744166457781734176853821566411445848284144827872577566534341485571476556648237482825668614718834643317162575182273716443574474847847612466136751617853362475771661212454727154232634851768344377418211672557637786883865511118525143166882455315881754422277638841256826158371546583612421344837851342654678434251281442273566162765547812822817134138846361144822275843242113712865736451535877612886276476334537661123143512142338556362612622488587557727122345717211361318457163738377771162247664762587413766728443322884178513178814612654445186478564672633517484565447752257785423476326667274217452213178765163827355673557678431341628262465633254633655474123144276713645277581161832548547553147677557236156651421544268132883652223116662144143166571253423685413613441251655637473467468435542828824541372445348656411111354425417838566427642377884511583145653256678487758176446483553553188161637344128174784214435377683588638121537116283564823222877814533514534445721766735256322727262583125436627615455561317158873188182315864311546113681515258458137355428856667378345313577531414836277241816732466663822471472572216681656187211766735161777836654423457267874642421586635585761318545132576141358824677886178111661771637341132638767533832812844638618281711834817466721577433786763343433436486881638386736176328654886816225824677273855634865837485775417865181517811233231488318774122577246264522535825855552218527432243438881141342717851272711344435744483564588445317173353384316546886843468121621488622626626167636337375343312121558681168473225848443847845614461386114617838481145115751181443243721772662527572788434144754238271257181713631528423584665147656348714885238856555525642223156481867454844588355873444336342846633565638185527265176578718664347352824584252838244762448415415212461735817161652617758456614285112152343256372158514527777317774181384215582416454575364781347724723818558615117453188465281138422712627374845487663375812625336414645241385432265413161812432278224734754117775333318488313427411471836483772172318848548577488133283482776644745786341815414824384643877248683773264364712813418733726512262436443778836184134577765286411323837362864633114152715435733762224822114245215327514123386241358721887272618731547628114428252118768676543435556887717821533683378747457467678367255656765635133613125862331367248322857287381232544716811534328846117577414236357435285855354724431378286218815344531725847438748544423731681822144123326156111521133815874643747845376658825177772143647767752223647173674848334537452888662583864648567163612224136836564338325755423288166878842635372322344485184114676362265285331233353368868446421224347527246261282238733336875656157818384172181371753273832164778636355754838634728733773588844866688872145667128867846312315663183886157325636383154474572727727673455247426643657156572663142486738124735211563375614467748687447341781121766162382745538265818711548551334686835161381816414452516232251331871286383873338444652365257851648765254428352383757552147843524257364366367117441316576832383475312615833748254371588383488343774622815356372316433158358788244225423625313241743755641231242534773144535555311572123245866281364548663284435281163357521311184258183173225682484331187787757371875843255485285634334223667265721412785844234366716775227635874635864465545562822316427357444776171283317762833754413837448787283217235873772257567836377336745132542211188312235577123755141328541652767455348766666612273721765811753285721366611367276567621761823742481226456181517232588366135371288366623137145567684377186335351847315275178343277526185735836177428116512536821632147321728177838448716836375328223844683582355885543335658251173833112458281776141331463448523426434368885834644334472735347358617145131281662764368442643478858761834654776838156852723131626618458734818362344838777182731456113856144877262552316763845651352616127422887621522384588155256387588417586436387126563464858647517244864624323225567722276222168451857186487768836714133414577283277854353116188436715146261878315761753263448448138313828177614246733216156652531457316374645756241257738285147154852278623865681312155644246157213337861354833551633886172354272272167764226268217514272417432545628285674186527475768661518761412127585655424858115872838863573772516733464536433832772645883846114777182254487756112745312286883147727838145437137862212337687887771238244376256854764864483773636651334763277731323478428614866617347774617582271577221156251582323757837753677635455232714558452644136872848618832211351326352173585258244772471562356387884783122317327456212327244878447484665585184581226458771837768627254471671231728525118182545427813447225815543562772657518221617822331876142118376227578511367128858624488656584813631277821678375843378825534681821148416544448538624515135285776557418723866785454812574754318164872454716156687275414776814772835277558834584173628267557813715323245647264372253236858428381888864144836822136126678581235321777788347148251527886725437126214581275858631353257786845317625741765331884671512442633333712176721423218667484518478673663836628351647222122543186825287172424146661588466372276875554338577547722642255874113716328423136787348511425123481336137578858214137685644712741871543117653543116563213583464437242557374244525773788127152164875182538611263621681557421336422182721772815866112754665615114328512651521114621586824251662263121355867677716862654665643838317188686431822217434517278437137437184617465683436576881814666221636267511268288714114752238556388113444527246124574661551473222778183113836214638766527526737673652663823313432317651472232811242275476463316546418424336534227485811353674845643384627137455862433238584684238224353263528712125417824878468172214171417888787134585874586552373457457357816316752416466773176822767661161461643854557245251743686251253751534825342133348481428631653118168252752135426862664247328321886828612871183655833846644643443632688477584731473364815146472454281236852484133836487582316118237347813228323322821371567877782285176868866788871124742535175211415862457214162661222342528648766324255133418363185286448321853684626178316244148334865464468718771445465755766481874281514572125768476662245874648157727832114382381554477143417378736586757387126771227688636435125764521315726262251628688313514157268216755242856885555452328675283121655236132772414548746775185363115688882241841811555318528715225644534445111662734165183564275728843874482468322675754222516145631888444257275421865174884615367137847164477176273457756834427822375257215664187434778547186775571285562718315725783427823666835811267455146577164116764681474844157563164733318316153432376671683518523856383834281513432785832742714251455414833554586443883177834146662213362637773227276455357658182328246475731243157314881333842748631145638644626553113716657732414517241222288425722258434277338486271852647678766143883471874728144281164448122785752658747381811381184144816183437511255642332441146217518874224641435186221131712222178566155188242417288782848151835858525732725655465221122884187548162655733868223685484681255571587353783751778727167484421147654485475757516447851481717472857366821253121325211226867722663411767851867861277266523811267575222524361233252644386583526131523461717522813637757176115667728133724632488762514327634262641623182132161523464766315632513241526386484212558183328568476711537867573814258735657321365816638523372242634366848476261762434183472215877465635531346424234313642428126521783325156754747347677431388622381583714476567363682241741623718568428524877764714884668716657672338247345128266535688541823441561265888267275417134587356511355472547261175283686223558325327553316633787176423184158577278841262842382186747627284248557452235435254134665443832313268571484816438537682216218486373346876433746415262453778378826717512722215413636833727713711282518772567217277832828311546333573137884472265658711437452272411318265518785467817658484363568211784345884482882734678723631647426827414824611543176155337168522818628777247768746513142827861636388373654222185756137888743425742435617221488672455744488346587731117886586564361722851784221854161426776481533375471525647631786514278884534823466175428788734272516566125127324638231225688764832657121537461488823181366814317543142164566276277247371837464778788863828647832753242744347733662355557488888734128868181773711133584111558518617264261227288758774275847857525342625726333878756343443818357548672833253542184487618188682546474366588511628654585511236352658183428468411873413528343144711476637532578364671543544447535561714357572265513654577188447662752874317485645672115565125852744533158868231684554272371845221578452127537616128246175161348354811162731587868851357861612317684752612467235277724367437254111145813221138214185423723615615481677118668656755464353374832261385682668311876171572471541756443123355772866272318524367323554736753317582826113634157848865438211112536627435687261165653262773563626385787464352424676514748685134338728335331233682427718475647247135637351171811752217743326782562744536312413147834728617484311174217717855228628151632137438534642583184376315277121381148662613853838453744838632436187834284256546152483486136736543435522146457134831345548832583813154234836438883876217112837784181573653486852816527135378664271318241571745633455264753336442147633641774854358475722721423333282465111263558413653531643575812114322444651317643566617855253121552363717835661524854611882714726653141534166785271612662558112346612752764253746517354266273816647473266353533874476513227525348654177713633187236486425333427183557345368677458117755845387184121754487855467375727423147554825817116718155851142843754518162367168716327663374568541167675467874552253688624141582368283331187251433782461734584426386436146657412642544636753882682884614166727847163513877274341411572675433734612622171588571631645471823882338517765584153123774132188875728745228637243225281563438336875421647622116487614662664514868512572111321631281634417537624542476586628457167787247886436571488127646377285664468835347883132633167653477615127622745312581451457774187534216667728146765866818687664226614366728428165358151185437546826321153582567714665442854415253852856866131566514745811156268555626114766421241535623787215167616313641188114733115451862475815532864673351641117323418344744854242268282832813744144666646212673411421314565545826154435125844381113641787848511826825437522627678653342213154723115624176814643524855735737278171622135376452478844174657472456227386885317443416522877482247756652112647143471712866666587468612813636512556583458786252858535626651317153678184674188252714453127625537566465511521535423854233614324161774185153776824816485466884867155122387663864452761414661256632841261536781336473274551633485378153123412432748264288828324558255427767577753435752423125466472181464882776626262121322837646516351651734253478676475547462733135781541826862716242765573452334871635386871732156234652154884452422511115248354644728875161565374545342754358733712465848656385416837771226268256884554231838167431215337824588855377612452135767555278146263758447274138233778245751432147128158447826541777468555357447751452463225868644252624241554415142375616264785867148221343383817785853645722177788777562712267557241474624732617355112258136477218814176468211535713638682146736425823526417267727776656557811657711267775318141438262574874126587571167555521663355424778871546854126543184132127666615511651332431185162472343718271317134133865172574488583871558385188163456664488845714258224724133118812674784374832117886444444444815168518644286387754167513814414576247268254581836433351541857176486374781355345685571542316261421214371875276643712763668356185675212368576318388143418111611868555388346644561274472182267855472116612145458567626725887471134782253456668636257436685241223363587581867717423836583714715737187554641521338622837827358542128471852661414335288856751321272631722888636136313888334333441624363537217576216563113516747576673843433877585322328631822648817367317515132563752785473526526821442367761634875725353522833382345238573655621887524442642161762174848374525222863824744847685784887772833255327318783374221681756214467778321728617613775851683323668224223885725652611713833752137626647843585622883648183375555126357257567718665648318243757366663474887645318568181674856753475323428344572437444413565246255754715716752864474532554777461115472628114267276346553836458251357287184512136766473646152164266683482828723486215256552465748217424315244551772186643556737725356774868435578375116133323154555881487816224157338632831713837237263663842157841521463124316776213545541713214822855836433612338343564325532633885485687167367318326357777646616845424237624422114648284867448188541161538151751782421774624224247825565441223863124787238557132831187212871247441526318862445387363278177712623342142635748865762681665252124827182822513281647423251645714813372574481766411748261781142132368584513546886667255311425277422142187423712575487588686225634787614525714627854773448627876336214525763744646124124683487282417831276167532711828477684573321161784251871752758754381317331127653245843178762423813113843612174167657136621762238188171121825382667537281343225635411417211786663226113116375525665366284833586725226473772131656384618683652411822235573483557857328885261166155847463772284678476866478255557223836874153122858622136553715376345134418712864545618431477825351754314273148451812823851718335172577663864511611557753584584718537354321661446188842252321487447243575328858655328432534371731645861287683635256716131135727878243722587537721487761473152418871263187542123138765528872783682674653224326285773342316475422258684513182321885788876681218425854214424243338877574714881813117428526847847785353611718758738547286457352112544574621613646361641183787687727875347164415783737534723373731528728323433113882725813212271318751778283283188342837328133731615481168384381734173574474466187614312781386366444383716851638586887774718116611246187788763487257535663578751872382246221138822644717736622476322132714814516632727652833242568472623721831561348265468458216111833712781527622545242657364145734722812151473614228251887852235564764636745725214676762237146314656136372458646264527742513838315668163325285573834425233435423156564585272681654712825244453728172211425554671166255478584866742628757823157625417552212585848712654426427751451725133258421182734342544436432424627614613613582526771771433644273548521852711168316482441414888311362833211273724133343481588476461264552238427832855212356855618783217132173735627345146743321815286181284244426316722586484274714568258371637838676582742355442555542268738632265585778572783145358475154887621368424177336332757662764338712585544557352171736261127141186243457778625781848362134748554748252541567627377871274538241535251811834763212186775345721574258755548182477347133226718463745411152536445245648831377322313723525738471684365765713385473434682832478526618373438764173326453646782443273662122817413415146112666712685163865125563813174775548381255662125586751641127583853752467642711138474455467884846322534187745718756782415811885577636713674765441186116287373812352832881343786563263752386347263336233237513838213158284577385688828212528818871286772231148365866757678336322316855165148773368621488122441577334447622258456434274153887152542852423545251554877353648121775141778718334471447374315376432532376257686212755351372875377442665142722218384828854652341171826528751677566528522843767756844363225848786125663837312156327445633886733144522571317524825351581778531714833681787525816248788843583544644624458771442752647282557861114533575553667443674414335232288343366728276587553168113582422343638321884624175343358217458581721623428542858244445166812537371422761324478114228633421343272733665614213221387832241774258843815576666685684547332126288283181615348614274314717618327734248711115166581587167737431811384342152225532382157747346137134257438252711631715386781511423715245231877147188334514364363343534153751652432331782824122343366372353475338437527416777628626321243252782314225553211178616435121432212317738185373257628133541344562683472146675151783315656356714531544448273648685635887233861383127452366431861543688528525522523337234764562622187821732153322225117255627446346114254826127245443767415821642837113515366686182375683872556645255273621156453372821815161312524143172756412646587278753443685775274865665518725641326537417685263366781147681351441664524348433455615725285786832865383476121462113271761858648643242285864512772766854528251624515425867488343231472713475426573222375235628688343581418846365353447636268747673788718461214648651423116581435474352818876326872871887524367762867264633461128827163685137572668242575537631217672642244683766447666738358355723177358478362576454613236232628683428434862731232387322882634313622322677556376166815682834851388221354721244852217474546531438322146585276332558454727247272763674188527342164166427847736524777876514335143126738221161337476231477862542523263275752751688812658524367581527783174231861821683314648567375165161551556525371622753675114671874146158322756874658887517843632243515536677363445414251614147857765338654552482832314144517181547266732256885285183416527484147452215871676862562717231661242577764863187384526667251333813167522814874611637412727521572885443511857185158665744663321268311536633237414467622155473466117166481421361765283117514821581167624455487232351657274543682767216543757347468212836481336563454675636461867585457154283751256332485212365735471286365657643143382418316886434121356878354637623562562857557668462751782232614157275166783665363455131311542643227385142817215416528626541372684228684784312423271728464217436445475754852153877121134255884348877431422387682264776353457872546341168287624732876622553127872673348768687771868686428727615548864826455231836583744785534677342713227742714221112546711245568726137518748827638754581271747478158828751458328761271814155483188857544248777651645316767177384858668254632284236766224823428721387314447654767421238382231262361767222553631442232152871867755538322136481112825231875178554714782865663443541131728433855443523726171884845127186816312425777628334384474176556326614756134815535634178554718211562156656626336486561576867477544346668436131448116224767226676776554184764717425716854666842336142157284542484841335753234353564745555621736881838562585681644137641313182672451167336455527531412513418344248346645472688553261376386237522443776332167173416111681121832152231728633542548755885816656732642484466772543424124571813686532767275523374583611134785232584337153565618655832515154644753286687835255727477545721872356545312765376535363733314188224545743128244766483372363767456812185386317465112115343281132783112237835567178785421441421388668488853568147833232362874811863488474612615154177215464752725754762742168245343261317458512184441322385228321634432864875652165717886515246885418382646313278656555873457744354873754454468415137325637213514553584846178186558472641436474848785156662361822821682434248533228424151276355517273483527432421168564388684312731238587312151126844161818188368852617187211773566641641328814768135742323416631854825123614142542282421457181186585653124484258874286838718574883165466476862566142644381218688513156464262124328451575666313734135653765837166577644721517581851215277742255523146435243562554344723654548687862372583458372612283128543218863761588732755536722134644655327555514287441153432611745817436352423848354321451587332523133728666152153155687424226465374356274686753727454883324632736358157423757146553643132261143748654163448823547828882615778151683218441838358752616544622614464752365165862844672416475625253218435648815781234132678317884771774147817174764364442248835824152123871487564861472255825413475357343457215267873268651867212726257483361584182378324311737168784531536346743171873113782358237357326122416712818776252477862663212873183464232225412616518346356412381684624516143873581581225534363133561527833227247786875287534584446568358377162458743853723863824632237162737743627681863826774247122734674527857326478362558148547687755215161462166114765348881628585773348383211861844274773752767345561261456414218274657548426211434312354655142631656221138448268688474756167382357145758651366215124265568487631115676213386526787272417347277875453771161737213671731563141548151815122651467433573348211362763534132866621462488678216313156411471567885718844418137757738261817831411676562172674436218783771331141617462538714846544228166266262232174734762766586665678165773566471558114386522848474471128876381353851348816282716324423177617413665486856673564265314628551387234361866315337625843174835625115518282883132553654122172621331441366556735672853155868141633464412724166635787283356367417444752631116478868645771474834664721674685338882736172781278243685653738828524764262112178611141576525227636223635836615573356162334812465183126226844117814311441516654321682821264342243561375835616615734683628718823846832135382168612767718376348313116376422685536424281738534565542865517436175686613782451576641584221564868417748688542668331188572535637565128185658725425435143813445311712477844582714423637625838335313222623168821868313662832554141433381654356143131366168225586618547674128421421427124613332863533462548577321367746327212167327364477116735532325113534631238863172872235675426637846111173146341288373842151728374181168141445452188441356115134138212715728362171171273773476456166244736423531318426312616123621412844583723543144772127428777734878137175336241475553185661528827486385575265821435442525637575834631875112583513757128547356551688647257174134476274717514866636657448856456515231566137521281526861836538878267285864323412531726826238134147524171423431273355626346321471333612618642666188551882673332452472253227182352324173847331242176382371656883774288273873556454241165716416744861775133857661175748131771455548223786187525528764673451563773312577853774813871324566373327558774538576863352351476275514366824344783278572474522341556654343433872216735178432335846612713145444331614877787826222787165341551573624628557321637773356742583522871832477371851418781245312623578572488824126756315421127741257172831438816558778436288678665144834667635481378877664233265448737313635875868454387717772825565462615381546188287835774873231643573272236512222122368323633364523811781442361447335264287581658811178781837637562654161581555523372366431781346512625734786127356148553542566784122385642111413727733173386542654771424372332328683666153327541137146265865266733118464713666766341524226313186364821112337621312168447777254551842617742668466574285161855871142722313541244862886512264762763525753773787755522333455832775234378653813475646876782444328713231763233262642186775678127118883678182415246416151328887757654572286384574335516318387173515863748245514783351672671154162535511284625685136282838632717162588567638367466154316876136831155673452178773285686851563833617266162375834851421612438682157574272176578164262718148528474288427573846721886247722671675714643261122718715371657583531711342234836724662388162522744882626415888367714814577636522611837374731464215613652282753521274667252258378716747824118127742718681876412158748312678371664822587675183715478411544263245387553477576836161117632244267417734237586251566644174888473378768743688172647268546133671567222285532436611224148358573641262347581314142724278721378618682526333131542784713651488856885723256536387436777728755452127581812235852662148432474126727334382222763628724463377648437837356275323671537672618541141733635328852726441324284214828818233735676565271818384414853553572425184446834622221667723175833274441474244323245867341625327282345481462864284441373124522142273522255428434848636545157867155463286737377748613166638525386533523253682165842227587415615357675612831616216488824451172523152577662312138444815447556365667783666466361272372876487135388648872628423182335174424883528454157386737217381517126115434141246845635245842618261877481811824375547138233413876864474171148266787281171481475173372385461354838428423532331745734661216882852883412754156717476443531738684748781543827387682443456445814158115658827426753186313124222627387751523335511826324375616745361736775767885646145463114354542524818452852533736344341442885157355761633775635461462423613874716848122156631874881742168866114418376383526621678461334381617148646372634866114627757246824675551854225677888231512326615251412466555188885467227426784868616724245325311727536847526871841538513234432418833224175344415254674564617727476488784485515677146513672433767526263323833451362573546655748567884333522537535771645871232247644263181344786145166662455568181173372476563363448773127242712725754167422314228816267687538376868342773871413388873448852781277178354353181335871331226475264672564168168182356358467663388426271656554521355141644222426455143728574883587768581123762217673161587674111583253325317528854331888434812662853375426365732254821568168283887373831334477264356321376316262811251351787524521847846233558328412287244862183674538827234262772182416753157435855443366354532416656843815625817222425247262122646147118241647521462543448212345756524247877681433257257178871252774387772522351546153867425242385625151322444565871834646356185624811838641717352452425217723253543685266354671885734325766272116433658342626662855354731225436668832536417145241466756568772415118333861745168873525772666566274766761724432825347725657122631224582674184856446285432833216775315161546537343627331434711285776181624164765637551668651746475672623721366716362385361121738383465724456717431331744543535255468621663121851654344758122384747378153461126178278554533452413311823225337643251123533475322652443742335768182768173131561715846126226414318255234534387337582754576333431316528648735557327584628827857157676351234656274611643614286862738522341376612262343268388875735645538534811124825833767433613347787422562541637277562824374675131732585421471868782181285353723866732468174652531415425141888245535333817163783843552653423317836256427824811265581453715186558862678477565352717521586666383881658663288621662481221884683872624257463142227124145632251428377713251455543155258338425556185732223856571756468118651216572662853345861655353738714422676844615681856127614587538677552213543723824275126273636365136847278252428514276764733531738471817821638378784441734756536445512183733661326657711883326566776883835318341173464551542214573377572818414562824846112883447645261426466421373444144881734565782714512821644658238328311436523713731673654738613332838133674151121775152281737767161864717371172161642422215158856621681585684866836238856432124345322161685683845335821533742863464247867533787831272242285173386471266836263535644535752431326854672431727177312565147346148612775875636242873685865616162513676832515375163142545762548685643143381477185156826481655582625128125164538235434261812421682762768345415178538123123234851746584584784483153832881778845836652612751316373342232215161368614832627445243136345153331433814457388241622834328885825838335367116687468538827873165627251485263882345384883341656275712516638878721828414635717285733573853541583284745875422287441488651623732152332426137724668615341422685866786645317681226184535646513666143764384141758138287732258226836774211374121834441831715737277865852676257841853152643235114486553437223814711175241568731746268423834282663346727572522213821533725812148168452366127315364426685856157634675863572173528826373837341674257414438543412153687151752431812628753616623735762534318227215846822758232472634876374886677348132876886714576162466853381685665753258781857322258712132712374451442332123822737317272353147583384586385356536337745647123447467776573728247741322485367512355713232411474867656715238855777337341482185578844515225671355147872182781125816466548126247633527486543344445252526134418243251816221555866273314614751735657428231283558264554685666711462224686523767354676245372653666554824372628451527818486358685851458784125531348238778222142343155181462634758743476885268811372782818667221754188785878576674733671554475452537177675541267621687323656868628586852275288832656178122427486315616734111563335141623761625126554833414552585266837222848541863865363635771866256637838751514711237157513668184654226767888375154561331557233515886361268664368736535657161377577862854821324854516743318316752345431588587174212855776476763883283343767646664838117456283188175416354285438822788632821326875432767273435474263216317186785384571165314523138126626225464581628772878446426128656337845181768316562176724476357672535612475473738114386432136512622852116215455156552862142483562627584225431643855222475633575427267358582633535746544766232634256843588433655735456544824287268864821753787867273736874468776434583578824417225214768816851684123876538878468576133631326443854727262236764638812372428664825167884167752775375224423385487181751767318457583274386582732537373355753688125444438157342162588482166443125355488365265842117857234445716348875473686251167768242382843234782346565857155717683538788723353483721815717345275247686675611828887887274625284677247876454216883653147215625153874463777264454786161772341555421837713288632222887632746558717757537453136325261544784241221616436848352651747812856462551522731222116838823318214857164132872658768223672612628711377356542377321832816166815746562417728156775447435138485171416546838782236671221331331434564785287747857685414446536571114481118481856622833364634448428524685512683825225122482533444315662782627171357761675445648666818255323237824487433566111174372357481768552611411657137713331433867825877145752827337717212721117868234184578632232827785573651127641141565215475274124648665777552323148665874418877112178554165217123648233644217828723447745433244217187428438837875228611828213621178587411411287471447145165387163532333271268614415328722127884754656162154632668251218127766852837381566618463487568167825562561351173643381238646621213766588525383554853863644166287462671648267281675653676171388782861634227644328744712121258135883825115568867853184315877576246135645258755527826327575341125435855242133355147465284434336435537243822324737372562871461723143854245147486872135838846825828222583766365151734826867336738746613885623874637135483223715356624884222476555358517578866418772336358257713215155424167478363283734746514525276485562328825232285666486727133463821728711184821446243484384637686768326475574527888748345478745582121738176484871565456154545162871123536235381444658352476154252221273763182243528222468645166855564521726612638547344374461723475746538251133854485524831123166622434156638685134373373855358886731782465434614782731236328877556246288618638115388112311387641435742677312328527484285324755865141874615514552157276674651817428523554712236188716575626617156667138261381668521844416746357875474412217265776572187372614562121257344731318664433362237555426238133415213731271576356722364684556867254537223241576864767334386143538878451645318165257552187662625568122246374341456378587324272485813277725816153452376678713813211588176344141843772548136487418137643166577373657778447157885468848846611285552815841725212327718711241326772548738762157271767624634336861785774752866455238861831433281878456788653315425162161274153746658118662663371774677765232113747724462534433261645527782668854483511654763181734352232187151256526548533812882186275172754561277448168351215374513217458773552812877718571175235423825463728876165522561645267476368825864453236477632356844447175834221663555388728625811125828472571414366462414433731433522536464512835247488818272835284347651112861485242783677562687283624685578325818684622565642461388767125144515144425363817121721664472646154634675378365747885523836282513636711437132313162324686373218563753753332553535657784137317352536578428634173528117117817441551378826751828342327738286636483586175632634358452212681461618535331764113135147737816618661388823876846356521411251586561661658626812313865612787457762517641313851777241621756367745566141236133676282258312617458116666751421487216388827145881516244525637344251558227533273738254373743346658472463732211184165113877222554288816886117274542252526848761841837386114522843135856547114288868667464486387561155727527114566233546155471747853231858331453673617313526311253172237262767242513811737567374587772385447823241132675518136143821756861753633616542182584368367111686368248528233138255653375876812648261127112822816142376565235186163672548617467263176631223538216271135656463871754537226531251745847221727773457871718532244887458876835314526124752674585182447432684332453155242378435612742545721721125337542345855525611832161752751353224825211753388148226313274287365666876138854538517234128347135517863665537181622112574214167284177342564441278178813124427816172774141275268677678177186556835213576382565544378844321862654735158475332554152515634331552132217225626577853774446476432382523341563731683671674128667567728658764734883731788812574311773454187461726718885455311631425321421264816586143284724554612334165658241468743168122566814234281763744787362344355178468558875632813453246171563741354811884154355666552266878231335635475581173226873755151678773325853178777768436618875153137358422488463251783241237614663558417656263575332255765642728162673445732786371565758884263776812753316272421233378367384337828212112671838648166864618738382868275154153577572777715557484342856553634158467225113328764268151673643718623544712734622717312445416747378548671854483273768521132713512232211863123316274733745626844727837682183871667146437856321683253682787256733634147711112148152121816683173313766244754737613462253887885283438721212372112127331288175361571132228443514425225814518116722831152655116145336737375252514384461235713224647187573114835434537552712121251861338686285388758575422374311184116133348845527445546735335142558822853716464215368653853136342841112383888176524556547456252143143347317323172186327763547747628121542448446523342187858484353835876171122443434611215141243445611825874788643718778182162123343434618278628586574241346225455768736721343862535618612134276753713174275473312863541413437128161375481117348213233364367645642376585516117625847231657237652556315535843665865658482714546763284744117842537781638825178736223253563166371756788757352812373568583815383345882536138338527474484671226222772545247247158514643178766585443283684217674331315671337584114434363781227357378524626263573186283267251642571118441257263577256271865641885815525512127173757563338718585653815542614228112835857515535716164237465857464536127565277355162281184358185527886453847474851775555172887221618442416354321464638887684576223724632457455283532522156212783745817241555272244454258866223156654465132648438835157822388515832344756877531581183484681557752875162735388148218455572526388556761521258768651383417668165882335187611656322827338163636232135514161116485586126684657356556174172277426156435211263867371178456263624186438845638125824838844337566665315865538131388458313433875653841546256131765721652761165336582343165467215677458213368518368111466528481165472117385256643658653112621677322222157338814235767175246375777856732651342322818474864663717314853678728652827752228685645463454783662643582364555232655812754333361241551384728338565622813813281812636652611313325477344332651428572824781731122336762884136765483275551331318212885171253516145161575315113833228384466437238735751152268552531465563225135865227374266773643758313385814167255154161756781162668188255627443157133714454256183818482654468731314572686178778735444611154516646662747526581144688255732858283856711632477453522184653517436728461244448854273188154425834613321482413488563733745853145563762412652861424767728814374518875633757652463721682588574184582222217171276265784558474554828282118574553765345462178244632222128167273466677325484127147868772755664577345174384452736634627464686155756331461712175425443381356138275874127684563712345342164647665728382157564442643266461845328512411212155461335532846687885743653373276783574113816343142683857256271421475856226547442677163555263722568125613127768616514555143181243745125374261742567571282151745236634833328181223662756638614836266551852552248213457627688158465187653865688571873455822786431611445413868586355566258315125273826436481341663235552558632316588217856652725615356272854645485873747221162518212781672253458557738327424374252422188872227641538162763817124335414167341624644347434732633623361466852832165211528118237261256861656525388818862847427345432737753571728611364527168761111753345253332368815457732477175162152577517345346748372225834217424632478828518784382411764275633656562468478455454361456845115441787811827552166284348684811425212883855416274881174741217841256316667775218315474555635436248761214152263268716853173385116181627273316383241683812847558228786512517837357827374278881862456777847637221523427732316154216645485735654623524164764561656337537122346674813166553671346165787566486632788215727775426671238655382664854441173556715463163137337112366617465638468513878788673284321652485637531587546132151475867541446828448557318822234742438858583252785612248112771362174866525517487138758421215312425573732153887662253785476124735453313428428845737124663161421863864375824567248551584882618463668666838473856728878335162618163816618244441772766466543723726627847868313852245547212481732218884451447444334448351215258365832346478888828453158267643246736861374863835777251766512585835533237672645228615653818735128537527376541638666282262742311263175771232362234554661512742725784148652758648284667425558742826171856743316286368612237217866574661111147767111147861647235753385866862445222835623646566718137385658481873762411372687368348744818828624867777812172578268654124166535887475236432558266218221374514164517231561786771281178723274651622434586543322137715676115131282842187722151821681838616228788683888662843814144737687465355834274757818268333423783336838427715852347335868871266285777686473737868463826522217827453883316571134161133471511458814261581827882188862216834668526641768457326233171867361644366617674686125735214752554327615175848164676826514576412711672875141644272561771815553444477233737462775613777578231572878417752565424881848484324147286644575412143218268718287512482152271632543821446326846614743525434217357211724553817264325546176186888476465576737254676716575382641378572238773515644132748174217333887162126177627731565471511111386264143641178837675818558366415682753127712685534674636353818267851358638865427456526253448156557651621316725321663355558162734268832822211612466462884512742867857711621657812528314734865667538311868135582743344723871447881786774753813243277321514628415284758781271262578822868142853438524118187712131537782383487387828826832473572234674763227527426877267115438321774262241163561237622137641363341624735817725715367162815132852684175365244384886711512161863242628713823338628456223381177387526167366488342844565851868355714581186633664437872164231735324633437161144456345128517272768718648526631663367575183826654342275243865643141455655823648771818188446176147783825214548226364743484252536312314522845856251315544836748436654673776438721841463535818528275628816246225878176815485127113264221515884477156457864262633525614735825331216442887822242461131574773375185615715384175323183251237436633763451646724353323537657266731627638761123425446667233521381138518445257255611166885746543556417322544851581564758141585721566868728272847854111122267628433238677666556322723432514446158348326743115786675627746852556281187433648878543115656843185424181831864853577885221824871428584256354626565134543244388132587123748766531183227538567577316125185543312317388243666222123424888144161367117777715534335634783487712585365741622734363446875325762122527763832174112453711348475644713358528626283115375166821255386338341778267564662165347458858387328866783326784657372637683328621624414485272243172252671678541322728358546357653547613461435154315832755157523744374532331843344434665841611674771348163724127257282746576522681621684562844456872123762133858687636183854181684515843722627647421685682287236543244273354275636463142257546362352661812181558886351243616431335267238887128128322316366676618822785655256235757154682158685383478154267551233588134231651776284668273844156863765357174668348725344514665163451845454886822411181151587284235381543542183241811123242822141631745118224215256267278341152224368767355732457145551154756878213776522662827477581565642441856215754682748374741856582333185676837416252746331823633763233417112817611475274863385248533561877165815641264327546732684617386164331785477818351644568616543321348488546187183764232662332351854861731546116184463541341543238635325448118715752763814537757672828438331877163328366336722677475187128676481482178722288134768477841725435271347781615515178686577331741854188538218431115861325247882887463123143883663851182514183358765775276242418764461387614611656885468674882547872622588865617186514248548383257181245718168765173566172827811628614842854537143458167831427476426427363623433738622515213622351667585567872255786614782263115142817452828112241522511687184568455367258138324363138267664781343836653332854452332347772351351641376278172573325226814186732853157343821165163675342452281883855455656431836262715541427186478632257886671316553174726535831518685255721527833347688122672738767173262373176117846755623565428277211348643431224558287112344338648773325367355777753363514536482446438863315583338233578112448658483156476812832824778741652226133145641141231482561512576685115168534634426463686356114741126684224347671123883527385446254873162485234813382251651265486584552717387487674866532318428274341227827663137474123844886462716525467714774688661161231564624142555133122457875852164787266232156356665561365731647724316131715437614227742385461858358557638842678782643873285252644318248634512557333587417173824355338883128744664683218125176212715712614677721251276748326634824252837353712787565256747122578655444246586765283414156754672344475416235468657685212757375215354712271734611565255817445533225215838163248766448611441613675383462434455332643623334461448635572625736356282128452564615267635565647471165267271136257672522737318644641336855524311765686865365348671674145514144782366551287778423542852272643232827671465344742216162358234414665144186372433653335222241387324828184631533715614836721725557111676728468718855447236877518861814546278631333767386141487375142565244227841284633187243868173216721118461258628627112458364354543313356833885454361276763365338566657352521753256371557545175647364216834611183371445886215666563671141516376515325525343771417473256224822273415834258516227663558867338553554653178881413245282285535546813867372842848763153367432856646881434675461324331524464338588258888426561658173712227312266753447351613475451687821447234861712316344378534561423154843136774815315613553628767741734714572131261612634866528384344431757152664714667164435122223555232113868421844351461572783128348228416114668182238856643725325236244455522437627574854333454144658264325566185723377416628224556133562784164553741287558532853566582667864386641466332342147462721657452551275837557442553168327351755816685777381112834237121432517755484147564374537156738568735567624227644148513167756474824431313672143526254251883381783743533562676618184415565415244235485647873214728751463624247357514148883324353347852324625247115468165156588484381283334755332448113518835861465145865126558411816334724122155638836435152687485277331643845174647146652487333427342825266435816361133843763772612713486286476621771274227286336214528818527785742738317734436754263731672236422564262845154438423785761553312264246412823126665845278842842655171437385687454624743484588755131673422177483755315645211656255324233187843837135361441526717486521486241511113681641462142557328335841611777747467515766633551243314472128568823763826648582576523127336754745187151774442665826888728262555632586372485522162461113126273422362665811433431543654625418317435382558612515556722854181782545632876713163278447633617776137266365123371365328647577466736254876255451273662515451767242753752263377483321572774861375427768652171585837672521813147256614538516553725588742437718221887821467724285622382182542554318111747635612343268378413334655263324174355548536552168883427642873456752824846357255151453234138334676877347543458161763756265255231785381154311813641826348555245334723527825522545617143885275615757716368736852528488355433668355132658587883712627543256434165335466186483763615458462672154377782282842275215652355531416831481618861754375527453615426621755883578252655377133411143671363722261783625844623633434353455717882636818284533585814136873551128373848865177344414867363585586225526473177568828175518837457161328846815458322885556445381617486451227361863153318521218375185737521323428385333781712686365445867866267714136312158338525836423866253643143641535425474536858315637882814835887241445767561161334231186471566451112255713778878882161374432145722646324582246145818546151832423656178415321181372243828628737154768428858527656577868487471786243271132854435274637346152141364348328375334828173714268373175211122641241332246174452455364675353586371111232815342254782756178314682418587347843757284175351871457514223154847274614218644638545862871285345234511672352382316463552356772885433462383238421663888724263363562777164173825683148881417411456511177575864241144814151461516734842488843136237337318456163455711155626831613186586287414756417128671471116476143463721353864465318447155763244576567661836464514515377565875811653228323125273341847484548248224443141843526751512357472483862112175276138774542737575471656534733441121618731111425651685154537767541677361146688254334438852315266812317312677553152182857747162322552858223548814221172736318447253154833284754236842274471422216218368655131224724633761878165483381222635417455837712886453188127111838561126565155852563543442822823578547715112513436771185876248483127858266183485671756344638545653428812611521784866567632253627636537465437213661873756868712675188442154442718467748285274427524234311444682347688518737235683116516257386121576546181428144455672466863534388811678437883445561726211534668531687317187112568556874683158872627545322133848462735784286655533447666745611644784473558335485718333874544225364617664654818175828366632628245323778822362766435452682833456154438121214481724326583445687118523422218655416548868261431837875787678542257518485863873676132677446867743558515753622885284153763138761735453838382156543655887362838568724226643425141123578463235183174455776734117725133561784163336348527767275656326644488713786231248536121576775441448136465175268288582646384445258762418674261785615775565525231116824578155645326761176645255335634782684368466721738581723316578858724357364646628345423324167661258651246312573274673124222155176153236567632651185487766673351122385843422673352882458623125626813267116332633738635314362743281526187327441781733861856211136145744272873133766168135445225828461585443625183315777488611713418524168432612687273182123618858518175685752522448624576756318866734183568436547275634865366268858827372772216821548513748165137878474662842211252273467442654418127484645565657766781584766774786542566183638223857527752148424645888568512231475317774885584667264188145737763264518667374642264341712484847352373258677128713836827163534156285411178546437631138413425837646254337873686425285745174376127711834788127436116586755388681242332366375778288725481628685418288835638814723461871148674322211611333831378322421175153172262847137487125124353842413422214815718317676357442642472781511611257175554758354434633477518265881665877461185114447483213621876158327721726387417143333663451133625487166762283884323358582351323733336574783688281423172274324566586324351338245857352241362685824343347462163557351534367234685825258186868225657661286126485574161166423412666448538837546782317872323254326622675664487774114762611883121683556171288646244387254824226382653437427182463867481883314541662162823377235183838127815465248126217413385414767665166374754456164574764422857385817332777323586845138546633232338267123712761555665588837342272154562813188742175542144845651735857248428181888521421714176136333247255665722643675763846551858364655338512745713856241863664582534736784837268261775543578135755347834376154676752886844414186522172415772828653852642773858662576687872261745136756182856521735165753661711821685353527875138645287162213814831266485853566281466244462627722435642236558365168784787538461624777818364366534463858672338351448815713735558683588526446342183551281271715362616358581382262123783827558753123625372162344125312353125661838861415277118472673817826448243288816124821867236226675186811386876558157725615827352552252842646463165854184683127373484685438746641812326775754578525655314348528278127752436554423187275618237216724581481646254228147565284675156472427583774886867485572158255413622446485572247174243317231477318551358416282666277128817543374885677588826753141848418168363333882421278754135231641344336661536378183835148527282332322145117413828368743662582381223486864424425143887862282171218428775224635316366761856165675386274413864264587835137614748468753213256543658553622458533431816833855676552513475376331543312514566235757667823521244865863123276558714562151473464527764143167673268685518213521677425821383152134161326247268283845514333584717865883664486166431651171831176561735183217815524278857856535872831511426164285614615151778347186217758526845213341843521521181762554276531137152142111158867825166282742424888164874156844435518335166325665643141212865818231668376814472615575516751112184767452728233184252478231347126351615877762737251114887677568852823576154733225222672216163657816734536576887476655443148172538222635388148586338563754427262153326422386853375818871383226182471632832676512713457553452651815867736865333228155562826173648384666434566555566724172471322341677182545861127715263467211312148847668326385662845353761761564536188622821483367884276234887111371318182717144581825614768566214242226887487754526153488443164255146782242674242416726427711823183663886752743183442743223863272527573826111476331465783771165876642634315143773531668153731835368548848251217426271653186786333843417328116557236812372656351312543144155317187458584431252758824275377577184738355657441525573661775634138472127581134653772115884254534472351615675241424312581813125131355823456866678776845613611814515654518363111657328588435576633218636561537561112857561238758775428742885322437681447257714672381274434536465381115731267533553546681724157557627867585455662583367448442264516283558252428255472382885728248457421485534258617513683131845551162117532126684244478453514155762633453634381411758464322337861244171343448471533238362582358178557258283117167346871236832441452776686613571874678352124365861158435682126175228252153246631716355732631424516577378681133111482544424433878217633668642628358574623765234224574812445617348767246233643724848431344872312888373885836215318748774838131326314218783273464455113283265763482572537453481583163148352547554622535471386143345341746167824453515211748258454675768246634161887578351862777343485411231314314132654612585886246454536567884867731262137623324651171486753351714727526855386458237263838351431573332686285547557872874866871134134884673836458226421417265745314613762152416385886644151381482833315117755244744567848565625527517176837553633146411167316735376781454875848214824886434226745181216214784475464734277665116516384815151288432775878342513333558121222382732126374825266168424385173818673851677778353868868864262238284451228163617114157525138852742246265663131511673434114881761875312537547588556416866365142116533456211656622827625328724681421656446223771573421142881168162243857331565634545616565663548431772315338852826257724477318813647567117554723237816124511461345283668432573785453121172285331715768677716783387686414521728818243617558837234554382431412467143321776666278612732874182788613815158323646377452655722112147145211718161787544325567775648111332827725765336634152438661641334122861527656381465515278218342452348467238835563781114585526432553188878537252142128547756411252432175548455355434387264864586618517138141566726225137475431771632242745753232753433832172255287172262427747831333583481223618264156318778672362681881677624342347177623576424558518347175261412228647865614665686677156674334523184771122574741568144623725864743327888256317355231317646713383272872554854676861516432623117836281453817176631686418662532432652763223127482131777714567767641776165247843156734564637261145121586116762776526843122518623722442748586771131384663824845834144838575354134161216515656716871474442645748223843388752513211845346521182574574864557677568368884223888726371437871324777311366458655237835668223255318236233865411181781126546832557462251244482262256358628372217125781862128335441144613642757358717515426316822682663687468312253174332638382121384653166684878373373245141353483725788468736452478682815117314353432465327668727484242752678674837262354721618224348474328376778263418741527118538137268267546268518441168868487417235712632158815516373236676576365553385551227344163173756475673884333885166411817773255758187184586572658485253511775137847444753477343857561737775148841354437342143138573362128634275371438754134817826741142874163682311373446744645171171275352337237265261555886585253848572361154841263238487713838831444672656241724216753283586246282356482713555846328545861345835657317245557752253114556682844128826346563355461447564218484415184388143467572632487577477824281531211517166746185413351648728877868188586871555616687438122826474354871565371526786686688756282633627344768572366545815451278118336267225764561382772137622622325687471654671418664466818176765415858825451212134577868443231631732721136246421545333344566611353542654335647482133156421656652875747847472382252157756437263132312113451646432637421738246248366246278328562735544276717438133443267658625585221218578318872226211143622376465575111687685764285756227813655821171251528763272364855416443831848631683366354187458181635688351323158153677184548548378827454243258155123788253264611262127282514178671638521517165183861358216625541374836156561146434138156625871867857624836141651654421188356148845363766167213875177286188383154582535342268233632526876785782311164554442321684522261756215335188152565364413451477431141338538112227352653667712325888173833548422856287462722121521227478313345437726351442658771488816714747857788232276147183713611481465366616478516867444624681688743846673822768236866118464544275278716215453362638348843364453166517325731734857577241573827822673472631613765681214232581173257453335363341778786371111215181413632365368144881384465172552312542468812563863567165368484322245378745183356373181574284322433637522238234753737883823855265238152841768752744384682884176381263856684675761155432376355182717168748864427223736532337746574152182675135727286446548123647753853727487878388611444443467251213281181787484365816141177568681878178135564161332513617165112188663373715373172842713676776863531567727126321275355321518362575338171573871188284483541446661881517634582357274333677612144214352774238132541141318745658236532661751453675678776362884514734161623455424867516241118536516874655681331676586827887517368536167246876821341148815456258623426812585857688488841585262213111786526213642277273288772583564624475764784823447454112266224552658833812464487731232434144268314884252416545135225857268573423528115822563642353737541288487755336527672856748132552667526853585724677543227186842718531333278331618521548128668821861653847871627648451157885586348362346131768243258752621766567285388868646536758314275258572387537474855318851752878262721828767673645863468522428182361368756372655223465184732442538635477216848221264733723126275627853743436128143273461633126388272455465767748756614747628445133245472868428365633774555218413686832235747431864843367754482341144724465218365456344281341472545134161557254486282517382145266331444461872427737855755665848542383638334236126778134257742374513433462755254412371486272118435348672736428458657484177275687333787877375232756384662476823412382145541161823348366572768271325287442124263263111427212221822437863141254542827558468571342282144328842155216162515531335251354746646723443611537287821436257683834526526584257846445257548318663782441286628273774316721427454434264251772686642778432263178272285671738684138214226331317776813241383738338828337627647533881715811841543434134885666288475533638474444484466756483218724846378724365472727414723741673173761453746474233144426486165368626757713147236532143643156581222767317328743586666612626342464626157578563578746576747173385726282156121164158376658566463852341346847611173611165888385656782825275123781157232731336563342111335586875677517642444287483388188548884268625458511728565462171142682625576232653782317525684464644562135615571425634273453418541587786434858512732828252468123272557852416433373165656763475358262863764174463466543378386527435337562171283541281585484746356471347223342282378887214677164628454742766882278645265511416548141585668134228784416666674414128235363866457344355127483713372884281584731324425837464432738585125741238337361821437576428378851185724713611668772231568566237817475466784431327287254177481371778482762275813688522688414118283143825211381366378525123234153436325515512347164575657877373382684322562665248584731217113833217388453576711636271267567822748338371237875657433228872644424357845535184656258432338458562164555677883158632375464121144812164532112413846164322681462753865375545476641427555482337421464112636362516355276435225166272572452248816343727127641854342461622586186721168571315317612547576735142733516454552787538473817552153815352854871755675228271132214414586453841183352741668463541651278725126775277458235138881865643682761258473878787462161264614634526613246582477384412224255387456274114464563313411677761866717226586131476474331355733835676564724583547845375121681651327844123143463267762373128275264664836347275267541735716722118272665158744821771531122768831447612266727721568328481263236261687775227116138652581374683376416885276674356283157743228246854224642216238528821465346367521142176856676547186214647362783787612317636857467277258642782767345535384658483711383254113856677231337783413681535427735721548868163448458385325556315873887585457713345375576137638386676213358288231634872272122841365676873888712842338323235388433687385372238173283625185584233268518734827833812358758187217585543123275564862156613518126565686167873546633715565686215728184652258574344335753172418181686263355313346736322331531145112728641232562355553773485286763625375375533425671634571266411772817545267216675314452245786764635455132453776177484317854546521635388542526872631767353676435214643364122621854687431717217328751756235164225275137175553482134168553655737356736411556763665248754636378212751261323868843457131511287827161276378373866378657725415286613787585231484728654513744364511581316588338677551671132455476542343862582251873647741653387523723118837141727748234366316264215213166547625251271377824216687815372635164381468217855176622263616536214548376313658354512728756415786221755243215287257116887315775266847533448838712223527317883211712321365237765187828756625833671778812185563248831522273443416554415674847732685446532543481142558786347731165566828744174685826716281871576213762413522557741576716852878285243453762533416132412267356743164175133785283855113128412755768244346535752717177376334271754337763532776854663561281375351454731751134471754271866584185237227813112511383361156376485675487384552472462788462218415673338755272478532478825145646822344826412311761177171552785284387476284135128287682617584763263617184416174853328558115458465443243278753815847761477183831171351375821228711256212616851634366451653762328314184752424246271576542585626246616757661175661627178287626147468652577375428451865874526276124556664583612657424877835321128444721236117331673132532753722736715538315638783166775832371553814464385534214567853415244256556613288352748716357518288225747277554286131827243111878517148766373617362153844842818551432877516543131242286572777444143231152672175685875644478328384324376254322787185626754753447468717428557417323854246373536164132444486344632177212736755558632572187378752826437277758472342288455851785684414723315313213378831276266433763225252648558757747756278873766255331584526212643488624312255566118735386566747756788725642787415458175412753537376225488535173687363713684847345634271734443723358511465836762115528263514756747684417612355255464352628212445722833788134316551676427185211457351241218616152186635245432447363157665215817266521132372575378374742362537345156666884118316245675478232833247772537647535356574183613566456345255825448672388465343588845345421878584568687315548765455856187783723868715616751436868224481178337621361787478237882571631634337186234861688317257325374857481366675671628248125453157251865652121685656247151312664275232667866685327643455542374788313245512366568333374718616273171154521444182682181146117432715762883184268345215228581831276724578547565568278467436186761423576432885422811546355552718851717517484815283744248462543444222642487478664146461113837272261334231175612276428486771255472274314377428536845874538525231347338664265235838124344215377418812544862575747726241356754662553416811135618257562514841473537567825837565271814734225853272835587181444838888472483155331214753527358653523261376377577617641562484131343335864368724651525573478887588822275517151425574217116515132178817424831843216274155622824788678487872642833351733865734813876423387152322354116458813883851568884661578412717224112467353128165518326254814726783886632648213463481166463545881881561681322557783567874315455541263213334176532885378411155266384671514572345281638665342534324442517866751866818563214836467473581273438223773746724217855461738415757666552885376714588735775485166414668727353633157648886445618441423365716736143863562273413124153158215888318566828716227228585857578247677341118678462278715152728684462863663637631425115562458128232388362232655754364487333342755152557766543777212321154445336888654587227116574716827133262532413528812727466826225875218457265486184875628471758456544541464873352648228623418111765226721724241414183535572442225413155136527255624644287483322753264744255572158274513123441636528183568136888526844745758728251155378852547256541882174133648424628514434321162752666245571477548416421852625816761252668467228728462533415565348351287234553435177212217654855557377152224136342138818772843588423888166576817121677556421476878344752268556434283825636361655558685727461774381283625427571116665824637765781828257385714872255756785663858847833422111257372723212447731332284436313875523665543786338362541551851748466731854831528526466483574368775355826118137171386643552155513735824581584158187422774678236221718764884356363115873841531358886571138232837238674645718511411224234757111831465841471117157136251612463552275738744544456731553373181313236721454528132315437622532333253814541158652888483735184377284551512377243338845737113512387443461687422322876465363323457853218735667576364672774226168822712485128533766835723312564235326465644266554244332352576888522234485772446527551783641318832124251488528862437474445445147821132142668656485813324768143534314228845876626824845488368688728336282388152423714128555572463462151881882641671657624848173888715661351581255832768764632532227442476283215788642628152822631375473782128668231462867725188723362312521546266261136525185664666887615421243531534883562634711251627361341353173167384534662786455277278375371287133245328557218484328816134154533727156812788437735726486518658112517217157587371528837375357828161856422262665634337766457258133627451643511741333125357241713275686657674758743741145768846225381756581133527558554816557348478551871653821433855145662486412854152124172785172573728664165232233112466655754683875447852234834335173724411736771135586366758378457446843586274354418746273177181534775145444565873626332228577617776352782858423775165386755322758485375566177133248635121218485442538653437831255787485226732363225287211884165354154373655857276453263367345867844178314586175627144347773436831437335445244323124227682615314417816522235234513881451637765313613135244434754213258878445833814876487517173461456152885558715813218668534476583887184515186646667632254318137327223244758284866437553153855484765286332341313146757733688337375861284185785255717371258258587755572871238345585321146122677433576752435161228427537211165877743574537114633344187577552128513537176776826241621165472553528532836672173687625332761686524566457185381358682331274324566688132722111133613713527818163682382543614424474432653154637866786827878181435575612883456828688851755652485628376275177478315812176358465636334848224167687288154345382435258621243518145831533837133376582133143171572145785257562858515678651654628884171553475362388834481456587454853525534167756718245256416857414333873885461127683375635827735868356523256837714683355554317514436755232485332712784356456227356618338268668528488782146734336687386211744686243772863315747464883674727844665823726147527134531565823427772334425125744327766424165327762165113365725346671487585213855133338653744145711521366576848222425187343743181142275741282213322426242283458164847538624415733141462576573488481321242683742726858123732167524525616536421667854732215162581122352115344166758312488863732532436533736731226244451356218438362872234577615128565556874886523472364733268462485521325322141878225364242285184546645876246845724111282171586652182586861561722388868777586232137353516533322516264257877216116782248762714631147451827617125762643588746728821424522353851116761231725463161813332463428428173785564771156714746858257786364623876321136414754258242677371753216448557885341726416662418572553813765551154846284721131658764155437851636221535874656728385462624576548237851225571833768425277612153843444223771841726635353784586852712824367152111774326355325177734636651256434212611336535631473856287321533841771861324584538881378272234285343811142162222176125633813888423424484361173352638218251456367666613218327211163153875687334761517737426846844826815575315457228568421214565866357822128354733688546634672845567835216638213443174446871761385687365847835341217557813871768345668231184374385756327672358378553542621648245487238887783427341315537683276626515251841378723811553383267548368475548546534735777774712563558214668384646286371728285457311321453173426782288277767863718787543816725264374812745543533573343384676253387687438184326572575565838325342166521477828344552628877816286314122761522223668711488255565263234427248162434375824816253446661277518515324418811157761721457233688526657718666442285767873456623344161556271724618356152184333636711463241838188835316266566781261824318387365864181777131771464466584434131523888176481238863371541858152111161144753733438654427474375283858651142185387831462811818484481126136335732384332287878485841543825225665785835124828565135271548651887544143655727461173667422354153764278521763528624852481685187175563282275217166232346315575381714824618321613423227835573787845137568187137271188852176455828428832547322718425462368822263771344585384544285733526224382275311456156416836266288716216184632667348686456163348335155655874157582421253838761753325556655721565787571433126252551176727881157513122164172684556624852752524151453236545475586325327564423727831844564122377511718535664823715758726385173811586428676677825261228545124162631473417672531656437488851137216122822685818575827754326888426177261445686554743685676373324882325131586857138368834362561521433133153325225257612135377141253253464655777358238848537348124431374628384688622573283833415516334312812362848266246186443664353754851757557241855335675858885332414448815436588673842213118348178581272621346374565353354355368777883732536731354588832126511287654117822214318754654853364351723373762582888565616758153487446735628864734356837261275422835668746614743278837355168672742817878525681875567361564533374174838557277745388783858368364677741783671155351211163111614742526463611424546627684662647772144377627428561738278645476254465461312113661411137588717183216648748521853664437274725534515876726777841866418284676735856141438174647632162652178468135346246154587852135881288716465618384566175467541146733774181657354411777422846637416682661433337475433275136718211546428468763516741234447175166781137175827847638348673257665814626522673267832533417573356527555813141164837676687445457116562168441256616142721223734314857262765756527738871718688178275168743128741331288838584563587161644853787526642215762328234511675766126777218436523412885455271653165728316711567475574775184636144273273564277135351437187162733752138473511373827857423338263254137846884822371645474773461473873346643131838868124562575571545861231411588256164576435858874236256767883815572815345712568878352148437475881751384842687355341545154568158712842483568864517328431577451141731836841727734666275834445426215865551337121447735435461173688845462282858173756165622376332226763577674378634817565364183275468484337456386486211346713182335744263178368864355385663832232616688184721377764868235485374545774751238864422427336546774314473538628215527355288521288325764636354262483238415166243172527586888413523842553765271444566123477188346317434411137738855234178877473221164412571124511238347233842853655663781887858637638442313567731117387143845528472373224461321131826632123364278114885431137747811363442765843721228428283174464467427365426717585517226184587545344261383568485143452166576141542826655578227778632718534335188851523671568414473534286278645311153387854465861883868686337728522511313456611788783628122863422373174185663718378627521473485621837184566517543272143647186255824324741517863887152183862384745877453264167166748658115842385874485663736548774725626866115361425683863386862351587285586784435111157356641545585474131616751836133434618758428533532663344813613545683668566231488626527677815866545768385675671642861717268753113656556721378121827854442826834256572833827836825471825674173286724816815517261614784822131146637785456114531281646118812526855434146726268285821586484325817251355886663388842617326745116722554123771726672547348681267826767778837116374215131686483244888376366737233643825572321315754388685465278413764138357174538725384837123161116218111418837511711781312565266884464511264181761456444412838374331477465864527658474822661667187713658813164747455543621346823664545546518684485555877628817365435651311376383747443864465268378844662666155816456624122244243646711143318411243861373164557822513364555515386574367575521418328343618235454173416822573278727443611321552138836534748637628458418287241454143366426481757464321831725521532835277876567415536586677231858242766261784635875544718687684567412635774316482626714361215233671858116584811163728743723445311462162637778883234725186111447444547476365734227286313173723357477236821168241661467675627121558442688316331463121854283855126622452458758785764825844311468236872187663227414786157577335727513783258167877154438257587148681848851564322284587573148453473146638775874181221847813854282113476331528885114617518454741657183336444844215573488835175251126125321721742186312885113685353165586645438336833778376345777754321141373373562558454778134711817878814813826677683767766845615484155522474142876864427178348855867176334645581387685214137674246155347727137164513271588854148624855633536118456465484176552474568148168638375828438834355414522183185858577776775345462872431248528165131464723326551627528543554437631344426427268711653573538748668413752281874865517535885468483334386213266351776331738143643836462673658481137767811512765245442626653287862754512353146336842174448335128854375527488722523681632364543488586725664516435664414236357586456738452573832457567887323168774534435374263475233687238543537541653377385343833263683616565481125121741371331343372543865112263474258754846547865686143351434742853545886321224453656157652136828848435237226552434715642854213714657331728244384462115257378338612214856766165428675882686571551347743186784115543238484753765566412426166534657677376768723178721828333645127485321164526831418262211465667423612425537831842858168772415724755116666128221315778464665357631312635446155146382334782886636756588613164645175225352441773155672352338481188271715857685117576767611341325243874266846516461627275368812582571864564885587366281477348267323171444713153566272321225647241548341631683658374463285435255871564314171415181417433636327825548661645776446184413766467326567412265751154351612157684286511421347773887421487583431525373885826714654285242667672641835334423161535845236411377227277771838335355821244552576865753681481181376848851175382884448465225271828213265761118258658366874263864782767122232124646573232325612657711378582463484227442348815747287325242874884313146776446132751358743636785825286542386188742466831384548237457718617364848156758445518583484732782688771753414148586253152245322251238762172276216577873617315437216154322446764182776254641353661445767673235235121716841833381845478334243756165126461263468263317812322364847525753571534411447137736851125776428446486717527822712257861114423456263421732631566783246254315346631832824754522381372816316537786751128265537724453611316636213885187672341773887855555385626125382161861845244536783177551228454636474275618237514728331158811144672216634226674732655362328423487364117481635217134541462361321254321735718375778248886784733514886568225234318834878558647585145318882264514414512234168574788376246153462582548452834763848847537734762881241183883448731684116881374163657754758184734463864358857832816348624611771726273365837331427752634762448437722118383782534365245382533152831711636575435733453582713627861841671827157312523578458687475546562563145865687142557533862433741863876434188561625247535345685383676381451163145635248471518247263877824677688222743446517288616664432581335354115318136445416663176843645336644862844584785268544744618882332638578818474611625765325213815275633683247678717875526784174368848768788337378774885671658283143581146175564157547163247724674144657333871882716571564416775275352654128124255524541672326414736818116577184323666442233544634324882658238351514817187143525523818144153578215363173457675736234115161485823211564721377762251632735544112133178562356148725874767372783163372814181412373548822351236284488585185732836872744175215434864783368528623477368336824463556883881743421637251184443448611161451112343173585664764628656423565276377375633265213671322854877585788537757141362586388584688418677547134717532662157826152688566182781836471523438287463343266832771471275846346833666666683353282745734425728412445113478472782172345776325865265446682318486552785838621223486532366287733456285385337128424177874381161262787837426328721385183172784462547446888676268785462641425863287538388727531271784627631333513163152543153247286655228712268142347567564774663488616587471384585842787755323637288825653648767453588174673515432124555586474378215714747758412261385455258557247778863648646441568172314238128767454685326631683362187526428165817343542265244231348787515122218811852238658743844524342741736387488371253236172514534475438258567283227587863123243672274266674214482827314563587752641726485773823611417655821463636615422168456434244511618745175353815163875674258626484835234668665263237663277711445818422575458143155482665546357727438374826786158368432653448786538257225552333351761642146623346128446163786278856836282451755153514361658847831278865111153365633155287752311338875456237254786668355141762862426833345237524141645246381256185657683366784285851242872856563618567852241326828143287173486666631276316418216166155751261546876885583713681154765152145188476763188371328825352834748827836314221217235784381343623572474762758771361748344868817836174527483447474535151524564367672613448484312322886844362458323181414158556487676838165327716723733845812521144747355453334575765258725546612173577634134172364781647317638714763636618614512177628518468121483726154534872778556467174172137461775215383477188736531517427331175585282118727757128248656186254421881167628215174554581815581538675382234741125471581376715565284631513657355761638655415668247677645561113688622377784121542461814261867213264418758326177285882365168458772388841743242132226414677538167853846887812211338641114426481786742221812738822473158567877866547638737526568413378332271576817777432258515423451851238386577132872666624735266868852571316678667744163555662435132276376822548321436653226138637453257515661362112637626831553165476717442477375227841548352568714554185383737345711431356523268524731331313784461124258471657376756858856745773885366321153482647481855511284258776274876272455785782152147263217575678387514271331242113738121468833868678754784574775155636461834336365841186154583764834662762764257318418781841726326654487341656186685544234813512346372716847527874187121217538623137315586417763243822638587237131826266764457362333163872412324362885343347271311326575432623616876417412726824643182511763711587715555717268631836157715745712358722462877522522286874227615531577635781342413227576887735485124874233757864853712167552657348334754131584858386284121383126756887462227523227847341875354586385232844463374245661464156476112681552887783316474427574238446665626873462752516525463456387832264822765111837578783137434836123162857465227146525785317687868866138566154738552611237167561557861524786378385465288862428544817155245778417845224726168828128785168234264145556545347816718454137656164245352122323263858465565111774318435513412688572577712313172577127245556435478517185275284117726312836276422438787323548621587385158576725825765314365236753342857572851422568255588663425658522366257261433818554532444615567561286173622172544154867835562825182688636835755262658558175876276423855615772414671283211615181332584755141752375115173624331351278532743787686854453734723758564487668127853348655584146383845485268747583524456513166466467877262742552521655375688116448217634717131852834133358238764774254611171265125437451363828364481556365342844253888683174672272783521152823838385832235668447534546648411718385577617735741668234555412142647386124513184721433455682816241165447487476727857863448635858126631146774166838425761484885864683386642158422861516253248445472777143357758643664378271225468517177361656321674673661678882513316134766414243626574318267428315176264765285226841872555316786112677265352734588373238635175383561444665728847473616366764414636462738477462728256574767315337172732461277335142668646143376752114342856458124756782115481772872465337871853835324431641324527655885451515488637136712431752684881512553768632212877687463218687425642825455675431368712233668371715553118543783778356546821747528772153676862341843316154715667212424373141332186324678261784275174528883576483224553275825343542868727776285414831815587687648785747323813251318181525855625365716338286522223728736132561766157747467176367246676486313181712353188864351775424738431435423347524271616772883366825858561462383676447182887882278742758512687665361746142737156516773638568382538664164326178448124856861761138566861118777328887354627464437484752758713342217113145782834641725662242543451231585641733864823578461684536645315768828873874318745864187353888143682671844161852227327648117528877753717762837746547128628242181862328766138511235536564278385152771736448158173643858444843447633415126622586556828453856267611647255526446687451813355842423477768476627156518285472146884217571488767534371816555326816186442251743316714585246478246415226843827857688754345653344184362656828421841432833567587866851225574173274274173488748612166155318427732821388635576246311625846885434523652282728431731768463758888452383523354864546384381343248152881318241247587834463257178154213834425548815418712287113565185145477642618848536755325273347653267647567463826567756874878441337112828755727441876572848571514321268621282613781548613326377476154835122373338343871713517443158257368554577478476564735631813524327843487736671187576611467636128723758318644743266837575345524465427157122113421773637832158466627481853668667615765535331346515224266113176726181613243344664273355866231583887138158141466581726411684748618412174174172641778271225386757714612166272415251235727446218576114872215453648322884615175841622111737438683235185262761165786663356256123413122248482565755423724238442653131315724142523232174453414371548366748123762285158415452846561584275646134228485332544737184211387768148467167267432475172468558113626631537322634878274481113524875325335726888174882416267538524742345734283282587314122734382463367556865355162563864724723626153415218784816254426555816865347685712752757564872313814567782526214448231157143343341356145864575181611775576572815832212488827133281767386844712352172382281684678656252723884686812111885153126153465327617674331141218472651465467188436382385416484142874882235612554841278326535116884451244611436887515214864264521653676613753122748465422845886628884362344652515142654825212844513515746267478683865166574648151127352845744624616224538118672743565361515866814683755633381565588282243616113543724156386111668245438681867372524826353163186676228755543841263335866261266414273267778174761154321643326866155378734618675752743424723276873277651181855512343381342661324238112161763473377524657872564684564662754163182441822678514861336413245622672533524658428765715423484635884657815142873526767315315677364488786417363325182587228484886486175383235426633473315814381631415644553165738244161632737717427872144452682375688728583341252851861375212841265727674624781152145258431331827586134112272887158344244836835452125123812286563183276561861475646755255832557567776231824832163428532782146768344636676748843254717583657144145424753433277168526862217617663771362275551867828572412263136825612786353156715333563656626324472632167468626348513645367585118873245843421145613633268686256242455621632616863816228274761582617836888268432423142656214838285878248153666518773655336335315561482164381551515461661118631746585758257224834441117124176162436863777616768213824483781263113468337765442137136535472255563461413758811763672315448365777235732777474452428518721656332712884273571633462388861146436377563557875545777876844654364553818365738174548317652624226543731437617613636523388257635188343156834362635356353278623227728733272527777864611185556445886566784125851457484553625428627442131138385437776883261773342755625438367467225812835874865621873422448783524763165631724885184815216686855118475657386785352427188468631217716367766443654485352815774564442148773237158585781177532175188351718282513458518624236413877413551448288212263214324134872688655758445462285475514864152887833275726824248684821174486356158147376877863518161767264888212765311888453428385163558815582678865835577421428123167837484333336788126858871577775245655287127763674436184643587728885565174456732244644174114642547285463418248344718773384428578366713228744747288676672221667661357241285635225188456245218646778668678723444618552346434385178815564425435486158353613633816756421438633378875876714144144326124766731654628874365641744842514182432414446331466817588573734318243848371584337685544467457757732633337456475854465523325282644574723627863528663374323813164232528542447716473676718288253276384358451711415443288668372618885486133278881484371347845173668277557576532262365311151467332221176582751144772428184232651853626176267833421527487526648444613422684587836555464833567522678186266332772444682274441768544543236565444358625711812688543564877214415832564114764831745612256543183653516866144243274354245786215231272445711731218215328818576761844678731818886817231226745488143227211757426277882661421531534422318884736521871144775818558611882756836358323186461732643223813654427748741148463245361658646573134475458131636157351876856515475823125134714515831188471617845117111271361676376155651781685313661488432568254866238327447644527627566371366433753641585825176845763216284714775641766857563854216473713844483154111663286258565874351622761633248773762273116384636358432565445484676585562282621146686813556156282817154278422533718468322186423513115484133853234146678858316533531241541515825188764358355517827647663621823487465717383858412243118242231138872222557558581474651562451164138741116427464173547363177282654545323564417426437335244868785321442614225664417281412464454842583454843128525844642788831872241453544723364825388535124713884648568141374775875834216544843874841742841874572742257523174162456216361365734617784653821427331547365117657128564681887681488154872158821688325784441326825886872186155732653288314482651818617724578757831821856856732723681242616248148211856658882761746761686422132853118362261155786478258862662864864777662763853562576573446544637275842775147484243862812633683421672456132767382655516648115824672833313251856787348673551752336188126412187733567233157141833647346887763246563143358738783756677444771262734737231614683665118541828615775735617775714777348888147827253645226661212685276775671237154375813231352286715151687417313317555867564373131345374224622657513166821358237252748737888252617624113185627448674366256243811732347544125536581116478613851541764385683156363448677354311444122216746748146346374126254357765583336562572776474645867383761185338173842278436887285884837847261775146254787253138274677242868614327518156477741366781664737418486757721265828653337455518846753247681714415171371775436837371511441132567172668457157327756513617677442818243275657281842258321758518786471468885411561486377153521556281887886247252361668462533245431521476186578675442885115138578647646422741777473378751358867738561872763742348664251352348683226315252442246274615481572522541337823624847346366712561482553386144476747362888376412551773713464512256653858544385426584832777885277454456412511143467822665563741656288516656432375746621376267313173838265817643287658654261811265258175243124413267714221871667241255448656156341881318314161885566612643125426415236733231885413778523822233763853315538574785171613181274221423744863882162345316613781277838861366322537422653371256734636371816518437266482481513883432658751267622514824153774661873258231847625845837414747722871385764835363824226853114585741765323463818362653158128475658634335368561554638112614347723483786428473238262768818131773738127431434627534577478848127311778323853434854112715411828615564286187312783711152358856837541551265116846283887174178378781755848525716486782361338363848834275686373188344561311713254713322487186162116238856846337618187717614872242761756526745363247688455524648585646367518246436316758477842517133436387262575375567125816254637661315183842431686217685167441365882562853256785512147355115782387222123385875186862786884543448862168488544221727616183424428122275781545867626453758762261772566125266431718544886848636712665376561313183845484777627187862165422428737288487576325725677485134875735251151817328887556465538884267351366467768757571374437486571312118622117174517386446255513311518471381155175865528744462452222121755827435633244785247144236425186378188657648727317211634845151775354286651533334242264538641476173587854173816336224644277833331256148427415117436851848447762574278886687758312857152683538374778365184471312516872227132166214211376724825673146738632414223513337125167386581373743654265483435284711681851654618865478638867254531551323877444112211278633247517331322611152528441454186117535454185336117736661673283558123527534233434816548327613528532443813125435726242261511858572623673881248782162788528312365114433383424458366423164612534214644874883118833641527185244334688254353624323556328224385627763448871823341355156565865214881342786877778812566331487117153784841537123871734427563831445722815835444442425833351353364525413686381432643743248764762383738165754514668648134127411331271253388448823784756854371414187673128164622817354511147275241628136884155823615666641227323472354721226415446818551363761618821882168476821272213831266844785884717615464282177466154455814264341172627114717315127234674182532218377748885634332745373488218138836777367542841722328328145847817355278613763555754455851551112546162838876217454416163624485641823623567868762227834766823547311278213188666455214652253417817183528778622154272627733271671246217256684551574756548734888681411272522167636222762724821758786575716562442668423615183245734477635183284136178316523516146452834448435788583114623878474181288613313872418775347315354653478428441615543181622423847173427358811631852862531442615114143847515545341487557682428138211455813437557617161586347227218344512825671512325162663582123814165856481212118513461728886344352513728848118631876155825328752518581441422475171473144233717635281345156382561515778818256181328311525842157218656343265841562563331872687425141343358821674712741888255574148863265257835376226823585223633221434111468114326674841452472718553821663334632851154666875655666538682681124871872855614778353125542621578576265436617173678156317258816752544787255638117563381122512854178564456521587855842648765752731783787256865632823174861543416475432213516248832286381322652865217378245728772517236835156253763268783445483341231521625417775718684888217238812521588831615883727387817686574746515588236623675414881338687147785421114643111227514317363777624732832166336155776323121485727766166343563874538756237334473851664357222518132524234136474761484838627765447388328682416574681678352284338734363348578234364342864143544126253576182172475778662174117411235151436332446821557432733671361872625155868237343175168884532688527678266288883318562562121258617566281725415412368275357138618436143682338548632641745346216246627657787617372513356576214585336783547875418631855372182458172426371747375228862218368274178871325485871467165272678614672367118214458476873457335863341234811527133631325332165322242332332171743723515248322421345534437332373352622833525766717132534855783785533433775838375184717363428754826366515615344748336631662524176418131362782846445224287128587734714442377443776818484386825385546886722565741542257677845545188457146883544565471225576732317844327174138455851648366858646547846314613624871152845511372882476176154476874646431167785855251467871378663717447254133224311156541548223263877618763152552357877613372217552818872286328242118548734655122377265352758678548511254678787672468162746675641356172411185554661336427253323438633844521262217832373254186486365631172764875775118175481831264786463548644387468334843643428815323577128548475885341312553141632875356877773142645463577887832775377176731115838473742347111875223172354431824833376417774832141457271234383683571886361734138161855878114144382386634666266641786454161565554451221586862645425132284347763317126145448573132612422523381687288754185841834151313154451178714456553754846323318321426181631276587774264883784482581788863646886775362467624653563653215271861354742654122567824756676252327841182327436673442576221543634385314513446112822241432282552682283641654322471654317486318567683635681728136653281616886744374323773722385657646763163724323344638672776853624162364343441635765638426213275252155578421553736361227585811135832446188122184722418268736416188382886518377756687572232772456276346664512157724348252315252865566883341525884877781632354117331131161173377666256886722288533685387466414237521221758648287437167775222615156245371224634574342285327474688171518376751875421218737245672385125851333382514581271865288187581755575722132142165138328277117674832478578553366848566455835711788617233147472235678485677364811861358663227882566275624146587572377355333138253761182513362136355247377371363528328546463343774158453287821372811534347542528822567556344472338178524848257758163427728327256755674267653444147156517581823654338613277172283688358765566748832813276885272442173631284537431327316682278181265237726231642771361546454161246636574817633817815558282614375154662167542518358412137754382554882765626766762473272867163328377454583376821138146211616115833445814837626788351142218518163123274373712451183767878715473375663616147251868315711656355581737184418885877478656727514638713572688577736375751288816871557773722645428717888618361865637273454387716476346824712515635551456755616352643134472337762184141322852386122421568687545444727457613517221123138565476631768674125462358352532287613366151588186213335861771885435738132166663144343848527374737161671557881382386547265681241856682747243832157473715465271242577728248513424823781417833646565347857878776377327355627858615815317785671175816488862466114552273168313111557887852767274641825778678175712667131367685226877233117573733685465282137651314727784548782752188575778621317471336776336522487856514135766622414158783411551442162245528277828121855816632364546461138516315874541231861767728226885753251617162752428552318232421563877528383565726363454443342417663221728672321826838843374571826745826452671677837733756212863654743258126152525464611837122247588725424186847175526375784165722473123537778684725241678775834172154363757726368588237113315471685683677426724433355725123361485835318622468713117576748675472175562441376226226541325788146215438678664856677813132312272811243666614186634531434652548415426671111226748862122144287617846572543351845812818114281831521744868762866133873551666668377167235712164443642656723456182757641837615218578325117123427562316185566173617311516477326871171358512776226127174388737272246242788174783215563662352175361884631217677854177445346445677736786726652117213854277783166711251748264444855226582157322617674434357363455636486282184761615245346174128573888225171166717488523386688324311887186211887386225545372773878867444653742247868471665724628373226383544467822535613341423357646346386748537482828723822854674377625188628554423365366458586182534133581523654171264826465242484557424545711875682151614887714351688223361457584415536885562516643552587682221656311576634871324646812467588525113651488587286351121854663231412774424461858582368354672662423656718722717434251283332265416348628516457352773518782525122425384841655257886353233181563725154545572716656888872887825364478581755582137336375264863268526236727475577426745353326613221844382738357185761152361581523563683775561876538233438474245468535771837635375867212726711123165541343163316764352118788482617838858156854631633543483233868467334336582852685146455364562274117186756527444658352485828736316114485124558184526435836826516827863542864843862614714562873372774788883356358471567674872266341431126328551557571848144321522364163485326368787583586585427544657157576874738588525274673247328225641318652677338716842355683312463463115243665526827114648566428766736321584746144843866731573436766158277353536627825365121133461173851776611878741344753835868567731818346831825646187441534582841817542245886137614247368484558358261381848358738228623552676217225851825551431112844258137354246733784145165766136123632167547321261672357734284716738142416385123657873632712357642313458748147123817741182724477375231272786514852635384253687275614727666334478518645731185513661728675175221131612275751417444433312676287262847756318158782814342211781366167853251125782883384512251274672443464476153347247564688474748883881444611681522878324853434388357358431158227113814115115415337734664471467768136543644342844437762218816688213723286332485834471567257484414483672422356426524476262611122267446345277881252586368241848736576822515884861835223283374867585254161668236726845352251643467651656784466755248342566287214166213557555841422153265882322475166178744435177878866133264428122431374474883757745457742783452384388436833768328435868144351576582412752248131173266777864528374284471581164732725413351628244631168684717282164681626455476518576156334153836115744171577235283518232315285585246344313736353613283123218665858584125867688826716115136813518265637234551518888261444142152674217576643764663656481852654787878437118446478725264228172437335365153687433175552643347582332535111475825233355578414854254867578286745435461887815486573136874711152682247714311726571454118271852632722368485447152266347232874144882737734474751144468787675287287466251655241744352736665874668114435562175736352212868133261262522147855414211127865744751575386462253413771557345478835671215523648645681642433642331567275744264618867518728774874831455618173543216636575251527877621351267288516368686718731337286222815431442734668141533563858641417656752545162833686618562485242176753824227871316547284344565734226277366161252423713143151413732221843358335243434634616647787515311582232325668617778421858621347816226458673521217626713744735233822333387321317678451384446166135267564486223871583523663141348835652667178344118352285585221278415572471874172814783357536255285624728426521778257553116638344526867416764842737341342822523861526164722273425857172741688885524332368476485682458611468335774373118627167633748411454243332626683565478717283711552135435314564886242182527468431634837424877137747524763628532662754263337131565136412643686831175188132715853563813176123466431611628811265277475471273231573644373364357565113647736645481752888883337744352675535788435177234723122886137263425562265671568847331276576463462877212471183184586515831563566665255453138187544362454577535268451866778748214581443752322718445432176651647616421716535775626766144376412268572652171255484171651288515783442514372115644158684471841588834682778688751363813842143112655181248767554657844848711176248355448336773817668768648317132864514286561767384267717738212454472816254316713386676456176773382187711812672672418722535871871178566564418564415184713481587366871643743716227333721126645578763514878261858382338182766181577884483375137833136645828228343633267215465768243424616615538518876413111376282241562842152622566266266262672463588351255374147734247535681543768484416745721288314257434185142152568743484121151143743848528325242122162538241841385386218241635437641554174268868484762673425538163125284561254663241875324746444423182158265332614312511155451487767561456676524852778774388146873311456672413567642321625336874825556332148385736155787486174243318687587534623488865614178563763342782612174433176524622265422415382268377487382824445367776127256461467813343512845263121628444746754252542513663376547211121155442536672547764282816483412576137351575345723312251418416654434738844447136354241371831564164246232246155452845861551376483717477213575631834177748847573554468356364744716872353346661133468862585746286574711612467577572244311545234787845825728346182815313467872367767331878413778861262524813616571323867875754726444252623881315313316255612783214628752726557177325117548424434466428211555321748128744675285232841431582223364276757283412622576528347157152548871611121848114433456863375415114242218784771724238883831446617127248788366455767336525336187415386275668112547177411133313648368153531486527123854834734288133637652317638542584553836155635856722623472445355626121482151346885236162272467518377336182223718123386511727575214816513434472454388517648267774872318517656758854822656563117283883741613175572831285422778355545588635681348412287638574511232381238418531247356778644781774824613353373883685474127184243631667118487456636832313223336566338136143777227527627688538855578278554737226864615275245731454143185134556221352575251341453726773456517281235878565366117351625521266176665841864252753355876445232816271764537823255187675186268458644771841342657833667367581586267626471421343646113816363487725274827635651631487458142181837156424876523352487384717514384268427872338235464851311757884372821677717731344485435272677713612668136565666626336814748321286321833257775243762433664566272823663687445866241483426773182358326583186384877184183741257848572216466713267663743224388651614484712287415878233242572124275584675514422616528414658531845465543113124274783441822735525138573871857366433467435318837431157453117543855267872228612422237133111564765843416528186347426236285242275548471248157448751541125546435848587368751685372112614325864158674272153283376287324726873485331747644831838514146485783738137263534686786626727236723762365253113443727458742552818345468654852716258881572614814734142814166253838484248378768227387475552774233672216115678257686512254142132411336517732727286514488781668868688455848672516837366823588586263175638214131674517368328345653536256777276325373268267787131873667443767218314527284531433438485811354161611132712362474487144531336638665765625428567174577817131451336571143675617123441846321126726461274228441858263823624623114322318426432224141138367581766284814544356568548248245855518788388441546758713334825511731621225768771266117142233651788531528182748726436817637583348282823888161122332123572312645352233573285257151238284325185387411438654346113736322714828548358483165158731661117278571532134164146648282858531415368188882465478741738632382833435434881284642683766415334434646357453263614574527737457816872673227541512825464257684541325183362775533435148235812835124333535414134177242265332434616285128356438733627512611841171465847764426116435845625766762427173856877674434888166324887215623875373627227377881532682413662635254235127856313465531431364237721211373774175327547552354766345125224117272421344186732377627826518526114343466543286882338222847566276311624365644141763682852478156684725333556857635612753161866346688382346618461837171446511835512212885356881881468464784774111871171365663637774377626762342348214747414345278624456711834138716781516647765784218771478858481246766217581261271725831533243257511321178266851641883853367241611688764757144777467433755246217844821366247522138772734457775361633435641562665221114418883526656588751774617838141151646168431158645688151854735441512878578651522781763858117252778173532486234471456727388761655638678785127235348826426863636265231666378262482354613366331556238216832418355541617514217368578568738831563173722367368755411463445428263432473566413857518242553682664574723641147343753364278358433781332362866661615618237254664811111733186753481661371216348741412584564216543288334321654287218334471511723132631132283618211641757767545728573385161438125745721367638361338268446276154547271816376223313331741255462782366424753461767267753837442386531733377232368655516456371461728768116526421375513355583681478336213525266253713615361241345734254426113428366647834854158218524662432441177727212517661351272254164375474832748161544535244438543641355347583558211234755355878741866217836883868588671263761455518735588874742517163251483234455385824428864774687813838328754154313655628787756525527525461535653187331715682124542881523346573752675333883752825773481724262454372481756713881237477435543774768124768418715825433272446471467436528551216488548827767463521831587524212812462424716644163665484343433524661523553334382537776317242411746585552851156271557354665576567884448212316172647148576235578347688378276445515426344666882726342346854514665364166413788646162853525563115643716426466341114816857472373826815526154354135585877785824273673211513518128547735512763252585466223571242115588726888885214427648164175856523152352356836178743428584145467464515347881665246254171185682115225626523351742156534541776886418742151483136213836156735481741672587283413734286462212342422258375782612182177482612516655737432817645855728367485546827567112868743315546571428871363785656748621631272588541215383378444778627777465625345433832835471854526164777111532732182844572566175458733633353243822115564487663317857272273254455633878888763763655143237244585758144113685832853167156872811573184164411853755153568223424133148455555522583215258742258533534446682331288576268644725478682716476615781447122185237672627788246474128224633717127452324261771438546558528568866723651146623762483717666328276558522585837822231412765214283425134251453215184784647255341383755272774262461741314287787823768153842158212856574761521863341822825222687884328783814612613365566144311766787767635256824341784117218345832775557261432556513811431452655718434817852714244415525257478531543684286834455785126237843865185165442245671236387627223476645347583676242724524883765673344848788623444386448714772325351721455837378714245685774176278321866266685543654231724778517186753278855578452442128584221526313587184618342155263783221343161138815835551763851346325451427487177542214847313114736167111528384715585156486466711124881653357388755422666414752463522674515445831538612128465377531488556157556366814213228346266275637113434232522838222743231744377185137512663553542385615378774353753674456468424553788326812436728657288545484516485337638733211746533174638771525225884837728581843212271138777185554114885525515876712871427234781812156627774143323217251648277274877628263667868876368333842435831312225547145618445375331171634451373714627278273476811627656183737628246832548757245277548328318276282555616648251647263182682325111856286562444427285262312148315467177411245643533656446327225752336177217668683524265584385542765578881434388622737485784447282411416415442473556162547858477527365665276124346643517358766238722375574275271754711286261888462367822381577231611438723863821753212412166888536566227465454116436667462121663486665523755265527841687485538468715364516284642216372727341384734166587214245465663743643468733238878416786433656621871874766651325852511224276557222311756582323715133224218854372528254713632673782263284146574483427465415664528716725736455511542378538253522552234474285455216412861876714138748256343847265412588353881163644531862326733868285621776774747368832134414662346778564328661384257461417731565344866114842171155858615478122646611422863147743845763462378551832638833816677642335533462486256321878368633557486121354551872571377261741756612813117462158276321614775462787885356768862781288868314831617583188766451616475367768352488748257284436413117344137151858843454334474671652475585466433486438833336465542656822538248247577441461727337214412621344228864777582668163541881753874116661717567481466432482543547515772758475731437276483217367278364425324463226641441742264143566175576684822372186637851822878273617467435351526381643645814438418226636862124611475726816326253245574361268316451533378827314685253248833863267337255224644614286517211464456876617881162517534842338475482786534431133243665136351214424213555884884778253436222848456747688375742331712722514415841675455171631728561758861171571648852166135277132777742748516377744147657245658884377423143467852426748544265755358267473485387486772742238722816824438367866426654744537565666425468413268866233374643251723133675573588452735758211275334336512736176887742834821848267562878763467634218362464227712664833765723552173575782721687451823711478314568436173864583415487444452178235148444681651687317648284158863564277524371156757382226323278243532278677671463783124743131652124888554382118387686646521685554523265561772676213766535361573845737472435363871336556281247538672221138535534527874353344713642821524543186224878115888476626868682613128311765662837563214562537418617647475527712568856114736534464215144283144316852558148418756846441536747767421375856786668163674437768545884183377837662667545655537483688257173575158276616878483347267741358526738716174463472613286871113532221262578883731767176341422465554661574271533216172323224367483536275611724745118321331626233585824552531562742661453432725164362776586651784667674587648223355481251573523875624261514236132667353417331527781874135545757685437635537558145683216327784631761311733548248728285437374726454474567577113182667327155284748857112421331546323242826235575561377226258861517523761474613856754263787782523372358464534436272385674231477725521456516626344471125247773632783515853685121234313786362311271516718237741464554714147874118631426431214826468551525121426481287737725826354275344446154768478338722363155274364775482565524226184337314728826415814767488417727817735873775225476468267818657244684273431147256788776344878384731247251222144483438663251776838851433555428757757334616452644416158461163555182832453684836366877535682854263336268418588236882752122873816311523234183623418354423262567357376311678151157881187425278165564382368845627426126835243216661688873574146444223473816825342326862821481642731777177438851673476638364118842835788343388167322555458556422311751774271677468331446418121747781878853831437837173378372832422466133382482885488336332185343556856772182751186836638848148164758144313488185785437478883416852555876382712176585184681647483545741438676484711471758738365581662672656852143172134176618825682851683478553566471447717766845237863267784151457413881334137227124841721872584442311142144836634787746532482483683753567121371755311538735571756787154533262814442511244688741426387442634525545385416536421228725651781712136562828563371182561285742738633358247181887154876886277821881782415273877441887357532481241736866552455816855777247156262841544868272768164648134848233836152154632868776717722873556758232146466651317655414382524861588788116748771252662282821376143828581335374185233418367115668637684736834131624532428225463442862312811171243362424813541451344235382111282477581676112617748258358555575478318876654525168845777334852186186581326478872846284823428285464231833566262356845444445332578663655573181283586687232432651336588127124114168715275138355844214273872463435475881511235421746722276323236761161281271427288577666455377635617624412214681545422724353222683231567757226772388262616525751663736513484777576581436675332385647485312775614151183462161811134842272156586688665123786846846117275177316672558756245486187458243622243477613585365525884736341672583541327646241462852832536381241562281664345152246146765214335142237881482587673153441157471671564463568637216472722526341115133248252184722158812654157255738648255454816677645726822614346721633845483667243681178821325884734127324652462617415464285462711273512166724652463625235468528616634732571643878827537772313841313752671654528562422766183186127354523285356374273166336632411236358277621127283211733163314884536444873651246453414421512862124645711662476138445754811167731811441127352555215757248323186784787886382524641876761417377126116853278411532536324821758632137384528235878113331783764417267183125844338218218377232637154751233433553448851744666486312754746745716211213257321861367541884245632443238415844117134584544634217418332848233534316463883353443251781654567887188443332634867853118264387757554217236366631283563476576358775712372815345365572886354556584671517716137531178345562183343772442328677431445131684463714143286184853416526286823368316781626485552717156752244547545784552261725565177733844115428857411537365833446878341411857824455474812481612418811152656528121365655562618446117121282521122747321843714445246524311522224485884557835366757521541652771826466737427822686525278342281878625875723374441263686376565254176344483721362484333157665187453156216175773888182153781188442627187713177444343118488267718141751316322123246427133851447342887675426377588817321666326217866443844268638278127274483263667177332655584122624588617834867665488632751868211236787577644212451381136734612434218134867185232836111674734564582562657454643883683437771834884127274686266235452485768533128236812177364844558688843712764383854258872143267236681637814841315377843657874754188263524124712411884236622686113188827375465565352744413363841225716215727155371124235458451447675863545811448526631875726537483578811582612363543531278582336282288225156343313563346366155772111688284787785222223848522111376145562527413684415656327584578843266434744213541726224848464165483685778211232278582585513115524744128118638726736882253121677732331312861748223772167871625414337127262155834228483852523223553152558651844133168464283215236238354836626781216111288416888618315784453783721376386813563113643728834324312386133674682862336675575526644534333366736583423742361487738378373265825364672656758518877576461387551154272347633341748666814141513267575478827853114861567632687875611245744616616683725278325713148234425755276753785411112588413473584145354646885233734154612646855168655685384864357438558421126528152332756824326736682431133752436355448281238513748672782133846667827787571547583157843726227445333223867787516523874363184714844353321185523342341667134174277671868545787288138266836112425883146861251146558563735436345741725513585388124672822262766842133271411846815168732145782585388224834885255653316467856116613331328778351883833361166444174874626681286853225558523856325474842272857554466187846212512745716824717633176445316877747577258557645467472183673147428246733685155513157336214567826717282421633374586178615723375656542354133452577282627861367531855281281533452236115882587127163248867127361143743318255664432455323732324335616616673845858212444333235568236713232483688661812841354871884541553768747664435225327325362482144181161714316535224556251165366676488246647387566138424426612378175685158468233513441553321455124253756713385342556612631742854376322817314437551821141685876172723521416755372368144221427286865386847688887184118181147627822426772317283883463873153575847755533353673148385374355664264618761256231545441165117635627778732757172782443221786531683547527463377166166358837651436381721553552334137754327781431735514538871724823665256582342335873315864645634167273813234136522743315471151423847887877371632874772428222734234874563311461337376477116276265364722617753545378687187473266718271127811254358327287632657384378882742734855853343776842477866862125868842534834213767662468626835283676436785315558176378322615831288548887485756351858872218387477848787317458272247742638237146437424825361375261522745335238473871843568364776515688828413327313416334821365626252751786188425623453441247316133824581358717471472683714245714786722757745358884733264587645282563657218731476768246513144563328652277726765442166434614132368835728612377888716246373675572542134151885445435126315673237173852126225626856537858473466342244415724165757471862421757252463774153158512348113354315727632868362634284385816287287471241346841774711311586266586411235336887535126646652148385645664854328173644125652552452633216363784468644716342184841118386133878426356437738518188786786166454862266621253128827857515812524516733262776774676548118586427765225232871357733286117633465228441151257354747153564813341433373178762387332714167257557582585861546633266847454246882722637834845678183387281324861127852641745863538867357476544215117732865238473441843476181128378167352564588884657882367468316824446561635685636286323231731287288746776143575311613573666372711742211712736836157126358674431515422162242515322623128843856113222325215466187736735386383651162763481816663153416142767643616581586657185411626122355635666123273847654854685484576155383882728771322614273428536218737687876452173821317546258576428857443657763765885425142656365361765117582547634863244118646748833213128273616761274275216482341661638523874332848424632441272317867888354776566278558464278426828718634777412221242288227155726414344427258441265442863345877234327361253187261474267263751341742367881216674682215582534664317582182777443717685254817132532152326115848226155567635545657521343153516285751174844117671283234145456672867665731346662442634645342578772528788778256467532615286455348216146612634461871126346872175683464644876371167261762436314561524854442151136541383215736881647143274451138453552772152452423283517124737678685573458682441468781562142468118654188628531563252277177885815436713465175143454342616513758812672185214427628721172417684581725685376624156744723554473547286756444673258434775237545556175767118276453483771111735141728886754667124131828685638241872577724257651633722386851741818663545531316145377224716551347774238783788288487318351863687543166513457446486773725572857362665185842475282478422845712617442812215411625733773546234154717668885185254717743666151552518475835242736864627155361183243257751861111484833488535635536842373171756763826253623846115768817862157481683168337588711473148746612152286551251871862568871825583487624848152151216861534626745282821874571752743231278621182316465563687664827387875524333554861484453326474264633872325566831648182488636251224263384557327183662767441223342358587641233112868723556647142764683564644624512158315841414687667881123474432343244444475521174748542756816137322356462588687748711655342112511616141718746231217768164241182132312478454653434217212285362145775121123177437418386413618811187668642656518341745143314882817635366142757378133547845815783533731411246172644165538738815235517215331517678756368858845237685365768825384365613264758343277412157611348342468785267762168516672542533136171856543826284724482613563845343344855854643624731662134378761664766337652631771757856144887825117331263133722766358861138882112832828833211156678343345812112882753752648644178113314414572447234265436861175176174484527722644722131637743811514621172534764846648778223524372614728562815186662415337378614545823446617217542372772621642186355588331227663487375544277154376745465256878738353874812414542282445822378363765753311251512482542214818813878161152144212112263453454154318222827783228431324521865841467358557137836666687226213416511136157427881654321612388338658458632541138184283231138868414141128743746423712725734376237647416176437775226467547866668231641358668443155652223676853833184731666321683338256185787771251531266584363556437246436262373316188345777233443337176384582788288624317172133436341671181878885537564443223555755828638483188213868113182314488157677586883823371856856144553164583352627685171675176357613676236132861441617643846372127486166676533674344277268764166575887532275221555648524211576245431373557766788851873383122645854648554137724621664861862223417737784867755773527884872764211554111587843237371148515782268282312432282224148743481838743438568418387525688561525578251513426164683445111534356711486123135648167428576316732128238536848271686588223854537436126661431418474234626612235645156624366464812482753231411665747516683145486542684626634457642468238118648161318677126262133868558458184612683366148755634838874786463833668115775327572141587634871364546417652773612412531184472228548356778866816144786885312533253757586188478254341585736846852286626823867748863833272875547337188482447283186145864228433265142181282671676356851142875813213473167345414636488454357525445771186571286366115122154815451684614128137764232784615653854884161233146888172232387534726875488112423667366488384746786584284612718775513228114288874583668748886564131127688125678745223656652317477258628316735318786163485383217824556173756354843325232752737531542851243547838851271335268187753145161384744611425428145545426422885634715246887531111365414213413562658343837452253388415536734752833437427333415412842212851436388342671421432167233158252354141564441287281814787684325427523671781716635485864631663375144377157217467116364714867815166464848651314162487544582378556211664346863141251614264468825242378668133443458138252557251372266724424667173583215437843647852213345618476415736338121172444664687725661412844373845123234251636118372332286222513162154261218521145345534842783156232348338386117633752215152324547643373262547417358436132834475358274461325232654616471671737338344761581673515176475421483835837464278254275648177288244247716244552244658283788677283624154775711185267157133862776728832815456256448212625877766425117265711183746435583752535843444866447254588812162413666737233238841462772672874685658142735254158185273127773342525476268375756656851822668561738837555383748272733522458426255258574211251677532578434345652244213271356384754573522135387223688626718118282526877657856764711332678678615467122584488643783726681528455613475342347228484446612734346826321454378666573137365248563834253368754437756226543254777171213536272275636847563585834317435758443328782482828364734864424851551583432257258646286273682283848884815781512276555261541325616566763323873267723846661418861614847868364341622173621456422242615568485488567733761716524645463681686746518842827885327447155484424218425171342747135766343778882167877285281431844587822816762868444254773486256665467455188386831456482416233568273527727623463124461212875712778647136568766674226214381571327358767525282731857335734487586182878531156881853483835872411218466886182472234133386884632328323622321234147457676843263314246567666456851362716581517747838272628155617414684421162823462886237741327168284545358416424528338773821384874314635276884855556534483338676627241465635236452762321241217546331164616725561347548331317753452257575867472583143645633528524611225612256875376227581728732867541271116652176317136825787554315434531766162668442734828764865425537572377512226366767322715126636184278611528253488232177255878557573423262153812882655272648652128166171243548414536255825557638383817628148578183777866238887527578327782746426781357646243162828417886172424661653286727284372883773556465432164381672181275471758162717322235424452366872228852465613214113515142835388577464327788166273533244187524463878422266774167422713312724342531272867613628556347537716216151175847418331856657421887378181265358255185771246854641248145722353338415181215567548633617781622125665762853268831513844688452538786141336554224764235384211138118323313864142438522647734886887486337381785815526487277647184813315645472147211848634265875842363514752526443434157574633833238286542481634843446761844734227134447644724877273538531621132511852373635628514757522273356124718617146217268621448657651852317365778481814545678522876163773667245754422763131658853327315342133515657515728574546578318431643653384155646212323871517257287454474855121741633186757268888731746232744585228487261677343223817587747386416135517543166458745511854741287766824747742456137344441724511476175238111756225851482141281385661384754846255721535448165263438538814165382841564217722184317366734182537488546133572377777372864264184738454633141275651557624636735276128162165751423447818342621818567174257441443673271164816186524127124554578554762745835582823875483848366727212152522776835783147488485767385116827183453142325755754182782867361246588758551235617217857124857572386243187277455336238532684427347837814373137627831452631638453823773822281653446567687452314316244532322473684821771585486773216336567666835186262287713172388633445263832142454371151225352832335553415376432521632443545744847251181628437381821122143636787578588327837353444123237167444262286628272814228322312827668756645314382553664563474362218674347575872186864137335667847525556164657437234234836151824665886614746678188527561876145173378128283727437356221778271757683514583535145572358327833818448615132255651824116117417755651337816122254843321672337161616435236735657742141178717675626851548888252882216762752371528224835534546636713251343232778662725374487157415682423315173121212616725387238465314584618622488536827557431163511828151837767682373717512275532381286858733512686663284472612737857241724141826351678726656738682175264578246863881468734474141728436541462734124626616612723764714138733815423475722253432627255267252123551565757173425653238653564462787532227525434668173644561524751313422741174526274155568281676473422515621643352433678518344672131257426586878682851571224351258245687353117867731755447573685578748241512115445422865431358776452373114361424825728122153512324228435853851333512464366637435427431622577671136354377111451112715734187462242836862663464571452514161427687882577731667285337484551668137824648487265174314728745572552143124634426635223251242368484355364787748577686678481537246363885845436155582758785525348643688283483714354248775444845578447334344634235546235435886542173876126551533254846186345111215561772584556543833312136633321544527447768224473723636156485251618253811538844835265561371862583415766521164454756314318155864322567871584616172468875477575173811787414862378433171388154238528584114262386816312412113235154571671766183453188811267476753271245322677884763758436372634842562153887747231266721525477763885767756631121237418431638412362857341663445464363872145586471245175643187212337523777313552563741112476767616265411842263181361877276433251576285375162472174278156416483456845431846742558143827325654875266466436712134547516317562538752465217755638174532833446518182817425362784467537677533343358151712185245283142416361565556553518428183272143883626648885622568576146161145344313676643211167872386168764367458634157845142411645423386733238717313784388216277428325184877468855382637318536335866263632245631331188681528858515838383216646361146615336837748443137855378172153623845515181684617418637342526478761181566646116523283184815643236833681325533755272451746462382674141233483675864125665463618746857547576422117175343888326761233856412123821787433378377552464635162844843873782726325171277357435631271475324213835511387771631718577585787327677888527483236214262586266664212182553158468751243117682458776653714721434316831887666863527383264612452773262832615463424323536667513656661553314726258256276814664618333485725276858472718581534682635671238453718726863528348727547613785346624566833882533474848716655388638255428415468674274752437623683567721767312848127418618177416664222884684475457784435431842674615584831165671461424134127755375742844122571373432484763345841221384483221245257454511532626715734868386877563115436271458718388383378873431736471165727358344878367735277862665343581425821117812785373261133637576625377178545722358632341364732251787652275757848478628726285322167738656883457382831712572771186446427127153448632627746675642185736615116457327286147616842151688151237863462351854482186267887511223176871275241371285772362187726122421437822626736171727186565246385137486364817313385765528214513112527245616237564751178858318276137838461654111553251256644662162731466418421533557643117142245187732543282725161812818723814161851275181363776547634513558666637716322448474147471817831714463354555765664665221871364444557751325457685268477442268521633424412627286671335148236754524723233463872311318511483647785267457564737855686613658883462885447284367768435666182151384254717584676263163645325222827444781321477162178414642834733574638661416323136137168363445361784666413112411671574471422655485468726276884663326735543618854557435724213648667152215543145552365753874354272656863224287344432624812814388454721788217642652771842137546458881661551121183241335145865372331414131148745231851162638363156284313176137541313321571176178768786261534475275427243222526563158465437533147655278517336873858483542115171723431157781444411118361576674636876672437248385386883517873425774448353674563288755775671882268261216161117474165241777436558266753426236845817538577831353336522821631135623535251858672524265137217811148358565661385453876251667535338865838165752313366182235587272778338232427225542357247716372458158543441762376378188838364171672615846638767252667637321787463634888553515172855625253233166416885457375851245474888878853518258462816282273772836832427365856714614421384673466728137534121767244345842471323162564334483278861452656854583558723825835351223838254426876282771133335557575877454716551741624737761373747482837477611454136215178776157567757563813115527847513442224876353665163143582853713244823372673151324588815711176457551854632614485752422883516313235777346276523718147214252857832228811537851347818485817184857665526356222853323253724271633118637853645786225227455474517425177841811458767858782441451868463856847653586482137338872677685872643117434773652585151224183542422673186572426633847866475416244473453717528373246611314555266671636816655351544814115526144463412112444865586186283425225638548615528173348847364575784454377858411278413154877815585687125727338443858855441717436683265443275678645631742788332562847178363517263633423363283428314728325665283422431736653852853882733165372281444586857851223273335332536646657776163835146331233753665311646421236186256551573834252752436774757233758325343233647484334877151544886725428332563168218256158213313152283185828886713437111527527574618814266665323356736785626265232773316833265461141488651444636725742585728123786745417228572331524461628621861342442251727812163166748617764855111886864435682668158536418565635624877421846723328342878785167516684145711458776371235175382612447457685741378173786315581362463827777337163832821527766811626177453756653113265833661127185663215566332288575665687481286431757324117887525787837767854387463262342142553648542825671678484777112823147118838722356832871837488372552153522564386185753823652676417661633775875241733721186822367214364322725111773164278432265175277511357827816328483436554128246153184576347645275527341323244518475841445268786345741872862328867437472855514885446234882771764577432474815182315825425361346412724658221476217718427544545845233315836835543183612236256752832332721274315624645757173455355444533622758876442586112124248771848272423427758888486567582236222246357351243212647352721641452273874776711171852457518561326242435564321175177323664387428111748463584583766658133138467137128635872416684156826888435718527247342272827828677343853534262646472586545344868661665875412663411235871272568285268657267132337152625483551466673625112525625227855585827524288226636885236645116663324146232651481788318648721573472853346227327413141861853567825177413621223853324111263431228486813265284555557855162364183882287575712223764228623721828275182828285324351733712654753346856147164362687447475551632866332843411483663213852477246411633884781741227235471337648448528867357118286561275314775631343246133418428272711182565118238241741661363257144144257767357362114141174168778851365623534336234537313316351245343522441833553173563781483574167136761854875878233278388243621573246788756445155474164585834848853518484218472828183148342616388228255645244412822383826253472311876416638138137736127313622547516727387261231824273121152873743285822388413561658127134782233242618548456328354856726715678883631474326528521125483161617587532566668436858851285288238775288123656518154826613238722785425824881526578662118337368155656854451122746773674223121123257851853164714453427548422581415367161433474828836672333152188385212712158527161715835886663613378251163884387177631781567714783775478337767575128214752317784632276278524357551166528351238287473651323627574356818814886423357581638112535851557548188341343113742613753147764634381735836743627854841222188268368348512272521875478266146621546147817283445111525212813634655161831748251357421811717267313726871552233138747517284562487476134186371371735575112267867713426583377113186322777182588331677846232833248431627574333336881782264134354367836744275277575321117212513131588264351747652281286617737737754761883674111885825673235625267524371645625615763147357581713554688728881427615566468327857874141883872688526274781687554148254228427243715571836686527673584616624148135654416273481358277615847123822257517873732824547478174772744158476834227426731668343387462543541244362111643466167387212862376181134381832338132861347444333818627724726826471674467378628671527185466738474552555474832588526126631121568871736332384554112771244845818483575766115552548426417883258685123666877581324353614468654332833866651121258544512855581688783775422538341262323574731711455431142214715537761684864822566716712188146511443223615766881371157824538355116478316771548277358752375822127726757113237252577563667358167756283863775261476338376168662224841786772115221413137414347251354334527434115123135473876353474524543485583752122361624351385426867366522716765112664776562124411334856113471872755838576758716536182682616715556746661426814267534413544821142726151758528643215542865854564712267353865546753816851252275655578375362835267537384865283338544578173863256826715818478727443587265268475274425123657518821841657871788163423184856673345435557843682365624874876521854284628571446674812356652874168458786415251877865211846234517154613411535533181516361842162863138841881521578516833687811667667637434546282222722782248322685428837453663552633568384873142668553467415351588543447836242814841854684888547318554416176877347131168525271617638648324623223183188622386164736687381768756255432111211416785232167221685462622523583541876518773251338836684855212133781557183328147182367753141321211825731238633548446323683384412413545668533553517735655181242377513875715722732222787157678516337622768441631513457324788648178412687338168278125856133856551512346266863742751845325521843883717584776722666657856218881256546855111782858331786523113134747141651331575175255516726686262175717816532848422663122482125783472742514685314562841771187564573463373658848313267255752665231243462413387887315121362138628683141251256855745814137242761418711483218451835232312183878881546353668574345467665874738787448264117856452885433876151815446331431333867134376542357127332834164756251834158771863342164864147421745814116645618883718863366676661866134485532482677664657433161623125152525425588135212112377858327534483532741651366537335137628542677641722557681414244424276246482255834781556363457788324538347438623653415687144783425748331743761745653333246285584147647632868841283575765172342656221151853524234452638317247323612367368476816353233624147845813218513241732326216477558143648526546751811138426161525281121163336168761541553735854463275358282688573343154816282615624848738688323554435526842763444736778346868284313855258443477537225726414334434776813813827662271433263663616744141488481266442284416733264725838638567251565371637112475536175147812477444663712528337587215711357486216371322531164828318846667427745443262874882151171675352261545245253352726583682455557434584678382224853622146748414224334317886275271553623117148226621651546835553315237517417886527381424674888835555363673237851485484562662555776161347332227366576811276118286851885434626111765266341652576868138268681812688272516662488782652334264865732358576744854538762585112564657581217777854113658727825243674138111755421722157138537122145545555217748787683463123434338854465683437126583488761278218784712466771242487444326815585562553666411134344674773544188316568415623732835811447718715415753611843275467665661321767317878826861388486338863885532167723775443238175327864331554356288544758162561218513612467488228734218175148126644625722566545237528187388262583854143765581178881516135827667831135328875583543313673762615218378571135681822828876863211432825773556723472663531324314343285678614145481563525527647142327556534147347361673342166566478235588858471813142162848583836751465867575533517621564481471162768162721334384133776385133618853458617412436518487184687865521833513413253864823483758223345418355583528563865862226285131231162382658363561753844331534557231431312818255817358452415537351154141342834224116113823463267861375465267571656427611654541434132635258626358181527248613423732655347716242126767551521568822774177765171857532157121773632511874456832537477684462255238176644276836181514871386278767463136251514171682285785228216818223415532536666773432554231781478726346216733417622544654313457186481116771787635481863311322182631442286766681246888221727137261812681374613384873853514116781572756554622151125467687215574543385152221373184217666456162536532214825121385326171482258377632522861543337766534278355881621567365478313785425533538724753478313722428488617256566227281517235127835864535326644355742852445154747142552654127521715162812277533133885132148862647225113321644527513213883878621517717116737788548526726712473414372747231816737481242582636546664726238876531376366285128673146574264732482186681118612345656862457732646722257364342466188656787347263751676463813811576242787682515451535748118481127338275115753367177257238135746341264465626854727241151133524818685247611452414825587562878478845221156663561553128775643552243762536763771843712661231556442684747232221864342527217368814733274613782887838741362714762715731257516356235111747634166857436423243868358821862444726213113351634688324273871171163758151882125555154242436134237423175171358772177182812521644152456562367325574881742868534635842354587328547583667434473756826753863612622172148777886238531812318276118273387843682875547585483871677286582856325274734351588767435342557453151368358442587544876276388135881187638241486221528883323383443552871514341823141541538564718124878618241233286227872734375264358331211383221518383263512787834753441461742412417625672831724888843186147857784536712164246283686682866657216636423228681161348525522254864347648636363461452173531746211314145667184147143252225856544562572728228628284166354441784812635826445874888816587612457518373831274477736434751687733384223162281314157516578528362387778683868568645183757318213242871556711436482516543378811271478284732575275145786185672711815484534782328471655334813248836445718274172131766318756731431164314813417677654151646386438412843133171718672777728257587418653654667758473527178654411856773828875656612532488454515566355214112367614567666513131377878261571764342767241562831655133128764422853188428575445562141152688747531711427143373811165276122186555513225138454644422616825272734155463843547128437388686772162476621675831337347244671168245458177743335165567443826121544256734328527725432776635484557631323715366215428683863122547167175456858371722347315523734242128352826451413314134383646136837454523867175812375422345128628561588875458526715454388752488345162856187128711423747331438121636522287116687688634263273185127476356724473322885167176352864377614173432634538685581836271327275284284367386856225225783524181675115318147481713431576817114163351471474784862761535275686254285234247287342488447136683118227787227143464663227681455636245675183553818333654134736365655724838375643373528787737162617288388374528844265742335118868654378227668621127283472552445421748736311333411781738874785136177631137257167226885461521221584467241523436724214721578281251654267788748221637761587414586668143713476365435318827768828353354514848645884472474831433134151527578544783247446785745757333172738351638651551746482863665661411445125657614457114851284456417418626373621126536882622154462372251554823835545744162744382181826847131488844234517753372242241544354153557636683438733647543583587151373745224534417643583442767361378524283346454237144384362655488442532523257246642146541675832863785844756641112226536315767552831285577312113382655442538352245334577378271276347473343847153353611315231748231147348638515532768588778738453424858478418858786323387242243182246185635286263514818674567544654334586626118456453482444887134537874323583248752781811116818422726815255265221816657765122154813513735428837684461713322277665183872523476343758416417633211465764823336632164674384767154712474433666435338367787842353483236541817327717544371734556762275548616135476331334417551746124375815675733455277284141681483536777312784715421741311178175417773524463744142283234817823424882221356617623813813883741253658547531882631682572771732527548484343333163232886144784155511548541834812272372852112476836677548637728617833687567673145712365715654624165411757432645376478558284323736336121551684378874546435557786581818855821157616121761182762582242233385417265547381388263473216476626823616862681788713211137436214463744536366142878761533176383711272211837337484176631837354314873718813386715818578348132263567517585585245433151172155267211822441816281413428123328713238322456523742843371783722663675526738142133826712852231364638786248214426325615887272818848734545533544373448144733671261753375437752276282782242278214378364423388274763548563642367652358682187613158324366382134761182632511367574575517387417874651884742838354672838768378144226315458618645623823856851735846545181662286765663625312451625361745573487175327671877171247445186654564447868484187563274178385827374427275775881717735311835427326765353742187278828148713452351533268228178883555456117153247317381267276136147681462766172578118683561371854321426514878213718674842565521153755522511181467886456613231313387446663773575375831367282388327768416445613847412135754658557431332676716816617526218232286586681864522712573841321331528875545517558711634835136756478263627234688346128418662424762377516181466112413421884282264468721581213574422333838827732347736442233551583383675647237322711452634856613542876222881333111222375441177348287715565614624685831135214844724312438865136263422535745715357375584462661877338573624885526122272677425514146651533123232881227443884522525242811818282857878481478487655848731727417563137166672682456651631678426743252528883133745211868114616387371532137487472888543553678328743756665285838728671815761762443678153662224283661727811856787666377512383718746577345312651584727338467424485653344754625474725655358117327751772236285783372526223231827483267851365755741187428488451861374138666358444413352811842847133415168714454765752852643743616626234272223658315187233276424776261344463618388516375284545131616442778226725466654374335545566821268746487185366765868528146744767318127827122714181828734517652458361728382447844645587115576323828516533347113464188551175777666533843377784231216253761428773415411717583666447234417548134335572528154421765587686122131131585427423732627844463175747552676737536571617287515814587144777557181745573883753421768362455272871635848248131142278722534247416446631522132245321888722243644385628436611721823668542732186112631571241888152835586366263773126665656712777632286583316652653186257848276511686455483227181458775535511862112624758142546553286451172765666717854835771112422764532668733473374337512223432317656884567776771374635854756887431185248187363451884258535331664443163633565777447753476565328753635188816555418852758276728361511268766487617281473187431853178166644854724318153328163765743626476543632132633125888773326387613467637416631633883876277564334377216656321151858813282147248376166783232717583481428381714633315674157714654668622346424753784337484871326743725525854311645647584572628464312563125255276451768334265267518753734351844248336726248456363328588132672716736118433344177318828582428586838646256282358256255171822547242663188624428135347725864737513471776624766638862458816346867225781238515845542673343644432213483163133233644777222283633823228236436455781278157876826214286171421232711875452345537844461147776768845184341441681185288218544832735112233746864148368746461864113323533873471745347338846133114343372541574228658258243746757353286412255574221285115457743565554382114638157636844551335357473568771814875328111525524716554821565655611842718557675756577846688232463553314255184275734477657641884718246238788726466414876627417455445268728686414622216537345672873481467814614772853662215744633878683443771867731157377558123886756762758822485461767331248418254531672231268674462884125832527867616838543562574634883186328216846285256211434816166363614522875265481627622268776574544863127645751837416574237756811317326742336176833652675532228828456182884213853387152374176137878348448635622811373522636381654378338752121377115134383573557886575432344367745347447786128824233776812125755181784371582458863851627485642246836325371285158352474888523346136635833848242273372447351381651431573544567773777828455184768568634657124553531488385582544517236512361485455261268425276614177784687647884116274723146773242521151732371657166425478154447587363122846173486617346828358778563441635181445173416785677355378333465565575773184468814646745747171517755341625653341724465148446466851241772456358436474148851666138641788611145545381482386834386867827477257423112651876545565353625461842384564431284547262617138373847246211311138171887634547233483376684382481365135515856478485773248548375473885243717453182548851762311525715136314716123766468213441282743822318671457615138828351846127128216772534462164565267862544142633327266663747882577161384315267565188656611416624132257357462888485131617455176288162763611581515118748342728535243885366433144612255776857562653553255855365486522851542168832386227574166363132886528725428525844482855382653447268112651272735772534163885846653534486471523787152467536626483425552268237217173286516848685886248135854443241236877573257324118512763327237351626141823754224672537838348745823226328564656631754643347338781728557174246425211242566311241838441358434173518634541346132622566657682686623653126742541472545376256883354681882343284213167555867643865334181834324635647464667132475885182152574627882785263673522271476683856388175855542726275853617364365155653225638526282657624552545241613134587115732566335756612836887366473773135388582746577666163458264128432627543426232617111423436517441377613152444572178231541281542646226123223371288668731411261385116674666512681357846154172727375623741416645472273657155813612778253764515143837213675365316182174166127583583873246441632146215262871646682881772572545325186524478128648535378284325856536777883454417857585112513218522266632877127721336414634822568383655751362721818351624775532536583745778627677614443722842762522885271118746377728766662547768858234844788227665523385256833585278248387826374812882413163483527413142833267334524662648145816723636821714347688132385711312644826375433556336818186643733554853351561735225812522282544411563868526668882448362457568688745282731553248154877773311278261356248755245141215554875513586388818885175658736372361737753272148635844465428144847887463657832812283525757437722671424481851721637868551881748817626243737826671433357144225173555368328211474574768372451867284387826787442581646642456411388337778438334251222573677438427856735474477453265888357751668265745141554881373443465847674681242646362657653616121212178245256177324546123358562643721532626322258264863768722853314157238537353866133115687781772347737342173176658661238774768164744348146142677644367845437134175478381682848463716316418118224667364344534542582228838586225577125528567882252348338858671715614265123573784687337374728818276688267286575615444368422427845512285125331782112245886134537155874243665422233427814374734218754767115346536575446531111136173251846242885351751274844154732644647453318542284367363437871744374786637357473461314247512376314784234155488716584675445564812357461445152113468436846563651852665616372482487337637354336122847525214358267188538354754465356615386688625272134866123538122481838368286625585882611658632536536453133362731436353824856616421162835868123762457356728275887552755128122864261612184818284151883114163761886854733224114525265575658635332673265554535843561775321874573357575786351524547226727713722244862257853562125747188561452633631723365322581262841584518473643784287421565473543388751755735122211843666215138165147283636844131282157644827431142827242543816635817368752312872264155728271758818443485324122316663741664315816526525244525742168354181431676447261472714147252157256765441255632735525126543727231576137248328253474653463622445188762246774756684768113434677744781825368345172154664867412846322171276277345251686751251355654528636324228611766212234838561828578227318866113381473873518367226715545238816832141115425342238421874214751154355365516117777736481561824128255358715266621561215363161443124258116484655773763856231834233657335164146472627628842142135367767335445674725347348248428555417332446612188321725335367788148838233414361313341573776255236735718658784771275711277411674337818542536515681261355712571173441884113464631627414881245714757717877332484435363332113581662123461888247251774177877814866645882677668274363646114552647472566713338347731662372716876474347687832752535612716577242541141511483275115562422776366587212353368346456171788844361888725647541442786252346812335881533263624468645162252828748848168345324731482884726177528528425121228662611561158324273144643322433318246284856884878248324243346343856673278434888873512683187638824353576186286145113877277617566153826375111472583477862443285562451768335174388614112352542784117174577282237768371262486576674543812381472354888515745563746252458275183285351212483846787224135151255235651772627573838351463837558233668453372118118844577842383826354765251362832483846681486785287264441543333548431256856333727532646381431454363358124354213133286883533678163418867113233485622467737212678676344251444483652468318135363717543555658114161814415314811387712766333888866654214612287884774856341386383865152133823722755352653673128476672852223182346873644183885713267151242257353117878457714884367661455531163464228164542817185868162235817244533281551422281744322431631425544864885634753517138248313122565663232482747117527483181382428683815742886416224124823123355371241622576224515667761237154347363111857646153335118782687688285415557183618587268157374621538745412862287657575257853121641535232828248572435641416364438552735137527275375751867264624631574644515828547283856663711241888863381777418377343866847632782375524368126815648686357122886685354346855546176626342621515244766261565136612474667746514227562378833515876284557113453743318584254574273557674475787742167684121447822867785341481374157584183646518453242734543537641188567738455182822764225247612627264624268738526763852466217136551822148178647475466614382714528577788416367675823571626763834873362368663441638157636174366532754652628538688564114312614156741365243652637244312647428874655653763718137858171824663656733365228218173445421113268515375367788765771684882812235245671866653681844821411317486112346133664634487575583221838388231734761311426365771213265162774764857645486173667657631717876138282163212728752584126787283766483588876665317566837314181147477624663135636273732358437542481838385265717423365557417868264856883121657518732157668262158555311678644415155331787414626538768884468875242644431367416151616265518513275828158252152635385522778481715866871465667581181357546576334431288835467734843548483127412754548433646488571834571458386538684684554363837581645781325145864131156251324678743882632785452432514281327385236285154241476335283663362156346866572663618148354582724881632384652575826436358627416863586485857723364817348211637471441151343725647218543561311647773557657688254142616658458431275231562437123587757121122654642262888233844854615213775147173888287167137224254632175376154451846423226114126288367512227358324155174344456163161427318182684168364365721224281848765445675647365778331158247217772183551785638766718462375265621721243233353348586533637845216855661853885276743415447388775262734588754243724261412811444162722862526132871456284354888462321516354634528535842366433871277738232614754616211484736182768358372113584155343442422782647361258161138511745141853718563111286111711661441822617587445453472753731756516357528374785132445327262224731263125621288713526225132758813838317578555213162453826768658628326162687364277423622155887558281754831427845674622527126738445137231248833287666828387667662775615488388368712551288652488344811121645543188325844776172626164745876446426428518664363211517883142452151462821686188811167723737631826823722571256247721563852425263835877133855536817835887188323616364747738348111511288865587434732325664465365123187651311121584383438565217461476753848642762261413146556461168721115646778665624577218546521162238313182157375611431455663478563514568332668336336172525553576836841574651341844552478844883642116162516237383628536487576527425788818338258222165571348566115684684376312321217323316864542271225544872761571377618163137212234457843688644443371746256566761262633583534768653317633356638426578815767312773214874878252853227728463783867355411887778165184475187377342776334378767732142456653556851138337633611553454365632873547647341723154775732758428214547118714746253281771655257175215863854818622512458431623487617365627727656476528133781211147544713375127635154156823818674437575811277122526178341316335677214612628231458157557377172516126454586225351233674428886747158752871513614427353751758484815777163781131578814356332347437573456735815663531656456351251128161624865487422484716117234786481567832272124731877578457544271834486675443833581445842783877147574323466726775876277134828731378676623382675834327227321851875433285285358828152743661356325767774363418152153217271363814252636133371885687178454571742333286765764753488853818334428227584772467828754451717441777468325664826367821452213813681434126683652448242844151322671438812267248444837128285284153163628516426137431817887276677552531441788587812117866384823447686642327233634782348174245278845368517887357447643516631248711437157856483213864884557347237237641486742752255511166481378663234344537411372713865225311746266552521151178335533252442183768282358152256741418372482611847567358364446281732766525752523335767662216585665428166318256588243128216553738347821512237774768736427161348843634752635521663245876454284155137271423842617838584841826433813436178143864664382742744556427627422482478523142236377484242613422221455476677557865712785823832254316414248612465112352423726637137475551137372553647786848262172575132712645781762326176854757876256337168625488221725561653511725525882564168872661884855323165373873715713767524511616214572615664151242525376417274561127776123425241458154452275232313757551567188745616643832422352316758816475356533864857165711117373241877274713251652125612462211282748354311376152224455252148727813885135264865254558772886867435334717121114388654338584847652872433784812411865165681272126825225414562662765173353437516888517625263448323887338333183788418777364564383573413315374251267742547615714258267467885127712273417367427581527321777386736155385188581121278572428225715561666862787581475313142623314427584777136883836434444516516648464852435222172484814435682454861833775457232377748272427324617462658362684583476462373114142885132558785354218512338246347244716863528614281642841464718621181654672552642362236273658387357131255377517445657842827823628228835443814615237633722363644333223646633751374216284322253683615545825352485473282371516542713134332737647773218387127768658528152215168557464364175527483152127848412354767214278417253235486877438632218888173624445764374672532161277646342624635362666745664762455321552788752375223814261614758142116343237426146146558375622633738251443353636341563281753582764756862867217513365574256226361425768135545163388823115724126127615377788116313761772128437248676814754425625163256858868653687484465867246413375677365217237543188643136737763341264354764537784428682142428648433754842461826337267832271622334566167761558272665235143162881327525468421118743365835818687788657781318416152384547188665414148525622367174778383668333774357866418632286571411477472656752548858478488656767713621483177818451478328871624114143658856424366411117563635613713267262563511216874642871252442758373438456444732813261885186872566426433667722628115782361855822521363516148227187463561536224446138455261758537164426441667168472885222256726524553387831414317217628514843681226123575333634554383848144321488762621848323635264138631762877864633437425388763375728883652514574823335854542745136176153768817486488682143887416775246132122836266733114458761554678177281851443123183415473118233118884676631188387315811871581811465844574373271176246242282858616256475711237783416831126862712234533114673568578268847685875754317274653875734456142711364516687426872841583814615483281346826737173376833883454161158171672152738254516713717862866844178872134645166424614217115665834727882423185437765752658785457436885687666216641236158835442841581266583821654734248138343434584366136425151214527587432445811816616415822647266576185346713783264862468231116635145245525865357345457447428688254347685388472873427838731615272382652847753541758352332367883727873844688554641566465263152811715788327271324867372817214161652736435324415418837177554532683743285786717454114872337581356612822562142453861328233877612162241183767614687786618666244327212812357235282642373346526127718181873355842225353274746544134884678825421382736221265585185585524423524354113424517656355712464475745831841378438212517788182216476841844663573218328715311572726511515638556464475155683721513321471511466714227431168817667586585322458136227552625325142567326428661532223678547165641886635167541351443426877782425115447142565287343244848684836414657258475685585521672521661321453275283428845284262171747446243567156888543168555421412823547852353822473558471623723124145781123325234275233312584562635222384685768886566886123175828247336782858544882547311324725486231716612552621862463184542772285242418332513351416313434678458541787476544731736264214637674247884632483745488722213345161254641171875768478836224148622747863571335728436181467873422655513436257746688164712615826278416428745278755622213868522816414225188514588732117811833721432743158526145835786383456735448521575444158327787134138472825544513726333221661541551417668824432323143832117728475436268751861687662862747371384834226163728488265438218144663736814527758418823232628324757116487546388338887776154173137418247581838738328686187563763323387754746481427886313238216444734376637166615562818382313524167282834312678383583172328247515132271322158875814373211732553755844172784658346334345185252484155138814471371874115674815752237411462716581357365513681866155815812157464416714454421516728316566448873183778275284842384382825258714121887863158453348667438522283661668123136842863781318862177812844526526266131371816888764255455776245768543561266856513125262726238423336554372134481653375226516447777413586416745577772114734475851366636467117355714111141587741876525328788282572573687624265251572773653373437685632251547651677826878225255881263156211543527278564555147515637683871645664542285557823463813733186261414858738151742155143175852548488742332337378284765163328574181665814614182117154657676515622687845323427686412564182753884231624825254673334456723717663775713385576845865171363521173361857346412265438837665636682638471275672784337381764443772855481574752837438337872323657823168184268438348267665814246135842527132644378753336824817312762631414348763328347686287634412672788823466667382162747216657883632621836314281116257668412751234153156453763561252625325412281286268774731174766147266777684473185171253832378844467725671128187263375635533484512383537546213588884124367326677564827378686126525677174463247682744657524276524171457585875322416867481775236611442712386588745133748537152387133324221841722475368887751585467416724527255454557256833658265625864433824551666483253425333864262361552174742476462323723676283836653561821758465684645821318568332285886138575712862433251776471515181454322562655768774768216267743775824261185543237274212827357313814377854577582126586684236537825121425748667566786432812664233632463523556113448682858225387337475636653368324371245624344646274625182887536122782464755388627241325424873352447342633738787368811158226248158874613783647532473284175416327776724881261674788117213424242171362656441418454435853284674848576428151267623256347237282646364512524281832846336158545716213564472712862155345657673831541866324212157224458132758748714456288325426318355764828584531576363761128611646783381826131285472738736717437277124765568575231163555383613282118276713437516524576263141168248754482414855374632125826881815586613823365584164845434713881125473744771411414754117155354163672865148781716873451856488562711516767446183782786683388813253228466217527714654828827518785213221431352218561562451812851277555215381262684746183681756541853578768856635716475742514827171817875737181337172366183475844844417671456481788172381615866867167833878385462341278857514716624217562211615718726518338426147565387514365525413734624352166528125545148282712182233338442654433884458375426332422454354531631621165664276426635476878188762884567232311552882418656666528415862451572514488685342668426137581436481322436386881757386166775537244362214811368124551756533182575563758846831732156133583757872248484174464227433713657584458363873846481713312282254821136824817713522568586775687756755517518356317234281734164545387547465861687122586341753727426767661866513175212736528881313185423576834342422575883778528575187215715215344262637615534577184415655775376461311167621748314652274462766223248355687737668782621166813234145147526151783463512515886828431582458625414717667875433231661788835587145275658214727611663722671836612785157868111767725683832625452232716518276851612876238412516731877348823518348533356363124664432252723161665225511714215243586718851854122241757547525218235576167231383174636541818485178636841723728777851512262672381358121788641687171787824273122623684361241868474453324738117771715142663755451712784377844782473174821782417244434728224651618824366153863384487878567543511562555832225211551125162432783715537721818276342144527656885743162744511438121872131765432663578724772821588587452435644862235717843112252176733663747382174361755166248126466484774261348463557622122874336866112488283747253682483352481184785111581572356323433464213378634785854628724246456313431728452742184462324445242747787748474534444747641281662826486242176211624768641358186357884317173311377434884881886382147468847775578322427876663382266871544327776467626414767767871348883482845573152668623588854157654853756415477541522742433747313668654452511432278333266527445477341556714426535235542881382741342483631178717172245482237373173723255861726675485615825458336628885287831587144315866168113741416525118735215643216813571434134756864547165318628367622634247623126231544264183721258422715344325838768273353532216245383584135386763451642662783514614168568757441373157384471682763235288664568614516145443288465358834412865585823624348354211486156516481846247561884736317154368826323324837482252641432717831588232464734368485335445376246886868262222248254454864213874263761446628448362464561881848363325368687333835743285854125558781484138828378453648332443855441556668537525562513236346313754871643263184627467658173613857155186113322744356232136354321223382113841771216688587781322884881112165651742461826412481358458535688854814622763121236323767436166858818477235543235854242671354625576575417528742186566332444715468687317756641726264817722288413462262644465156768251612437364627512745773454632654374236561188546681775271224476775887351431885651348723844458186384688783587721852448441885565852331821348727764828553628332537751748543222168436183362854127718551265273346785585787674253548262347463457146683743377353614681422237561875622663581332688638466558466262388435475114341311743518522888135877275383777574665823841231633287676312356125272741684717747724582878714573186831811446881661688546427545442112718723218835811525354677828781177838845745113164351485886836641183854238746123517354758213463448435728458136377761752733166471331478124886382648731813726525525368267637126282164732723532653876818738241826688773851864118184355184825667816872773841816524128225673718681185231434285753255777322212232836541581568154446622423243432685418535587284617176275516425685885725174761817423641357861246635877542518658486761556124134364838481326273687435257558633266331765586362526251352117176158352445882387426233864245528325221151626746387867755346487376578574226867256651516712447376834748861336243515636413226542212353246878688617761277451722112736117682337857645453258846117881382132331726641252277768541348165745538616368354277122876661534227477148673378354266431654427815354254783226123245545522661221726217687516878888458672424533615886535382651246157125833186327874536633857572353632825371828416526385552328214546335863834841281528242348356471614366536671416435148243235768546164484222838573273766148336386151115477462385321556862852287854631348753573271316688785171843813147623177363153623667772635886366645613216412371517163335882277852583563771624745618832181378242156811857831411662522431434817763261235137645713532661374744327535354836416144867232231314333266387652117778365754147135265477777651456714647871174554161375163537531321752321425461744863278437852583645576228633726314222232626743717422241713154772268883151514782314484165342476511261442258344234341656856785522347358244175268683665161446165888482366442157586551136767232621665863313428277531513375665844572864765213187551527413648333451244631847323168776534867857811635185776377672258778762337778847227663381725841585163312281671583831336828563332715736612671486786471142855884734377845278838364823584481848338754228313363351642662127268662344633264586883834782678156883724753276233872741381455131388677634622332588371168772475425148828841261888884612588734143227275671657643318668534164275586324547623187177824764852448888286352278257854445581882685685274516675611255216732781556282611767485533318425118847611328551583813535855415175576146146887627125348545742356474275578778347228411352415637445553671555286867578612722142775417365487614357775612753657743151886216643268823184348612284588555742225481152467482132341656373567675185181816643725856638136378726323877848311342714247156674536854223166563387545851435152224476864242567887418164276453571535878313238125566434422754172711188836328727431644775632115385865564255744344427764133744431886253547888121568125128411424523235251618312335883565113254262584766744462611858215473314722847124468726653628646845272451521318416454621687238823112344813113154351788557471338341434532818811826685527166156187617257127815616833275172354138411286864425172774188364286561516233588847416351436453568332353673138538441666778232158177374357232151184867516126237116812184716682667754365674157765235384742121856718746171176864173578634735581346881587513358354373245685745875234378711112634633653773467522145241232712142425447735663475651774884672555763867616173327551218355331545637685235834333774754486838674723587212484486631726325824458531486366523652382173462634246188748473712264153267222454468244238664654831336321138264382212675328381773463715768663782877226315244873336616754486666532443741364633655483645774552874726662754387561765711388722628182434211631153741481436328471455287665447422783432545344757451675423554265342585725111175536585714236643864171352738584653478165187323615724745688345721257634381732153631672331752338125785871164845776845277833663665821278346637325571154427574826125138664887675244326467276268567147621271545265366811377112525881757765431624216554682267371878622518228776864331666578177773445682664328826156183347826614645222455477145747126417711546512274328733247478381582147682452641138678683447834681765345577452235658628631531886643247685117826188167631641416267573323584173483385655716556231185384353327526555628265576211161518141148712423782377735223328347757522467521855153412624855541382251166735877483413632134357184761866356725521567482664186565158616148721448285815167247754136616377851561576136311132576646823621416168727587877156715238837258318672634258847423284326816683581264417473437265255576874311566558111727752245761378643664437174151143575618873172543578123437583314522643347645486652623533472478731665518468618141218568463672554327757482337832143666518877118237873428522425671546866552327837785234285386555576763234426326182372651866323541324344755147424648574342878743832153518778222243186582478368333545852438447368555374423128658163264474135858574113321282764732654258662324277455647363558633414581453345331245668213537281116555257588728733171581844631331142667286165125423148231363366862214173486168366572512234521724841118155422358674581324663444414575181533435813453454526438768177553383385883215111233862425421746675125362547155244187338747778256324451515127542122742485844756158584352824344213446583746228484444475334337758154478451248688784717137562126883142674767616553633446853165434734518883733174457357151154516556674678522781833748344416734288856372343283373236257558812336228517618134138353634441842261858811476851458451684737533428464363366163715426456736686834572625822685633774538718157727335413162716431317721468474852645363368125728856415342281286137624856537226672332823288774186858321864455231138271261248555346347442487666661658475265632223826436663448223857753868242131333645113324715287633886512422514867165167428684557424245886123261674376637317623262656723124411577563313238862855776267476737542368315378242484573388213873336531431155578478814741421774114464576348766472143427166224322634272573436164877321634325444577883741754437825424284675286314268221885837786338654228418645133644738133562315746338865736115371431338356173334836831271787485285785421684127527871885544351561116555334716225173768483527572348864184534823481774373632258841817114457426465511647867273744814415717328865276256624538473844471837651527743167738258116487513355188251585817687263273588315532711633452118564352676633323843124753117868523158833662884884263658166531483685355522772761357328875645754781326845173866562361365515772221857318876831284132738358833625476824778463563163242147646878234826184818365567753137418267776344844211137272134137774467723543813173286564374776232644135341547826382828154138758673286722543341546718462774436312681868721622575232748884137727857551281267423516786675284536182553663356287458787444853473783847372317823738415858422338618811417344143486814518417541278746757377478677147454165835624587273567125871452717375834516536122167778144171367662235673115316421855858167762238422656854485783787354837462682284458742257334673275377134851168175626843373611635351633724487486668831857215877468438472431331663556223633276633343347456181754276487667656825355346172751643126463238162338752155661826671653388678342464126233615767513267113832555368432242128365776218578548382585547433242244433118137652687547163865386116558726485231151812424372512278531278735127231782138567324512165241733442232321178183435773155371331362451553357327561656622746841537343465381288845676358582282815628655252861832281822532327425646578764168722836624567411727373611574652584384126571826618413664478851771715377583561137867811328272368826542487334436274665767456278742412317141171664217375781415181216187867663648238654248846553343141436384537211263357258674815365328544814734818814686354742848561115212671747647777213654757462472662431562415878461633174531735182341867278344371121338777532137258353232756255257856832474353777778263145421646113663427524782346353634236887618635554415754688331351344841471311565873258387787824625116124722765133428358747615663342823114757457718684375645828344415673767511171121217672831722252486378211215874585338223262187814647627315883848442161857154724775616547783184618862164866827416576887364643121576751716415313556856771222271744281361621722274875224842631772216331851642551824536586468246134723887863725726236455213184413773232687868416786448657866176132342471274785264867843645111713814742836465877845681631832118868458328855214187534566661437134546567138646745666134556511311431774586237712138327364122728562646253535375578161514875667681754446681827532218856325577456188213853542315275271517166468275716252123323742855676578386872468744523854288852238773473272174858122823483367276135174467266523285386633538124626885137821573888487627647511842641741242386643582121885616667582373413338864881283247485652472326636136181276283477886468627545378642121235445651218723354115641311563252786167678337653634814842158844284486362761633516164455637532522867354516341586383415148758126823625746561536733244647374756545414157412122614177428727883543684168516627775851453344631645161247214445331523638858117668876882477532231878212667664512415715518452231385376554877438348875143148768567266877176786431875581755448313728176841536235834558345448145324738224343526226532532666341738328231632183372815224387622315314287827173126277318718532767167574835381688127724782725562465823323552688686277634716433366738626878727654467832477682174357386654516177185885684363442574864535656122831486136451454672665187351168852666361672327655527187531516488235538383422354415322762777584126341765124821332538413571416867387375854425124876876742852618135561222554735238827318565413476833624836321513252688623758764437385788286724148865416758735768315754661122482478688175127312733378722431578787333332418846231537115848163812341641552542762784351852438776526667773684772636663725867416765517346315764686361648812623366523427145682652257288175354351522851632352534341738417188485543435117241151452144151551258374677775318372424535611722437133411745373811623232688447657552467253651817145838765728284116253874826623427677664726432543225571177348657535358416141812883247726547573832534164746516782716674845653653562675735485745173321422657688826742834571224438621467231668636312412538647657671423244321743271472511235617445274568586642655651572662832743156473138653487664378455328584486214214146455328457368812426433243331644188677281624671473733124146172571227114165518324387516871675413122872885525256676214782537137146215182228732266576633583366761451521642672818534884323546278334843626855713332727258364583572646825361847771633424412462426672153271342278848281632474636852133142643731525415265478728214173477323513655855178577368256554858481411662227436451777711122577434464147841773285364621621847472775266161625134327755535578483277462137718367486342551625225218143856643248676371586654375416477664134324383881651373462122326283283285672142713416744545447154431756135711142887643784147551654746516183757854788645248811576137347827313155212175387354178442264666463448668744168762368863256221726732684347422467552258444253315677423853464611234348353445645724334576533154766217284285631827211538288461847345722847471267585618327764825428557353166771345866767252618827543377355848663336514435253715565884735888853843613613335366438128167656358314531812781387631533148812316834887145382381264776287657847337683287677574511855334116856441876385132571116782835242713517213838218333384834733344184442832221187571876448428724233334486315171748537232773455844874374674278368878663711753117482881855444836525457418582583313557341755814263778328347484381223126268351573737726441855342164373668562271268822553314518413787155678867542238352343314844381156332777532352354548578871815177411585115717613234273766464147788544122318171184478356611162851472553473376173482433684367423437673871825634641743118242843885631578377816162146334844118485637486134722578481181174471481631468238226135164744747883883652765778361171357782775361637513771125858624641476234756531381645447648661635441164428738564387742563485266426521532375237557148856266581212831888777362784687681877534242314188677474361618265854673787885164138443538515583274228564152534637547812567287162254611274133466736677411376151866414232282517787532173721483278781871116827764286484663472616355151731428366675132265411247544645724463468734144321767553316476858113428158451873835482487633437184343847854648818225854736136446541741386456324336723262565361831574324156457757586523645363133182238582837673243781132338582567681316516845858745515648568423252888318863528588721385822431746812548535557114145241332274366634877787123431731125225144536716281531412341484563674374387167384454154386485542426511141544173185586686315556465226271382766772882552882213756164358458286531688525612473737442864871556771748781337576426861234378314578234211818456668463243377267322245325875827372887363211177426611888486647243348265286251613348137844365188183666275567617588483856141538535582276412262672637588814136676213132772665714644411181263847265548484256747762777574381355277682332356117454512156473517172722125757557811131332636884763642823118832482412211164761226257841357226156366156161214383867352184775271764171453574563726352262515684762845851365332574821233344813875776342468812236227281285545441624155267164844662252871185316445541664546111434626411526757458864646187767517641882811682186151425781646454825821712746846327426616466772834433471224875226134455117372565615824816182584754318461814261447115116413532614112628616188741641327665827774355123854233224355176713312676263371646638656242646387374558366211332614266871722221858174816384436256671366127338182518586385735222575678352682651427464163322433557723728855671737275541562772246885373337483546161375348227338688783175532746258377472881681351715174337578264788616516565367858536166422317487327164382825771333811348446355684257677445171124264215646342516133857312521687615673756557328627874415533382757136328634433815768211433338215625414844187387431422161463171628851324671275838142754861865116558656782418168833725277862248515136365426478443422518163344881164617358564267576346341344744547877428842438373526327328753724363621612555448412211682637688226184235177588545433452382151643117531715252175325532451633664664184734457525757372134784731265364754888622353757552116486573621286553134758784657568864683161648462664626315542817483822728754411634176377838228665837276752218848346675244263216368146421317282283867182564552287763311332156243186882628264453741166251853344653318272264666151633418215216543541567472458224276587525686452326848777633542638145883133445343537575344364447142387618623346361124228346751562411347216212437415636552834551617487878686448351528342132476224863452837572263325728838166488752787686451374363425177852381246182462273867181343551845172265462628483751551654568561764851264485343677311342418132115582324623327343174627554237444154782351362685854382754866671273332227244128675675852825583377576457248356385753125367483437252857478465251643524727557516483374283135312343315443378136745671251131351552587733161144625858175157181723173753265836118582566162542683657813785178676346458133887734781552411125884674831884283663212764524326822341641438745778151343664713451355138137621317714815743823334161573253124125563153617816731334357373542621776188121571258758354647663535614178882646328315237363745118376472141811543534124512473184587883117184255117476586645842861651151436513211624374847588672437538338688816538163164823457681111114863421274747154412754374372482447481574658454415377675721826152516225651356766182461627611463283512176168445725658321251764173144318676637268732368355832446457555134363178638456457642553355612221546522255116428273345347827115736576412578327213214437225635365671336575173783774287161338526174227832141486775881667386248527818483663328116283328645435484254751777121136452474455668817388765544326188644587811236126423468521153638283558126288557811227766778712637653262841586154162548233764883768752613623127182355735227377651245466735717377468653871667531621866216744562375822715773333165157475158274172561442185838883467813478114412337378278748438645536742452768688236122685535281651814216883522442723888252467418568541245265478351335227854611326372863285683388377551355483422726674581236462158825856283215483251316821236343842186776116313627625114287533473683477687178147478186275834873743746573452865422171617867435416682456653538167876823571883531861772424466441735516522521461537513454787213356773234376881153464625262888825263475871271242288266443643384417756121615438528242856336225666428777558168132543738437141664175121875877851722182545425183417671667733677761666881448644154727585474643288263723554188584646513616242557241582525834471855312378868732523362434673232234434358853733154372281358663552862186677837343647436253276133838135614267188138842664548323212222458775352251725647713682822714155818244436518673558488688748842212235634175851762721476366831247352574148312888241858273853666557623787727874767553557513775432851315644543878345356717172382556274728368537537761242816242357652733636585818455465363847741265345378617315241487671175425543744378818338821825474578631154888433321321712561228534266268467827826828861724733655173461117886485146118772725187665772547415641824325368442537311545388281664666855177138782587643262252735868225733283277146871754641831224715875865251152428562646688627157453846232214443868233763442726358321144831163335755212113255587571551543348543724341542836482816833876277742784734788678884774537783271862212374738314263647716556464236454243323358675616484718423546347663562586422652457847481441645268135282811175882746352315446654564258818874573727153271484256278284252751725257533527366448124141226483471853675186728251733334445272186283436636175167652154485674774568413243442614471545653321465522238443453224663484668856563185818721753264547573546583256535785443128335558874334154846566742845357256478166416568133358531735437241887515223676541576215775127818557415183151772515275764363738685213613675461586115657742621386566844873225865652824467586333151652118882585731678122547372383827186685422854133582756652476768345521268435584554716162365128651713885717454518858263451632564352542732344685351873278843168215326468281628722725743684517574626328825174526417877817464783332561532136457185558351754343366428548448154841486887141165467726431342244317114411264877284872373176267687265312388687214567486684176823331752156683114532467144222514844886662111422864617278552713754321883763825767748633575752617631685673171627418132181232463843573157135153513476342862865755224285858135482416617514487841568544781711815745173833178744886427817857815288717187285645715144835686157666624183418641321434824174755523844323361834862114213316343864357356373846343511626827647845137533267552763673722423754628822632558162354238562371265614555428352258151278283881124274518717443235112738715214815381426117818838411383241331627326158765324366274814785824886487151646865363651212386448814243628751243746172717687343338624685362182373142732356182121153182685485388651741635324273244254383548778415485228651767753835134187863713338542476231613666261665263154456167375617465313838616284285216821317765378818263718537515735274225688236286172162181521154348721886715485768866772711615116887546235744186154638528276457113867341732731535665574488744641814737577667377544218227188131232264783555451225283721386211378416585517721888225464283823522558777445826776685342631833871146182512111748227618843615511671178281416541168888871222372448214133741455257127613724828668371351332446558467847276348262286383422256873488271665888875712412414636874281875512116662348258366335824128714324135782173185582832481412477771888575454421141333442487213842641665277336331151854661586452623345834636336137634212826562431362835365687367241637528743173721111216373278881633242235214582358341175353833113127287728764686381454657151121127417345288335865672256528581688146561256181687736817661238354865228835611446238431256878472837456146577628182841833327863236567378686238137388153472377551775528555864774373378284328734623772386781334462756342773636784247867323356661543877153185462885748272564311135378282462617764147135288278387486412618766623184587773612316243883151114336636773267584334626115177155587837313285855155236787155762186748666856422623213882457641725186151626437386527873628178721431213272574311132436754663352464244438376624687541873411643445558763687161515326122452273137683361581884151353561613531841666618728525576612567315655455473643682243712231386833458612228271121315652765812252517234155661778418534722167783821613628372126864737878246823822843324728627461754357243582583754743785763271333455341268435466752231374668413744468153683216572662416843583744887764741131775553461724161155511887342124283634161143226387418515848152237211674445434124565586176658842468584647847421774133617174835272782222626554313612648413416881271868231555843818761672882377852627517551724762645774843736531782323774733711172656626688118155877722315556351283735151662634337611811135637444776883668518883758816628858683247546871541511473134785451831212166422575382341221656262155773855387413638838852677364576654156372133113583554623251224771152678758725772137566558361625786854515457732885728134857636715567527231613818147621126551237744213183131176652424583347837772813878752728575483743733236872232138811253712851382265585251363273773855286152677882227343341635813854544711674541723354654427874746812153737272834365381748285378146252234553722715145778764388813588762234225163537123688788675145682775863266538111836813472143517486653676816816616167312226247154636654355123373156557645156723852537631382286262724558762524568683262252172688577113855117422152477364468388253651852538142757853778812532127483255114867251825712762622734343637734838411463658783554744765618147317248856232262414578623388261681472467181864674237611536224843182347113751287377244864552556536326234261251674167552167338852384864481173747254678873372377516864818677158771248684532755375848146615471155136665138722418613663344452354436181653242452828876376483377637136218231335287183787233432864647155634657874453717222262327782353836818463718778561474686442377637834831322786754818834647566115715388471566857815877342855265645872776514286684242842737454688374167778267534848111884715365851863742637252646224824361586748735176856732663175474571615171831535881571446712858324174648342162552278231512714615718364265462377516188246826354545238525638854615821512284587642252773456142573642412687227583465553855526445416553473362136161222527736461677338677565347142764882432277843336381254487858132481241327728252452534578465335245866188876767623836882784187222724134878353134473748828888727558162531253452466711653352241515563485116828266413548565458415153863161737724162426434545546748715628713544746655388451874328316447125848171746443154143542247852451525531672175381763633727663774836156681888228883732213846734374651188274263757142252226515111465272611276457358444343883268273382567246487372383326673588223423365651316712881333551776354316538784585742841831775538335462174161225451554613657822521664743825844571315645662432371416487781385421447562745657873883343673727826161424515271635822325581538131687441566145718167285422434334464864521382538435814223365465873366437554466426167288482648383381848462728256734241755688235525278233374356845136762337851578787726651246446128683536438256136567841825665434184324153838317564155226378533133252236581227564176267863825285277381535314157266778345634821437854876217624446782636865154266658727547816822387231433118472757435241616468384127751136645881341852582817444823684464237686427173288851515613843475758385634432427423231386671585267766381631542878362382661725118775525385318114181881154613313352511685236713312152766817234238141126338825823237372672412471485166686358847257145223121368414821551385771363146535546363261667674478124751152475848233251376722768632173748173533256472566754137617575838444757171738543237341267832475138512171158574817617425714122632387556257726313644275363645528744651843625423373762185336587248611384533745671156824227874417365162584868283214586577366423825422242344724231556824622151322551744564656136252741878785776648688656228788565421228114358674511275814581516118727637758737258277444484411822454337621658272761571181117286143432771526531617332412217887267577736777487537162877658525842788337816323145818786538271365521113711238414612547171885133241822367177188156272878675257148732834481388762441518263685266148818457444836772413826373588264751455861328616843845648565452444551743565442713217338873588414435428463874735222622621136567627238263437822444325554326571143762775788577483532753275833634826755431158817857233426666841118784814828526127787748216757837513561862571872731561277564433774846888227215855672788256565524514361248826222648735548265476744861681653832216755116883532872848674748718836673271878718657828776836517516334258324861536875834534372142332754345782542341734853172245347281534764638821661665861772875465437772854516531266761715611347476235181147662687132772348443777567166777521656251885731734628545843331157784225775365844126836532762546483414172627728321524364521342681111228341827426577612132235812813122825564426141518417681871777146248453864375415853778836622483277631886171581783166851327237512174138614734513871562361284655728828581148418416431337424475627671336832848475788587138444126541674134735743438857757717278411575547837417421173557815721432475838583311127736148548226858164566233524283643426372768552538883323331621672884678465127341815387236368144233612227726352342842351687382665512633265887683453658334251387454686114364181146462815127626263532318782712815213414673255862732527417654414132132215521167846718625152582611774681348425726256225481251327115545671578666452731371486585113557285714477123356481481721326278168228356154156485545286875614676285221483558318428645144665633447536643618585147618328646725626576311661228784362881834216475213733466545285232427166577833413653615421831258867775511118846372228721571384281145213863564258177831645774281865252448412577483385831414581647768674331478385572744472811833425483523336836542635231332174133532871213515256188613712861161333287268235417226773231124782731246133553764372666141617187861652335651547132215565536412718562614246316661651223443154842885752873578225777556711265365235617816221218484841536521737446524462683464474765725247386632458886633171224381843434853632544514366544263688751783758688541181427743866813747724766635381418427863865623886445522355785883524417314542782516265882577737188286884824214135417817163816372787554515186486646584116357555442283314821256886346644446282515681122213235572313864378865725354132842832388426771317265354751833234137754462141747352446888882365645236341225288522766453822215441568353364551227184316515725131673377372447438337465735364877526744373523866858412845272636447688136147342883581784368242546126825636231835355332738628573774244616188178424544784336272565641126435314815167243546854127373352681387487655465738472584378375455575321756188343847213312231445561668454161181875662688878524741777421487253857285352828766252815717526333334711843114177464251611553743142573374654727554676653465656667786284556587454588831867243766652841183623435581543541421417644887614163826542586857551617477537117122478633852314638386714534135543651621872262542231722841314764746868563751561784773666767724884542114478216376431663316777874118215651642171321186487643531831428184235383132112726382544384445142251651151261813647583532843216328385186171747772637587458661113112277553646474347686512265772148836482622461852332657565158331882531413646717812774236718487276341181132378261127446773683562213867172815733782312876355373261157822613382347167336138363341353614843277173755558858742266852732333212115852573167128715482362264572448644483666537127333161283317453426853731244823446643467668521458224264275336561745271633344386317422718112625711135754178227815444582582464624684838447835436862836256858137566556261561263761631115317372737141764426514781521531737655415316173532272637476416278522262463167182276146544352566438622457752657445755421513651168887743685527363515243864216714464347377881783644335627688476433734352742777653755873753487132874325281835766658846233267137736234711413651132826616828773362855386344368167366686355784721123222423851464161686422562154755134876243355657427125873244581784378618884238662443647653272227223678548123875781751533541628441478348812268447571343557538541374827725613354762753228662383877466825585426781176167882727285838582121357617472185584433222412432318112843372271615758141387588486383277475381832213276822432177376682418645614532718566771575428645853523684246837842678447545526673134411782171445563514138347126328436262371334757227387323184383886613747566553344778667846172472613656114766167152188773257462518535242335883314574138144757677632256155545843411473374435314666548854475666866872811824514177448132248313118454522623674241551222335236533275587635683764738657741364683617827751386374733485261766813378677123723426768265378335636822845654643545333326555455124485276423753227447345886142614124337136822313144545132712173241241144446543624267377537633654778751881525576851388617272544587438238346485247874455368481448353372766516782375621744753865511515752578728553775766848316763528762678667288567724225123458387361488155542464346434142847574321431113353411784147217188557845155655576877864147434342886687253484822661164234574167264581373233581527581624267575168227313635654613563684162886218637228587753834256523881748126185577436868857373612861625534281457256444341735262437181358648641456267362152548742357353824758752247875772113547471365354418355176844288185321665668384645536644385474871572345523443873136766863572548664818221463321531874376584758425763752587488228766211866148856234176282632328216526371884455248343833263384812631157227228743764267184481582652663571113177335722337466535467544467565834343875727531771476216343216366481658337647482531721523583335865611388251511721818631878867444612441123271753418342136884417545671788163725166661761235663136665311274453638385848662888218865186771886258758851886175865558637126173718474176162341843158638537745186642145443547337614374287132317862646376312642218333722575413361232436267112737767118836274561351484276577466311121624137552377337415731264815873645155811235535365555343733381655737177787322725166661841745562721628215146787112638473264631573542152633367767117825838363126142254173171764345184387374253854748254253811431111445861186158434128542742552558364727824371331613524464328542434525174428243218132248267278813422638777752648658533456835735747876554316271723365671474534715363875173761547875423237357535152126335578544438546566812654336138768136847856462224822153285865418317668264722611158235244786147878425437576446458442165215861665363526465616428363145623811643741283515663375263273424762446737814864217532128143354732153442218285363126888488785835611141721716134316883543227362742523682478172222477682611447388521541387362171337287155165412433444144466675774361734311557751762366323687343465218518362116784181638585181484814562488661158454276744448488446563728643447148433817343757768435426157352653315553174338676585243518111846234481685278756176686624324417182236263451433711146415736374744564882246848786881232722218554667156247788477236856185813837184766281841474366558337785275555618427272236621173822462646212472381615737261738186843267785613532618258646426885688663152682652588514444786453828546852782623763773884168474643556248185356613557717812845118333657663255875747387157848556251433785772346586333217687321885817354838664183635623143871566267558623676186131357663521277881323385651138617341766127726212843362714717338731826285166384577872137215115558346862247874437876758676754318231587628274586442727646837468358468847563887343572153326258152617663235425315264465487121585753381268777168585117344115632314618436314217637334738216578316647386186264147437812582248776222541328136211158758668451337655771813512783484448113827527181577338575435774225772144686485551353828562615724362545515855467264552174844523846252672874282515622735828442432224358246636483855715314318128846132153473733185665862483365726538432446725135568665861816258718518653335838242188283353675662223147442811525782371622548175884317158221868218316164288274464784466457452473114327514222565122557754661777675176533855778872184866414173856435755217455343257255855361525835516287883484411382577162284487645424773782338337273181868374225626615674574226115811585283661233668247353664444632786323351174347327654182115265821318684617783582456432383425874114664111871718813322542488657134287618464252158152266123147452872718445852233217385683867774667728651253132313727477441287352244768782664885756652286226622883378825282547734218478766445315513581211434824342758736247667737254235835134455642371855782272686276331833174528443248687513647165688658657278671112561138463236416147171588254324547356263253711175878148521158114811674688148724373843485567274635483738784472468764621846664214654613643657814847326172654745276356677651141512183717863124543344513137148768865815668761232225543555136813486187234212381413633845247817824581123431331376316512733571162287388343132665456777556525582412211231113376427256828666275133724784514582711625124846625885366622168224415146345741268457872223188817455821652332828552116287217188541243768868231675443232142727473263456813883551763185886148844752716567526778625832221881555817284441713556128313482247888151741371467483155183112223513525611315143777851468466348666527255742456341133731776517145684228311515745525887843381764381622328361441162552426442128528546437132675782844755451368736447152534683847288344841574267718671444821821686631725544156417865126277736516235374847314654427686312754512732431721222373475252553615226115217276867683142333474325816214434828325775156745751383543831834423344523785478135251175134226355556825814428182664472884123718162663221637246364413567666526524376675418238833161386721477281235563264684356661668147753672362888766812347661616362746122344283676377267135265563644212816823887682428378463625658136386688184753162656513561136641448225724266243117634872152436267751338725111316778344218452765641441378588286874875886812254325428554114183687745432633417846258161277677623467617836876477758336455828447785232185674177434456268331375162382481125233663628183825144326255361363452438786316617868362143261364628838417245572365353236241274523265126617755158652664188274585828287557441623257422727415832273183755351827214145734671734842127384885577468731121277337322223128174638245788761775367166775757463886526256243887172878334775332588851676357323632876418567167387874818312733115364812567144841737788778568846533571743346432474863717364827547786541872372438422458283344688545215254177281748644561554134575683377373262343263338442545663238437863378271167466112323786216738383527215828355163815784562221748117784186128683543237272154248746386712111835281263157764854437137414225328815523575462427767471777311817458521575173334677226862782752654276341745647873684177254115347456651735176864214317771282775527883146342114484782661455683822622132463668675734166628277236418278182435113585552823417332748666346578146315821728161868641573317532336866425267261734484443741563782285514121417576886447487125184371731348378744513824333244741868822822751482428611744144227362751622513613445176767732358743538662727258261768155548431115365317281865587265246387832838263663557255465287763218888283626851865686331448886864764641527771866445635776772268516662488877864674857433266143168616546232827853147856731432434465775118357728138575864874624222616874718272754713885453532124351647184873767248214321368577563534143512475366756855883511854377387614548663327618267488282586125452876741242528513423848664336578673467248181126128828852185343377571884711563364763634833264552871876166274277352234674886128817865678166474816138154254533528366841716225322872586178232173121412553235423322441157647856838635442661873212816128583144714663327152248236336185821832113138431336417126658135627476543756758558811378154127386131355647471845885833434814433682436617446411881258283358752682532812642353128614331635612537482572323224225156285234755527354262364585823285512624255677278586584518667186313472487133527446686747785581782241456758217822381543122237326246743235126865662735633526824635471381772235683745825244535165274214787111241475644867477175613681778546366175346613252626254238264737532838261787273852376455173465878178685365148115218755133476665553172575776756867821433466134545524477826568865724426461148261723856628163828266518855565572334526857861833458226172345861784722424872665676214812716188135126865434387426143544774281654232585247344175456621665744526511761482272251483234267448866327311148837254781628286547284826627787452766823574561781628117741278185247535771714874542528418187683776336872662226377118126125552541371847622781585313864543158814118683262427133333526142323824375842264863746176137412334582138524387782246521374634854123233251356643736285224386758822812226823573833322718234576567458537825741213542482175548265616566826511582523452558661686723576847588328541473517272241523546247663615225864234628818622663853721251363535158287657621444741788464167332683573147726562113777625232132281228524865637447773652765135322141887855225865413748132315484687653547666328761252634822467887351274157341337128378471583443845863175478518821845471111452715358363711522423264768778532372577571767871227215373232742845113521583452141851245435316186676535685681514516327531621121754427673223873111487351888181766377752234488418127821618575332566812222332248642318331855477312882774123316247168118654387287857246255545831637314278565455241622443157346826417732448674777551762164557856687136842711854416273365672233813373166354828168674687262155443341523815867574228647131845246461188288645581527543826116632335415881765175143856857255524454855152217316526778534156617251612824184532871537242553281612333282352324418432843667654781884828145234671284885337114273262668541763382421416848728834751174627682181232843613275744221185456833637721172112436521848647754423483245148211841662663683265573683876446437238285838264372716266262475788312372572417883774567745888248166385243851741675112874143153641368741745776552732126181184337351812156312656848117727524646448246442642714287115553824475676611812176837346754371678726152677778143345261542148676555821157813417712424168241727544633717317555885114517283371284267218816727827585625542748725818421476636227844226666827518161118647471682253674827661426183784635434511426771872625436143422781114224223781555383736546748614612733245482217443436657483863411573564271162765728581331283284258272686681547238644644734254275614668315421241762813456432421186158651358173626774271433645611323157174177826365778433756886785181514568132437513522587267517676734357236171747211156738358136576513385181744521523876718772588756285362443565537872263757167653338535476733353712114876678412444354513772774135835138663524727834442336224587646246713231518152216386817163436727488362428435242862238182832428224152864766187752171548711847861343585548845631584555535286178623633286277621366432842261438416766756262113786446381274337745387864357154114724414238652116635288285117124455816126158868288478188265164528771258734726413341821546221538214281673722453454425266457562278667643774886838342525366783828872623181281544477211784471462326564534641664618235875173135835252614165713274184657756668823448618773453676654188535217211222642226563437264568583718386167233125762622517562482437467161844825481368181844783643448853814116343876785541536856812816767337858253718453113668456613188783375361652553532814521247544283537165716658123778331352675215455837477144613881524626484161273765518174514511553681338483471636883767728168182156156656865817353618487862567743215777564635267588217515758518521717522652768585416866218638657634246322555124634336544524248527138431243755377371612221535266866815686178267615472664386811267525255728646217352478727365382621235477428188432645334222657428418146455324864748447751572431342313654286354435348672741688633524876453758283473152316862541583151454638525524736836321471546722534883551773753555784833854633555855877155147354848188184424471532626537787534684383212324458472354813743612662151477378431338564131125342514371285831578673236211317418531635745144282121131751447875714477133533842851534575221625283541413463737171184222431117577748551583763636316477222237153516227867351281782536348237611861278176567354343252753346217252876751117883434311585838326712885542557127156587254417145626562286828421736542864414725443661848531448528761167165523654132725445281212755737335457431841188333548536413855778134837637616516861483141315888468853385753174732467443573638645537437618174526361225141111845285127585288522818582782763857154535471556577765484361556828335687782827575137566684755514236662152311647316661111182618723555766515668268513614628551548455682427853438485456885727567574141843714157557218458611464827378874824385242533575446243232136621173212733855818421734127736255253144823278431148138481871565157152421714447113815725811833217114323163423824324563733733728636735133474764762338513552534264546228563111184376813235174252522244187167164267458732815432274464544446821836768628521223117454574127468463748477448427428731878357284212153612542154555437576123718388285463376558824254878451647246226431665172143155253188728544323566518127872286667663325275267431251133521615878753275368586146227882241861268122185583547757431825186174266735544763724565478271651165452782436728782854563476422227731626728261748811157352811288668381843836527568364661537526171171772735486313241314836778164762411681248446751557842686268545786432443186638454845664881842287431661846218124275643217718677432255358846558163617525465418852147568234875558778347752853844728272712766423862885446513454845523618585234482577777248582852214444184323752586135556472246456851166467411365635277886621462727724227538655825511468637471553411523375317561172284757685657657625651347284768657231156388155583264758545632354176771578173642525182122582476785341357866216168565446352411256676473261556354777882627554341875523546568354448245373715331177515561383888134144248528227726346818618857862863154815484843573861641533181273177446655751175473416266565548827458185377176581782178642863735367846264868537664873424362651754557862468187552821327755587344665458363277634832531166682222577784437315245214356431611522646586685436647267611114141188863687327531215678415116472287252226158418388434465876382121886615471887824467712466613721561837472262633768356453683842167727563448672565257714738831116547462623371214431276561251336542148726213883836852377861663824288676487643643315213116633635144168675241272572188158732784174272125511324472342257711876171287166636468763117381161645118235643316648536843473446126687311865265741461134167163672421242884422662617671784682666767558654766638761617477826178433375741886556443274188471758517786347136348863377386212387744674127726522427423742238337777226628117528637336577481484762681122818351888473141758858142877876236167734772653747414815253852342117587843217453883381876847177848785385566413483688384658463357817513161466623543278522157451757665647385636157163684788312884421872677846553126375632327526538324563357778172666846667586848777812713572275828364516453613387247837356161338366326638868815721671415728852744174453821821288757768126517753837863351423437174837411766647612417644743753662724355312563231361612255142364446568758626635738881173377224635382847826276468435284532841113518713352648176685315658528226267224246371875345763418826548366147238753521242435632283847861542165527878664713143262556824634832451744477534837254166668743313125616254866351742325183633554432187621166468254352731781715755154883815323235231471558511773158547485136141261817131551618612225133382563385354253228845822741113313268485181112483384453646744741157764833641876873488668811182164511861734528314624276834531713254856511653651772275536888631126178748712747523311853527277841658333771665176324115836722623457377336811427755223726217341655241164335373754446727145648674888653253361343657486271742468535117274471312573123721552657312472866825816632141172733868761565762258628883163161851347281857481216744441443721723543438524821117483846587836677848852868162148878341515168634287641846411324273766784186531155421571822828346624163148713414826641431222256885858363844351753286386327433788385287583528662676126618258537137526443482138864345526537157862483716124387774268437647558452552537341438273388733316122864281121824554162157141867648543532338371315628524385478713733655575463511742611735841787767643357415466441377857452411844625121757811542468262173888674755326168868184217725888847826358882365328887377756123826715242116811483377726368661868341562347737757653542748616713714437267142523458328513471137177272114527676673324262218278883472273615468216148552343127827336552522135613426838263265834433647516365546875245258233482445671231747187446861183866815256634424417814755123787155446657387438838486568146425831442716613442415124767442751441284364612846286315448354138734848343423577754281742636111681772665174132587813684726586263341474642252311752127411736243444147523635832114875633365186836122861818462262531818216312615114361857764187822518578786124333458425217316268336745784266665817851141867345347838178116343844736816881435828378374771475478568228575635224722455711828457122814552675363325466116717721228425437616714735172653241622631348872623483746142824787565316436325256213247512781277631841271878115722716267154748678643452225135375555843344785658583515627386524646331352312834783754385774513166365388238373738712246385343348576273762687641372463153386287253547525752222241156432337657578583455581618781815214446812636573574613761326377484887385224748187267512344642456516115634217177512123724274186647457676167543488667546135141722226852327772187624278843153131358524653237316144268624526881882828851361662342557421778538237878874677655558665524368273282551225671253665542764811728615831648366887355778136123752638722556441248671225775286568483372436772753376118354733255182128238523455354131533816882561468153164116348652415773162384132146113411712764672738235834487362868871151314638422382881116738676574246843166818648584312854878344335638832678354271311462541561854433132851783367818623776531586615517754548543431182348688337685253887153626836136737787481856477777344522872674433268628415124857373341247473425712741781368425254555275124362558414471473425547853171658745887847172286415655121135761642842412771686316848452222618443544442631386684377888122358763784837756753223527116178861426415785347634823861667436871132378635251171272467232842381358287236643427436541151251371176163475226128868578285377373176644687321832525544268657256461735265186755674215222254161366457144541883251542168884452185731212636635647762547533845755815686855587768513666271271723128577861586163571726544257816217763636346148817851271663154745238552355556524818136763245326716652554718421728487762755474735467338766628562171864621825418556178166315328437271622724164888554252582681643167211152155554211683448325358363141725132243564388244743467112173154656472614784785838743644512727341585735812357541125455426355778844187377573384113228736263652313727543161166467686248763284835713634837634447864388872257622787737181761371247666252176827664357157112746821457141855326771215626287847681742326317838364385433258553173653855272142568185315622543542524878114317265261462831751615864823433821743827654437213271436888747231765237811323233127261526211171767376674715684666443262782851516845678151385652116884168332172673826738527254131428436436312241132672641426738867427237428633336562335147331874636528131881821246447842772565848256765535524247872345571636386728253615833344112845213343537818885263355346736527715788152828518672673227751213181341253114134568736155816187164184768176546614576188256862338414782416731582558325711284383284671587271388142641281816835355781541334331835715784575247471631672422524617754483847433866188737848281327118228171584486286276641526358725734442412521336624374416632574736367424666366887826436216122514831448872217487356516886317455815641517778335652178667317743114665775334724181287132832413774756182324466762857362524452781842221458813281145577716858615481523355825285216461312164514241262254652872167662718672142253245832457252464812158633736628131333447864666236888562722584156276437871854636183845237143457746276162766281568851543817351284472755838324871833857845771756815741418842448288564158516247744128131134738655522626567782643245727777862417135287542387253534615554456217861578118218621844872537648455223236647627586646744864437341822715265147466617373441771371843733156622224554458414157246342281512341123568672522833717288828646866638553222361433621511287263435288254265383386365882817482644251742355554581773168236135715282843165572636372685667347828214418472811731268344762315267778885783651344451852318546138567463813878828322113814537737755382658526224123881251614254648265817768277345545532358375745323571866542476886245142578621337376478614848217438181248722724358183134224185545141265114885826773255364634877458572783847246825211484766232677515452645556358536343631113877685841725442633674827246757742372843134335217244582825667237456627881124382215225374557361223545311127117327786135482385123334434532343771631388615444115815158468364247376826677227587757351856754768666134688417733625221263827815538832152568458481818635887454166156838686682542338768464828886458142127456561461854761337823358231117743266814116454173545867552532373381182257851338588753517436654861668781346376813548716248872337482842635431776237228441334534831282864277866386167122622731834114287476761188713571412255357454544478666643321644685872113527178174156322653377723371287441845533137766888837616615784235316758233615452445773551188221621463445422627868157463472488431276172588752225221837772686511674183847881272681444732587357386685586143231858181443287183528758174455667734331344662431548182516152535168413543666471532112862534774451382323378837847128812264218624754545771468834412813275566537171442685418418411617832278848447457284734761622473845751615455252671168216347253216388431565272826628641132427735134837684278142661611411352181614766533626372128175285227186233211538517385416822517788555877365887545375575344261848765351754323764362536721237377835237728222285583752181818387252365153644751126362247235265576761842215352161654568352767183668634825257124281357258442841277721878184813482424738741882178567355345332667578838511661447462714487532465228772748476427825215542465218431378261277536487518768175363266815587522141671511184117335628326565817717845813822482822183885518268641435632881185777183182228245261761143732882456855222143133546384387277444258741138244246267887384723353647388182823414737627224565586731351251128165528847768776313185777718572185616211844538338234723561278454872582353423315838476711535461554774676888371771337667731344866445511378717443542825784587175685826614582143386158647154568717466737876157843658528135467348775127714275561835787757814788643825413781447217653338736862443714851316127437264554233721632173277365566328213368672831114272285878546844734757623826674663587253764268522786268526755338278661127434165212535276758242136681713523628818158566858841623373121142314864576414716351338333335316537571648455836528322754287427147463547188677111813154573122583841354661644242287214632681518868515643663284374781321585246281757422355641677734563522213578561311226641425368325663554462185236224488287734335558724837737311688214724616186643331788338131715686248515815541561228213123783438144551157373386324745724183133883128681525545243327565865864232483162234675868367634287474864171877717346481134556842471563842118586422737446783246483116411571218857687442237128554764422136226728347258178451316741887217771532133848526258256511281866752765565736687118882512627325686844187372846626312533462764141484861687578217517757652827827664121756372283643485837178567432714586874161335371441317262162223337526633626811152173465643731724676855887275841628853237471553872243732226672743445734373484653577426345113757768323447674228244656156224511844545571855444424458155777284858323742533674173537218676263328256211121187113425743771454476367155764734441658831317121158453857582672626482454472854856412484823672811556452516652724464261558533424448175882664515622738852774733276751151374612863243685544526741235387172123325588568174146736526745524426644264777455861221562243451583764347686443135627774567711861743867617143823585338485843118151444885751752776171836221527213344643385347136732784473242552876357344547442631776785125372145347133586382262718285374862162613226432732824765472825473381527448158833182277475674323547356117673363643457215441562883375153821724277484812455578464461175334125431348331552668573728723325734476262212726181657531278522751765573483645112177887525534311483822227283454637137555718316842844223612854877456723461151622815824255116112717285517214845285485861172577635252373211514724168526231145825582438626473525527546866662821538668312625867221841316131737772528426377774553354851654346282344852271165182173478421812232435777116771878144158861652841174338281834638544648616377178257356276731884724785625154567458845633813188137227656352365777762434332387262878455646853232825734224444837186617263764747616278612113286166333251213687228846563444761237437623631155847432255581667777532363333845518328234744817673212317642543268711621214282646857258188841256733865653748113715327736422514854257483777677635227116355266258345181468714373865366167672814818115228688286454176484828276376246735612371185164711763747465656186536652432648726718753586732137651186311274264424451475125885761576377185277276328333514651346382188555144552881771111276317616773438118155354183213887577355643682283215616275113157826422855822116134282771156862723152343535316175585648652824255262463423851227667813535633258473271527473565118888728173167113187145851863173638222176488756755251422468767231758834568254716428161377352642433386321343623134137265557338467464285286538432542327544364772634124313865578331562136521518748221352224462483128328547514145166757671123138382821444364447811683251738288238877837325465856683114667676316264857451863568834332617446763278542187655577572812242173431655476542273341255822185861314845241711575825686788115212387453666624468536156746414832132876741272278147454215546636781574835141368748682262733185745581153364351342871164313528753878145172414214482187488416478647612716124144478458265726152185453344116477536567255613878755187388766175834247634781257733348268226784343557381376418871874516575764865827356155782451448485224466421812643148584741471186575622461432365361731871838685154685538632735852112611668348722271518433372767148815872523164378838578576721584275668587714388253616662843863441574243881128884232667758222433157572547548116581456788427521536471345155666385137327856677712146246458186685884736577253634515738265241718868447666252582643233226331417365816744136386227247528252157785473634637433625135777761536425531588838363314823167842865367736553215248178137444314562687247783274485364874688775843172586173461566213317446325575783123437341167654645475774333827881818431536867413552235638887774474474234782312564453123662556861128288567468333677676124865533611528573121553586422134176541527541254523375344143813321145683523238657675226371662858638268276211633417138354486248722614523833663823722427463257138818437637684856815147551765345785715264814165656866372464688844435628278373825562211114571165574125141567556174364865181713331448613638282885382555635612134744612675611561165127581731841174525781827175657351276728821875437673765368445346121613381888413241284721762816367437637724662556375634462667385115547421543668164686234817484114258166627155627147452827367747861733212166235611553615548324626461646824344715837217422421458282266837127585758265877835662581674443745662316221688247715521357467753325523712841752687826543488845364582773136772557311162371865168574757132611563163766861657861788832784532684552844337411784543582362484351726571661216263536543645585122161684362478153475785131685784662631734177654857217772416686153283876342723278186534462141423443716282378316866538663743775735175485583221826536211144438873251685825344332655832646685654568615216432721153323576253484757478868628566333264573754711355111687536253746268276263611336816173513227412674313175116246447122868241656831137845516382632443386327884344446747468257337242277761635621122713346223525338243886625387168821242854775324818817666865668351854616175323773371714481537421525655364563512745523827877681427174577184142716454343217847588484527385481676877128481382151666627257617332131837547566638465287128755285468428168735265212382781336853518121627516721417616575325672812721852417256287834373872241437225272127814223673226464377887626311213858172156334171265665116616724678674455658253831583663144382628384711175186346113368334468542546676682786282787282125253223346615444381128814673885527481731162523613624362348637886745475582451787625742875828415155384423335164746437533275723484184443546643234567836315584531118221464648627245834335454814565474281262741664234534778236373512822714578652632754332825551821777558127548473568163755127185164881717233272245112857156855538588666256434345425627184746158827542756516582214462256582817865421316123478681684828348438885484534886231281361628343253742367422471184771873542543558711616545383461457246566421763423483824253268211122347171154183112451765673281363483351863147348242384853778773622124227422855466565157182178142753331168261424141653453631345236151234141277368484616841861271782574858634266116567232887613668876372345352168473266833481766752288478575448484417681841183338444357326552166266843134648163577623524846621336637182132115434213221315176726286852665442182172364112366157333875251414361474372382528271623682374371417426541671417486155122825443571188644478438834341557751361375184835464876471812564215212746126428625114427128843354835725526735366864176557442477731178337876513866344181415448733581528886617882635715855181631886618284865432682842413717472232762487854184231175285466381561356566327436826822482845344151183441748557846217444515111166875386861725376116447865532548743432685464612473734321744185848858227332788186871412255652323878787331571548344354265432331687244864832645376662778378227746357625724646344526752351267643145826185331851873654488473854767358135567321418342641355652145847542664385813734667464135816451215357774145484457814124615317138261124587687244841158485686481874172212167773744645582251555653627847645574434488124716752174456321251365465723681761423332753442236861217458685762524845181115327571352116643278447588117678817332457327577786412321287153628142354146461357114716535117338241263234471573154482154221621315328213657775157286363452233354543464615241625442247244333457718723773486238658848454454765323284578585318742485447544836227547162126624367424637448418231872477551828425724383737675617666812436235133325744627483128486754883323485727368732377541586762837258287471873756571112162325414386723526314556725876278171337626884326824171737826342228847676475564236331123512843124625141777112484737435756147321447153117517327756316853327121755227587144872337155746747558382721231842185387681844525141166824137187717486262323471872657818418278151468683574582556478271827815577282166185542466725614683444652272354154365423151332656877844762866168256784668788855323274556323636643378756415317416624641448422143177524254442883331712522454337233184176582487336163284111234624831144354213812325615225835387356326753771747138315724113313714436777833513376816255563763743353546188356555743558662858341235156456242767158361747184625614821632343238641237327287356584183655751751624414345635237576886258414576527665661311483242846338246312833456138631778718164483367814184116715477136613665614112517674685335871483721186654735655528888487786732714878625155531748745355231571668756675881123214747471618757881432261336437424715324342823378473386438143472837568564453486315342141515558623568283338265573613566684721482624384584277635813836386645674552157227545465633525342576125277144853373571143415686855234352236227146482465473648182325656738222633338443681654561353824517388158353767286238343177361487333835732727584826412728226863455458118241511158615544535888234746443457274851726177482172661125438472751352884688544428576358763416658374541671382741758182138175442345461517337177224133313762112246758511814727331611686144344465721767564515435266743526842157216851416833563751441363864236636328368623566822823148143433285587481153826577465441422354541158588261168486211444553647718861481114227656344488511744332728834635114776277573144277371158622172653716425374684668266278742556782662473677613766771267228862221454257335656143338415284777818621116835212763713313582876764416413756443421656887324222885435643135741777424271572188757417668872532516457533267437121821374843112838542155477276677646345636586785446552666585221744164647816555786528486112684637745366666488675187136744814144788176753262685315177423721872866745176483368481164576457223326661278875867827581147652268567244857426814753212376848135843436728661136563881787278153523856317252851677647624238784153128726342137262186564554534616827561281881473653865432444822574187766463517763238467528661884113741187415258142677145128667275238347645832735854465566541434846547122664744431447812323365421274572748383684444224146338747756812756642622623245245565521382658734168336218581622265777424648628735628136885656841488247613245124646326572254547657347115388567818331888271634266882468867522122812616284254367134262235576745646764473518643552547426872626886534848818741783826455154883372832185883546326674121586675824774871545761517766344114333831167153267725443871371771224173758662148487642816534668487466652674458467737885255672337265716662623631211661752336538443584727186428136261745665334338674765534376876258844217316741375752875418754271242257688471177551454162627213826111878574582124168243474212263871844553827726388811847135242285256613564122641312383782326283727445362671815642547727655334213127224178241321544326747867456427845154865564637735211614521268524225328446868357538666728582454743131874232734684521312757684644146112232464541862863744674654625183322138273331536467715867441851742154158372432638528122853617788612716612524777336747618141536454342673734823313854735441488712816164154142163438712143752717617322376787812845433614571437387786835462732183532462831563453832581614876773116354543511522715522682151485786182413431472628841711172782337843754717523744645484287367266537873461727163214753868666471734682645674457457711783765271364631551638245841436126113626623743715847457123633212718647428481441814455733763273151534343778784575526618785174848117288444483422631317344552823573188114411322275273576148746264571247647476685871748244684412868643424822657845175116175576678224253554781282451136332551724715822764811685432411743857146526264857115174527438418414818336544135516124543145686214652374817177238836857253487718252376646215637277843765175553467365845325775364767712471542758345736165621757331712626347578524754161283374163221178423267788232617434358435424522133126785478626258372285433742554836376822453237633842242476648712438687734124586546737636367844254788673652276437271141346747251388356338116656574358371734226356242642553825541665661643765466188153867836442525652483776133418361554423757871125855848612648272237345622566377564164685536444634237715653847612775344414724254367727341334275358744865343437732513413144522643687752872372164334242545867648164558654543651241364475642422175547573834365881173487662571677818756726243747523833681544378771662143634625576838865576115188636836816438583353818567245344373546133766333337628242636336455771483466286431868478657342174333337374654484151118641465341371274877444481515563186221441535553627432547584747657348181223645614126371781872653557223285238466478276856541483614535812185182648334838251886766386546656836187632274766535228717258882284511348454532242353324736476515852556567127883185136465114422174848265143438687287514772234388673311564723458345156242164161117435158416448463148451526638331261445855616524584236348572515388884278426178114534228173311488455464176771381711273782778837534167275421525385474631415164526581424533574271427557567635283548557671145424453877612275481642667415225627231438758673323154387118326588863162557233525537526124625362365243468378517726257556878222425546853447365744438372171612521174738674271751261718863841782865415173166748535516414764553641842526523864727465773738271232785616855352411827483445834143283463756157358851686111384714772177138632536122758558358335461567172622734245182514538138275218714573625736115363323886522712473716748328631726225474633713146184667666235276585213375253233518843468688327674354348462474712465612372378654248331277433563618246171317371361284328722175843536245345761483573571558326577741535158382817323271882832548134276487874774373581256445361263351656255318436673767578615788132257473568522386344282158318812174738786717616431445327348348224566543784654357168611242132643261572761233335233668753166886374837175764616776151115167464753245624282637126788561166573155431682727547428784611427243257682431318751562146587636211486233142762645357563837657368174314267442375727335524188873451587814728843284127248625311625762538871542731818438152588351814654533343486276728632852474131264536466772281768428661415425542865377835742588541173774336586681727371755825535221588682127744432331812261381872617574486237671563231444271248216654761153777532554668774567278712887883871342416543587645531412211566555355412233287828562573388423667814442355542144887225142153421812122855478373678481565476778531332534147563811526573627452315815725888653123762185464768666334526115541528585685817352838322761446662423347827118511613335578283855714637581156517677127535425417547177843548366632433852553661532831481754377152264256173125767837567623756528613778183184537431855626567331367516125132585184186528873722527345624336143218624446145874113513275664165856734838681855366336615232245612352751427273671818666751641811113757866475318411845676351447225411864617848846816235761562853513315642233723474754311164268476416846858237543527825632645658361531823833456315767411362516434256855318521352514315347468827381685223765766623714345752651241228417775837286577168224471464482143726161486251524445551567676886775243383564226336788515373633476816286223542865511552155125352622417621671863284816122334536664574443476471768851238438588736384485443257214256878838857746245242386368285362661538475835255436666411878573641368877547668313676383172831261867566881756457633132381481274337745441283535164467514623437727613746835275783231581122852414234475768157586575544323575426786334877441211558271317336767256746811355475288173714636381712256547543277414872328488787838141764237214521827721756645518121253345733275243631413674384873557888262251445375475451756324561135127243344572676333827518563343745365366674558243531187822845381523151734751774784481352426855814878858414157234661662514268436724476336413832355333278666665327453255863755152652576558776175737141316573778525361125161467522483483222256727851828276271142777286277883532886184163357322511376514481424523788886232864772576336643774783262767441313457225745278467543537621435133167751142561513834377126128312215652463528346641745516788778611863128342833586347718557435453146327827712138653248184444641822524112578782337343218328784472614672541475675516587435365321557675748584133674881334862411435381542281618637627727321162171366321448266185565826618722581324826536251521744336666315534253615338651778853873526846556162448543175753627623141344185663414124133525856424387322787424462544844215761118587436325224332176271567644422362772278452782668874631562628516372568414351426124284822183624428565172517226787324416572851852517675813325115814144668534538676555715747425562663131153116171412843234532758825385362668146684855847117344743443645773344121276646244138221424375834868447455686412772488412446131183536348677325261818846751561368538333881388515513257743866581458443638335883543465725863532563217247242442653585277775184722248661241174756716372755835474287232723827163751178832535663288678457721524568364837241324384832764625344381884377712531131223866417682237326725263123275767662162742654173722117325681847361577322576582541641448674767362321122876585451472236161257671828882776415147755575243337683781748674334815642815576716345572622371714882435383541772472141873271252317157456616772511774568776568466772624841625875633778664176523317235288262736351637212368187384767377311271775715332458125534811438838643632772475537216358628462454875357112311438815547478332237685787614532242238473287221448768157587617722682541458347378333745561832478548414455171568157443668638566582437541214232634544511141813322232873853473226536657458426727636735787713184624178832574226571131216176386427736776114225541524345841365626186445145564725746331485138586316146222364723883686485565432232413222158286183432667825534627537426687214524823681588628246661218447337785877254863712686463151111444873546857442483528226138188248337252844485634846838348225718638225818445667138483136825466135126524224772255215415764471681882628627286473561711164462141646565546363661686674441774858688346566814237887332666422824453157614112284871314572881752214518841456336434532855745726644151655466281418553627358412242524678823318848884332657517428241678567887488355448624242651574647255821456182636565671445411534451522634333553878546357585528831677722854271447188424261788382356215187165278674283371821855757244648456645261686174776437111485865872342558284788346571157266351827747181571666557873584172424415776353472214761638855154215513751273431312785534271476763134375184124115772811428154711621128385786787143218857464712578357286435672286164855712758114648434264613522838322812756324684337721752221113542682563315374764325117228726176226161461684252371571353342825316874871656232155111742133784422728717443226878251734117486587676224167848317333323483218558173615677443144464352682872783317335463373677784236355221881387736374362646475487683374161267616342767518316723287285318183853583441286237461688528746455417434767464273171656377838571772523181443536885662385678513372514471232474244616413167537533654612422556847117457622542414448721652564768545177526772172425173128836121641355677462531448653164534846511683332764884618564566538181641526428353457877785348517526552361577224468854713137555127748646315223638332663842457165541574721448412182355225132417168676765878725632424816226467761748236674253782644115436138526686576241336563636744873576247414732553545883845376674118431266358565485655556844528181638626448153218775136682748424474325628222233126326845681338736235456877257466787258734564416786333136553466156562122547546335535518352365836251452673237727151617318136586322334252572821685733253235772278372717522424573735156478624438436513134275211271453756488848778216471817287113125311851522185876632387227575586177248861176645167286175411855334725612716441143433211442414816188565446187787712222833641112461183647133768648437322582362278775211618156877721352567311574168651326322571333164872327443528445474775111613811117736631883587613176386437687485377517666623153862686416275625218631516835316383258416174622718763781154344171156663377718686568818621145228221587775636383828876447521637621465221773162864522266677457276823134278555458761686862416382573753877438762627677142388678734778747586561617576157257725666145628145468438354635511188655836458161216257758782453223144346873456567851633623524736712235821862688175757176337477257872251746176152236141344883468234148131487781824278378435662261635214341771847353887582128842874265386375138465721268372833137544668364766721862675371263246867832868356185142876414577518285655852843528174867578614254641326727618131128163882557144225217556834747815523772644217525726532225616166685534485723232723145834265768217732867455648776782382417852577351147858428167647543671446684586317683612314278888864177624764451836266186522472167433865152154256871571187215818428776472284678163187186877274636311828644113616126783246834184682773323784651462117833675782231165856315372424322214148525314116561861287148547735835557677754522577317127648282385826385267681425245524158148844115732125774732316535147128573183363465141188381651332613567536463721872882822584676424471331846237886182244168417758214834828617286465686154684171186286575125833676742527677783768257773372644518258472346722155841435434557615537565366544411112741143488831278883588228661341282216513165771676183612648341456374684672856684163431652382114712277315211761373376128245145483361167378463156455756646247484721577125828884518772115488315653472273445344462146717353871525753647183287384554245566535683838814768287527644157372845211564161547233182456837356221687754836647262461373165866288838661738484371124752135278817487135617624712572854756135182512322857686766124275632142541462388475331817226311871674885842767776815866455676472528615765123452257422156375131773428883564521332264845644324818241738256617436511812575667157842582526246676317478283758532176733185476742443341761213732148481688883574627628665373226481438465125178427871523122441278888585764833841748557568678464423371553156122163677432166128432435487461233818874637535784746881216153262233121551178568843613433145132342524345344381855284246257652472614647342447534721235526473287455786687532342424214655168178522161415358254463473725122688548325166687524526764713371241284685388657576547381442641764441421151823431282527622586538644483465264477253472854168438163222537642255532848131217227121413355286827462333215823434716827241421627562384575736176537831424253385717144262322626448842553665165546116474275454158821775118625736533272681713815866552233154344886382227817218656417381556887377676888655463117325244811255164448785321835815644828366152668778654883156544777366861575713386223328621842321224417453113133625556474375423515612454635735166238444562124441662874327587165474388652531541527416717654121555655377532585624251441863474516762361724548766273283876881147672877658718386162362356625626475543477155182468665487268786542163871443128855722837352841552628123167148132561433368458562743342625235288342152477388843186187866475165566763867466167434713586841514651314361177441351332651322462734545567366767513613768566673564187324756411767237475813642615171463544882137757653723257184262828331438588171716285177543868767451563173186177454633177474437248385364234547451884883646751242231457847812424563558784235351433265631426335772645681714115115183562364666222182527667665843542465613666147753675413875441664522248122676568846177145686633281115873157464325131745112331611426665646484586766746126756877585362433778817274745543885574813411358614384123214724274638681611443473713874812451737816745826856361622675776572534122612814685888161387563231851153784181221421333123568548315376666645727525225576411152172276828573732273682311522626482666357873256131116287756878334252856452743116214873365134563856758211341651877336631334357424685523227371467267542532636438415626148463416884444514467172682861634272288545581117242828658553576161851512156734645717471132381663727477552341315843351351556223565118764657785148372123735427431632575151536132638447726345775848164548487667887542881332866151534167514167834747643445588215868165883186788231665115334315577274448658485178145312411882256835175152857525186287444514426111217478642188568285648258516867855613347444486176551263783576873524547857154733488272527466262578613115862142451174886618133251277287342255367133572753733754543327753865217112338212255217652871755623231137731457471581425221353535424587342883787453515784526761128538153728718615862211328863164584486448135886251346168166341418725238238485271762578276766577535657347384762538676362655474236368283628266378834357433667241476463415328627211343155138813827432638161887425148342521416478327252124624522285736578531345836447521687116385537383842655218441863147455244617216487333824535533536372553123734148868831374716756451316565825838676566364721216447275513181663337655388331447652266636683638658424613545586453376525345324371287258511238532756174678711384874415155147687531748367857557116223328888437372433168722673251433762452364868113315857226482545483535763755732733434715253876226256681676225468318751162361688161648776156663268712727612346744825751355888775426664532356147135682624818557215463885727122732151383348312722438675766578728632731755465543745474857322764644786548175285576774731368446587547282765175311874267281713557322717654353543547151446336548346234888881742766538678378634238817465154745833346712418438457858755837412161885243481834748342284486714861666382632682676666456862242548372612841761544272584841264185633811651487458443318613778388427665747776378812232168157143682537667453757747532717721281558663248152344784547415844863175628534285131465836466152424483124673763462118563815572481735717273558756164176874512447282768543765452127186741312215831666532577278387764248345456626683122276614331226537237672113463675561311731448168573426586841775137137162726631655587256517355755637215384533687227518866682845167588224247514485246718477638845682371785223652273433476726616146241286328672761621127416147718234213612261423181263518321181611687628846557864841811532512678348222173637224578645488551474425834612844453777422657573337636888356221356312123877636635467156658462517838181485825277784386132145753642222336728317786773483356843764186778437157414272237238788766365821463265615184864677636621844186243436184361646712345676732347562562242365318686737183645567381247442364715442724631864276826812445278635768857187654662431781535651673236788687538813716853115346362354844571343188341643818214537633234373374241275818216776736561558174168253277638325884373111762648723638653586425172116477154388862712667123364538641455231621364152388687181244225766346175213374424853628744726118614122518436835436458311483688636638558117417517343744543727447177643521151777518858124855761368138251253811667634512817251377757461283554326156277447758854411854168384626138723556118662172763231765387666648561337884168225216778428253827741574361444435145634563288247883556151615147613832158344255615866337417822458343517143438686243576877776687538771474383868541764553147316231177623722218651726343316144724483352244122884565358576851833472364257256325678811755211214128823447854585733433475183214373274127824341434466724171412481664276664758512854313462577336864448726252218812418426264153428564412737648315552153676753785627738117743363884286534278255334226674555482447467277365372572868336758355218823337164658526663313145532222218413725347785333651632285313124121812286856576543262381471758767734641415734444352556515342885674155256738748375482228551658876188572222715431146767484435324678344432573723474167866128627756771774147381247542147625674468116775876775758371481853277584162756842235472816845187126763878725468558286186657837735222476454817524111766143545376785613145115525635768573734132677728721486157232324333373673521168646676358762661283127155314821874513817852727734746512738211255373674238117852413754614521615811244237747611811773244313341881815488778458411585576814844884182311788784442261627127412562837624711758881126655457865737582464554286755827278785288463237445486563254746262241431474316211346614178231446537362825442133864541518422463775228126557732728238886418623562783651423365214784771431158323257134243546766246671681465114478388673637374614348118236744743768626676575552155153562825381234765411755321272657672863268888363573365763477624157325243738336682677262411348355276486646671845264686715788484527854688366136344418278635345684588825528282535162686626351576813564226115865432316136332476746211528881283614831384884648433744763463547527867864154134637177132174138847645217664174557822485313712486237327272551662164274711652886316647253378345248364625671446247518434658351845568836162783566334364416138184341881317486744154241347817776316163283838371452743566824613183316525575278282445687151537784784152675781788533768544354111451463331576525175458874166266273388277335684312514467575287873767775375545132878885443538426413757476186261155824265228137447428364544321832484566288668413815848883382174881357836513421412112581486564164686451776288748815162828565642627431128484368836218486312845724557625264652245535562368123665726258772217118252465317266513775266142133713384532657545266214327138237278127536418221716137268148868746344667167186247452344747781365866418726383163824618183543666748241732462377666717676647865228234817221858483163412772638721641711228364278173482278418882635615724627745421558644275144226484636678438641683326782815184738863247751321485327567464674127121144778522526248563128576588866176535286817688326538143683381565327484785321343663263513518255653518577111781234241452417834566573441827514686616753654553576234245837655784465256273218566756866561383742878251778781413655453215712755141153111686784668362242717573784856237814251536254365225144138225888386412431123221387862832553248647475324483661461726621862753786314782817742877831318183375554751831782565431833631536534146233823187722154253226845517673185176853644521883822566736614611274561741352122421547721587625343761722557738667672564388127352645686547182854488543632314135886235746345226255176348248218764476632336544361848241251742634748513443787371842856578523456746756787644133236123676215546781443878654767151351227544658447258547573858334451448818442876418454212464116213754622325524735667745652152768755284175584643778551185882745776866372532563841583563268841228826221361186381441464671341358746267252232767573338664457581175787371584447315284767714321337714347857461786176521817431451817117711417174782213211653365456723613611428554675663337332863225573521532277322558887422575886121163182371727174548177245385166761646865524177442111831536713276751514636142552753523276726785477284667847113888312535874533767254322273853848838658843465428245674452627728672327328556887778413725177535481332721645132825433714378612842141828173383142384532156536737612461338354335454574381121661586433436137552664773227321853823635675378282164153475873868237261734162552625237263361624316131663238182233446321653332738238262475172864375627343373525245123137513416735154787733155378557552383283573675235615877583245681586775631675258326872316582162727265615433147676135732582458547151581214275121721864288145516368138226235616475548828733178676576257772822356817761323626585823538373275127465222854273527711134658643745557266368447368145228372222583658263868761217723485821717127354846231174711558587656434286188173413217555371248661121518718667624132756385375858661671367785363663728525721166848174711381424776238756837135386814454251782376866513213713113618142256346242537385275523421682466578371184247643767371332467214768416463754377361168757865773768775128364658585352734632871234212421327484418645528188256361647575577336335388757436342665611258627216841146887632135881531643274612356866523152364534584225511567613156485611734347483472182258885882231761551854781647827188158645448522367333418471832447413847487841273873833736531331262435874775481458657617157281814127625768418522187557461258846458887441187128888625258334837631225668645423422183275217587131623276822433744641167247114764842236577687867183255876476531571761528477741651566734468777846128172576462287252534177566126428484528335142867621275612824663318432324737182458244725674151147886728753632464477536284356867726464141378135231181368484187746253537355244457224257164371132326568382573134553545153441211342615312531511852875477682423454331562672412156252715275427431763825754852156343283721363766828816558611766577487731763721112658472347175681348128765114722647375475371521542128863244622756272428114753524676373566885771567426177564722276515438728363881747146883844238756188577465764425338175176551115312835663826164584263761576276484577622613366482818285813537833372753888836575733312718753315541483443332646788221166113881222861864814136472853636486353335433478666755451256528835351674233142675326653674116655282351448651525126778723331686375176721485544636372324643378167566855884216665813782835354766374668237628843243188272767852588653576114668871388277134876143665133341714417484472755854634682262155243278175238465566681156873187268553222642345712567341837784626343355578328761633456546185157752173282731676446653164643846637586473355413743417422755841278888347541151134142581745386112162583126182182253117157357855238888256565442536534341265537727613388145586728272662655825456234224188354583416334216754451771258567158227525828445677223357873715672218732331834113882377175333852773653555645653143742545768235413445612835517878353176662674285231777862238683388683131785374555333281871545845412774454158215647524222263727464257611766674224645764181148746867735822356665111383763473437225675233257882113718175138472252438528835471667647225727452547457865738164111734553235537788384682364867377437583813135822721871677762666228848885218767848114748225353531532181327354725386761678874746566465413818477126354188846437754182227518156425252256122432317374515423887646822644425638435864321523728348812763215745387844472281477163153846227467883657612772585383655545367661251576353312451686632256448876818157458776588338887771134123428375127663378322762348353421452386755327526444637458451683435561823525164678717341285225255678341588755231171512537228412167562327283723577338587376836783556487225263272812767356825612657364782377583454587833385752687574551754321655775544564626882326463224516347723137274226413314857268386822463736242333671811413785725274481364555687652428126312554278527322474853675626537338581528236638766857316568882425332153163636583285183648234146346553551731258264443674554168413727164733447132563546863445843335782742275555412352125828524823181874158374782636885457126267533532533462856178445551468142415727577885786455165622434888245687253122356168275715647644527753375553477245761121542825444738256468626282765463587686881471463711677163711844318747146242878238754626116662762646256532781328864836514371527787171784848567434527377422534861774724714432274613412741658756482844172532455526826762446478738688687727553272733511621125688235182543315533622633451263638342722563884123882234261373523153312257424525872114286722244155286368221548734112472763147453737165844567256554762554558362345257313661155717754176532165251443363246252411285458163876263876211231812222216343321675883251476486554665556387686322827734442287513877243543117721662442755672113467282223431372848281346812622135721542854143843752453124872782334387578644537871733214288164387486252286326774753743738735832662853648171357711755244174367512467718613645275357442856153711653183831811488622465627338371843327672367426878732154443472273114848136547343772187143481365572663545311681178375658814642255133474671341427113678346426513222221344375487364588523754571868151772821525843462331626732724786544342484685843742728253815472186181337466827888172153453687854364464712263653667474788255152457585143358335617143532214666872447852246776316727237157425274825722816371871362245856465843142528478664663715677748575146122861875552825812231822868244725618466822771347552323476887148226134482461564387128427723524145725764161224323634633111133543721314471257586835885866145858242838376153828262767352652327317117613117168583735232164785675252182383218765117682464551624841248475356848416876683247216616427122627828868524883826414265563362543434877818168367627812157155226225324172675673121577678575753475614672846572481247865881266571746324465724638653527726414157748231344833386832854632368441285727848342647147834816211142732323767467518213813488678451534632678125545556723733787634754887152834287741283575552182447536348513523464273512753853263526826533885712826346128425388327825375542782671414212121321742511737458517365375463662463416364124558476221757454487532732235336688336857848442582114254146671146868332785746113274386672148221476416686841647835132458561157185416273836617467541473136117727165388643813726361175375655517811546411712741476272671745485286816627714545581164213384541736137751336451626724222217532612321666466113272424512682425372273826353131824163224353265368584553277252243355637128145278235251568854744266438212763171111582548142285513213788166875642381422133212667658537415188353488512411631763388258688275717747764525345383632226284172357213576114638235268386716774826737783484537527734634462656218588334641688122881431737113483858772825172683743575566346273377733622786153416455623324117183765715171683883644863881367766121311565542481732837227811687318116254774831664453341732867314315586845487532576417557414342438885358784327435773517155545385744376823444254633858455666263753887571772886336232244467282136482245884181383122713858435545754645835881816814254416148581745215755855625412423834517234215422867133585715544814834756847575642545572722173444533178443886536688826184718728263547183878313178831281671358346357134133863336236826151783624855738287184184364866238867816318647537314463816468657655256757428237138445313518575416628371723343213647348581224325177873654887864348138555374722171545716263668253636653887465663324765373515437562837283636263282644273134343288178568718435422373657166162186512555216145383222284857635432787121331515714233843415278687864645645613873463366617733467355376821251555752288526118842743162631756412156845554225621761267112257414666137373785354111187518771531654457255232334685775232778838664276568772122587635356414154827116453342223168848232742857118776522723615112583523667528321814653514864432382328656117126676748258246388425314365546124652443358864568227448463187618764125111614631648153116826656341422188658732483368368137313683612521145187834341764446243278241367373547142233728251574463474216814865761678861556672187185413713865548274262334557734243744122128631557162862827417772265334233666432788152854382158363565685832572752363528655731424667884587445582434753327466228552152421363782582146465723512566763871714188728823626875235858683552333717688377526814574176116363413443272711337138277553364557817218187378813773481826228275833444454347245284448232413426121831166457843568863485633545323826121426227234126333553727828326675336545357436238475634232131458882642274127381344766886255211186731125584821141487744158676443136745154253334343787211235568743133545637851454444861153511155165886558321136561633688115722824273735437541264733282663842711227562112456243576563745611876518322283448628147415476826615363764181434883767377723525843475432781711886744572138376762678327277337174665788583226861215644552152536163217266485773861144566768538285226118715181846856813646361286364665525722715266767218835514712365587145323418286676535653233166332616385245234458712476661634363234738841533675566462284865357367722413433487121456264621752688546677531545347378613135627857517333682415141435462442121876436231586747117652265111377166611113628463764335233611387212773548422434671711428358888421564528467211647385134131176635683714427335866465667177745425654841153543115743311774258766433473585548728181387865187544344383327732471178265533738668784381233116821838613265156673668268277285457541171353867516764471365654388641627444647557812846543227214775846452535847748184657646266642215817251432312272324747562732128328182644732126327418335475347268238161521433132563452668284826586214826855735172884151176144714231573778133587476783567872328737856811723773587367382778627562433724815841718613213377741564476657215411456127334332113738266548421656663132464856744677615135677311644647782844677756584756432833614167544615763528767354654746716271742773355377264656222263851348378567761184721853545468751775371386741458837533857161815641375375668674364286248525675851875274626354687766276248366853626232364881435822241851757224476756653252762323336338121882816288864756688782225527135275176713656742417457536655467155361111343526733245558334776248472442243412645668234726252543481312272488623786775757241364371811225134885842521272513511187284716376463167836814761187117876464763416764353851486215823761263326536364381282382527226153736265477265314131321172851563556833577365485584586584456573417267126828437674713138172616123538417765667213371684318276757717727384737418447563684567823611473863123754764271246364156186231487486678625711832558662336541388714442321882154876748543367814475828657724888176638341666534572231114473847723255781754267532425275231425363358837673656576377886121228426743613231413751557444753742443234152464175467284635271132276285367415821234843813572384412787124832233222516573832156264323622725885816235483782556861462442338877275588115852176472287188237276185642318714672486575185827632482522323311635561278787875458565324525543375413537163861463135234656227416116865438626431713133458276886364531761643173133133477363538355767551684683613666812417461353416337167543563836237145872617555857755375533585375778367218832136878566136156654233236843416525811726536342567187872335656827215257572222174744317487633381712384122841644287225855487633764611173333387377286358517146334481557457747272652384212515345681616257883326573467848116337763784225162113766111555136426218558561277375267635642321553761785643326622245617348461283571255671568342232713283231828343854583351252371557476456458173155564415582385126735267823587583111157666416164756844643662276287861687144352684457788156835351643763567818145472331312555771752237455843826452352842215383135255162455316128825111887226581772485586137416458136635424761817744314174434741743173525517568441831847357742473471718866483143186287633573372636667362821722232527172815343216743366125214884755551351552867223245554135285577214736582745337248712874414658448583757183332146684777385451362286173557477658427412331743536315123868426388282532432265285736487752311685575715154842551641476822148775434521276371482255881582763341854323432635464656856813745276873174384236642716558858211427173471471888333411766657348386765213222726748257244876427326118226517388661353174233761668838856566465138665631143836151523575812518717742425138188452423442832278661552454833532467316621413382365187331373336241677418451755642256646744275468534365226853426318174427833448482785876668577325381333783637644573171424173821516611578858688117423234543511327847613385234215614824144361183454335352741832282651655742747284376411354354274318441625511486525363885182416544157131672481148245282612522263538447273323183676813263885117132143452751636115465778765145755626163755575383718153636241473155337378737124314861211721568832144867552424751844634323371331411456318121263854387528753443284215816727585876373684376332646634324653572666162342461211332664113565874626431634477584574622232254618747477521534873487865647831186672286847861364364736317751721575384854412214642671421353444258385781882123273847158754265577524758858721615686413857461635244581282231812537264168575615326645465555452265878485323581173657351573627845281136638554663514811738117867277387527544567835183665576143767256625531584156526584228424461383625875882316628164156185142246218683753841678376782167572756164111172156174128355232885732245523277383612768712375274754645853262161847232768166585637767333546424278187772747564644131828241883461866331212158471588242266332238883585323424133178164287521414818328551562131145852341688781781788721766671572166761516175262721713751284842215587528824217371131173662265343583121813173877881664832754454364373341648836633465568611743348366617662233562578142663754147175413741161376545148323257553136337622675424137318216533155867617168316755835653343186457554172788486747131565411726123864478235164455255363828567278243347261744876162685544511885818748336411555233882423541241782342874572334846743152125246275176764883636187473445656846561737422877352536344378722415658718322218112834567683535445627267265356864626268644167568641533846542817861354224322745625438734455355223747868467257425138868124555136887644387773322874572451513773232876112855257146411415423386671767145837524825235363574521377835431131543832554652821132226128363842683886117244142124846515238583463638816732243115565886526435738662363553746114261756477137462317212563713114437273837416711112537644624883413231278836323474513136485585416725414163311645755158765131641878535513843176658765413822153751461131321388554516747146723214821821623747611752246811358545136785756732662415528776522443115384841628753783322781147357628755328877533878866156767263185177571435885273776552734357666832455468565281234751538152584347174632257463454588652235471775374723548153117437851871428463612144414368646255542348347885355231266361815571245345878635337441254587577613487587185135328163145212126467714258165347861744628835137374762277782372265818341714474728885171755583776474178251267656555634366836824238636648336787421673121464133255125456381661572546725758732147321755551524372284565127182362613375812631154844486168878666813347487351333434763536481157347567427823146886443363172277572115744685681855566513811274843748484753188772418635825681255145845182116672888452821371355835231686587353422453322345472631858528377161177771223857553375462331864441148886115361622821534437422753563123731826186855827121528661637631578677146338781518352818132782458173747277253884786173875132834447723317621118184718617176261324263283852833538178856351144665747163158327362338885531682167243628182588485525565634454536417476373247177345853436578532843771174357233563258568774747547773581673566733255768656217552111355121437277268646278888425625357566616285512542861836567711313758186763323146341113628416216578287561768144445442664384614338248583346342755816243272348743433153486727864132615631863826868245241423876488531713866235528543637771667174886563631343582423755288833431786254426527575683867557547481561845484726361738636557863622744548245576874824887258126874638288761437775277544868831235318387745845421117433525478217644333774367421477181853256647517817876471237843313314321881417368667165185856857285226823834751684282467631325235624112814356125582348212234714146414314718467687737648537876176684624251767343135566528177372822488415248173153628137686435386185643864837333562261531341478755428422412315327215365181614286618316454352484364566263284323854571216332547874142754141263434573361813754323726557633645668274211262254646825341771655328883112237311775134565643777125672173282673636811854585743322778143857783723513618655211532676281253132424432663335855567416132723223132265312342416831462741532514874787387288135787412646615533671166562351851581447312848212271856514415282351155786857845153744564572112814118585856711323257372431517787258724376126715181528767425212676365384865643253874427368546675412841144278562468822614355184531385166574112254722543175244564681816522633727886152126242667714851323583834488185763486531126473224261431438415582812364143741167272784734475112283185416472444233122262616876763163371824628222521444672368615177116154536147166176145248778377754461873284687365176316274768525158617636216814272777483565287781461231817364643526136851576833668778545368714723136628447111374722466663521652862311245523311657665338251825227328338467488434887581126215377715616423268662762626688115611182638362387255142811641257728735568216312125288186252877726466133541331218628637123217658885555528628438487832788776522222744386834746743342182161682828783288588843377328527334361262117417124177876717626258586618587184815864762122541256875223268577138635668571332457143334347276175518772638458511862314335243727267653872524441217384437158111526188846188211381788243624284246542533213738828567258421548128474336524517566123547256716478434754276634241728173585743572134275564736222881768774367576486714121411722627751348432358685872343174733614246261714611638724837333423653766481532688632314316746644118886332455325247344465715278681375825132358431244457838144678715163645467427212547187618776724381654857668271411821642535864813637624551474284373424236434772151528572386666282213576835474281342316432218418525841341857473467364864253683351722546532145378165263657824858816257472682778786471343742383783575421256415171488231411381576544753845555621765388316433582823384375511643426123554764278362261675233866825626578535844832758526215113451128443315811861745684872252117266112417688652736153521346553138411221176623762567478221545725755546525876761176532554564655887442764167455431278382418774433877735748671731717713844788813887462555471268248686857116184884737581787422443163665245745312451718555117217224457862522728824613624825416324438786524716767815746345775264517254425812545115588834278456774388612812233313838527543448136223271347157347341858721234643155341164878671471276757747812314714722815463577585377632482323464822622358373143566111225157152151387524123423446246738431836147767688611628854665124827126382265811872648314466865337788537342542618441871424777321155667161334252756754563651458165633246248351586378416667774656836712432864634128125388247273763523356521588617568785668486771632164476116163788368836776231814676282513711248772435724414252288878738675666354417675183114284272622688736522537183653568688163845161154375237147464337356761234432584583215626123253858213325424341788666844546838831722148372363122875278642214183745855541447748617333813624771264336881542386756348538516175668283857618717451174617264538686673567135175531515136558617677816231131238488426626838718634322544317437164675314117874524626446577436881364465735371318461174338747537234647781828128552625758634254143216855654652226145681631752256543718474546634138517236822234447738344787136531447832323483513476176433845385418753171816857262571373546763468155834184771514437456426761117821563577636444786518856534385183621644514725882253127777266476324877135276666788611254841645843141521237552811777488544375468741813522467328113728433537162655715134877761476334277336114775434687782538277511114484255248753232562732728276353662277368345334482372434147338666581186182222632536435748333361826132782623753676828561214511368567717866837352524277385325142855746331588132254378267615216163616336856855277525533813388585756256553217483254664534531276738254515484333514642212324848573487825254554875358246168468137444235427873832564257452168877623113351128427332616258426112548421443451157872127741682158224256887743555414213157283888871163438274545176214278858835724487431448763147365641346238467776331362727723325751781178123462785887641387526782441254126131328465348168786436346358447742748486187685262882226623263827787647126845168335223775617168448371677443656245457642378775485121157863834528252535723667813215227174833185876246375322773184313166461736131411218317576585675573315158328466547277143652826472462663315827663171852727676384432365665753681585351438817516546771316558787554151781756266832216214526565186583248784517862778265537342441256272136287872146654323627837654468232857443526383321358142573636521465826278564455581152311248887815116471834341588561487223763531181637737253717635441358535587587527117871767612743875748184811362248133176526687653334738871827812472446117447823213583281358611524466176877478666685822843524375723486772521253722173247516531278287446685327666864345615355441821764211438365627713371873186288873853113136267148474438647134622824834884512176821134865647216867437723144248412512184568158713646215418571531481261684516276222738845564534531657423844523341274675333472835561128463772626784868152416556723872434463611351413125336587236325134572857654365674866322145744847366227174122358655177258488884381613567878162686881676333372376446311755332512787536856254873684184261314221818768455166235214511887525647638372384467182362738578427872422856275583468615548514445213115817523742188821274182542638188358167342227776581661784163878564542843764352817565524632185853264367225546484357778348117614687172813264512836475176886725784552623145256326652758457281476742624884211828375267271661727188866135553324223436722778736336738538152153571474755811554256546281756867785831173341486772215721486754548733711635742125235477234818858848778653716815515718232588285645634586574832557638618537444678242317132232343726744416827376212138512375528887248555346275865645553782358848631385721515258338575865151152685621818661743645614887463268437568626378334517748334141157866428452776661787577261334446713242253131464441867642475525265271483765513624611243451517285473221466676648126716143718678286225237586232741181762148127684372564421144874584377583461836835182531324618738863678835688188668528516573556113472342827533258677588323675846884638886326238766633235551755441521175467187675125344561513624763746474751328426856178241272555818626683774333885614374462334775626853337431435863362417636262341815835637467864361117547825255225415844772544666444884776852243481144238353475786272626323243152234343767173352641713411672187811414377256257422118155284364732732868784161522688381868115454537624368466474323758726724858468212634661875477454342623175832728672125714457314318567576145887725634865171776327831688358857416135133537325123416272277648276751458373122678881324288663687838842571577623623422532415434284757625362213561562722868517587644515742833385848282174512467332653844737134337216172143375175322215675254557135743657843251642763117321665278628671145421484442327248223387868784815447553684435311887387171661656267624681118636426326622457121727646713723755584786225361778731364142371355873337811533277137264367566518753756554274352165752375718138815187314687124337474368748657326522453522814484842368721786385857268127327427418316875132451853438331237631447478674356468135444167757522336761415717515427657735317261863246374864775886438312842324321332661233567764116634785526625455588312637272572852486528887481658586621287453257164786482312867833662352684175483848274462265664882726852866573536455552678342712571746648464736438584758453634448231714427751211131523527556582522553661226334146164876742257475587534545845351154523713628136386218334537253865377364683315132327341353848833231863113148643445335462753625635683611124644157272485367518268417375343424871485214437277752618534748276634661351413287664541564857463216533635766772558178746288646133686628862241463362312632563746122444811231266251172222168123681432533245338654721542645346376181848231464315447488631252555354845538642662376735658742586288671343276141348837264217165484428141437743537236154542127564565576286846811438135246827731884418788251742451431645343786542158847553514458513563667124647544415327677683643156431718843414554746572356327483184844488731252336574375127754233284633323818737443571178532612631151178348827658877752674545724571674578271643617484332673832378114463441215563372311245537433313755651742885388181274415245175426183636433127136624755345541152737787442324223544636736477474436213123755833277441683442286635823874236728114746575521646865234423543822582134372844564832422833787676832285531371744833144817373751441236441477258548821422816277881123456465886557226368426144844812744282651273884636348848113464358774526384584633156517427732753417868218334686658326254617751211556573115245511218772313658675712138436121367177863164131514245327866548663262634811171117278311254527152445517615724584372228882348252855516364822166155746442543424321867265633736518183334544556187155763146376646523525836483687583641641348611167425575375251166141722525256853382856554676443624715534248834862737448576728281337786862762824157462471768455277544331464263668482481177178587152472278615578484634418777717628534428351515232652113171462811731862867528732857164833146833183145342781648435747317323526572756456336367212752553472413657814348868365186338254418518572173464167885514883428825775414317615712677284254583274638375626244625558338721871755337855584727257413383845531526128865221518184532732273345414172838157775784844184862216443416611375658217388764227135645586323821583224821586678278613337836827644155124248476382868753545314767261457763711218363247218381746351365858286764411684272221282586384875462158586532651762647767283342758651571281465428371136442763627681627337342583482484625881248614635535161376625732883348363788368533215233782144211435137417135854265454714815126146348151851156248374734885484764588214356122343232321768875862487814186668558773672727424876725623688465322866844176585583342811841783475368861135745114845286371866375513465574638336331828214817545152118224683373822114634722542157824443868287451657786367428375274284572567874156482127536532746765384246645617426635255778151646243324185266865634821517461432723725324716114534136673288818257448667657454527182435352353848443126582144413873625157254524128186645856863336385886327436748347178332537761286646475825558181584537671236252886281487824434283523386411683557747877768728234285284882662523467265613252771266775344267126364256673618473218844144252154686667116443872318854164481652687365766567865663354352716433618512784212855182434735666126876717173554446856758247775176742137583748884558235626562646421281141385351612372554871151363448453258674312511453727428556567173184158466377338562821845358156856458465211588526324327841745547751714172141153681733383444558442538636717821756545462765337878217167427766827572725813213817577353211677341267846544534722676272182267152774248881823412335853233155737665181646344644474136451322562437616332662116211624425127334273818343566473164245254733535141841872388514812482614783155626627472262132288837756215217735254882228188867866443638341683815465384888786551382261265212218716812112671145162785873218378836287385523236481476874882786478767313725217527355121278864568456854345433882735187615617752764421725168464614773544772253446578631843458876364488434551661338868551865661867413156573246335783755822244241657163676687882576428111282612447241288825624447281187666744148564578142618643532236184445721764783416533414427321176522611657287134357665224545654163241322682255681434125561712815288327253368538278651264854641238237543848888523447235527558678662133436186854858742182426342378278537887288382235112743276172661523173488324214675831745253321448343673272352736128164385334867817733227353216725783727441744311271468884372653832274625468516375312286324541431625687344881528628718246652412263713213383422171631251886643536767777124125774856868138458622488274672153547833381818715476323811365462482344548348281444276463255788517483454457147172255418684334252681543174757353248785635264251128171474731353676253785878114262776771363866234526856522137455333872665662352723265477582416816864632315141277282648585612852357632523133751236411157587451575425663545576311812113538864132334466727836656457245557155554357414743543278822442857463675282537618163452823254421863282416331116671176777761263855245183723483267335621566371246761836728135152452128735262275427277836581112823682665857163372718362872888746226454558433331517132888285641458285252764786824434224218773775465856743221672674786226752116348745235224242125462784266846642336725337728537774123146717432661842542184817682264274455258135286142326477243128416548235644333534635174764774484255668748232583832336371437464448113583273148813283587531143487455312638613581821748217722251866264383264323372856573834256811336325642732738631845347433682624125656541321248834535167114243645872285834824727837441841465711454574766758316711551555668845871418472237665445117163618388757854413676151655262875812482473878336362673648752126574734542536235753631154846718526566881758563225184188151741458725471256211483882366872823654333441553261375235837632584421541785527442438128212841286317868155277527767378266162247548446118226878423356873386477332835515424188631836321655351658848558717276211851288851256227273638565483774431555412433642538888426133216258712443255236171846557732718434172386277711215266582172723753861156474254842265774687771723118722458842146861428444887676857536668334415787788311411368631573217236276633512213351344826835825688424756214485426147515368757136645231547556157461736423158768234413237881366773463274271133533861173548545873836224333883355528637677518257252533852852247416338684251246822162137221114512245272216826625573683275752313134322443641162637663871155353366657783663771628475761476678812337174857383164172335331667564454262666263431735827258225648655242365687132711173888477117873456354533416584682657515165561776372332443187434311136684847882271421654531441866645475465835753462487557512365831538643335417554451716634437121141675865486317441432752314113784757415851352655715652578856882874775147243327554781544416765861445821631538454531255615878575376877617767613732547174368284433131562147775734888466781771234114161764328882157184444588362662245737861736642218521568455338214654541381831742683625337562558625148645487473228251481354268138383844574328311236866167472482372365723732658732225432836145248376526468341284476635528281425423762418841138144416835554256684171877477542222553323537854331314158714357266322321534186288225332362614281728627462571286777172277155432271722558373158714613481853565381362585138115175542451543561218742652261262341712623747282267652834721814648488556712371117841713272243626552267825123631224284221414663184872662733266287315436477522777365217387625314742355688122816614885734563763224428575557357174461548165457441742716323124583618661644876721464211818772311567214837133661377715585474364172757352751177125582112525652156843737518677278415563435881765166418261717273224451681256884216744736717315624631458241531846332662458758182531576251811862364442653518524376112626417552787818732262673121721548356728155525485372411687435281736574177588726441672321134651444252366133674327343274257331374355273452728227553767353743771772487613572263138122724288166752117748764881314712683273176462638578156515645683837745251464334252756525145314266147338166518882777235685386628122824537247716871314561258581518662622486876335462437112152762415263473176661717126526683731661764213216744832383152327662315182272457742382281285484232862447655461352257367474183266831774528733457378175721876311854548816548785328236475264751523877544387347536455714476433285558113443334776438875184647636243251281134462812711418548323614678685615123813281287752751621775625872454321641436227163712571147213148472513325514471451514375265576281122348561877621347776153572386357278716764282326161463681536332111177364453542825558888827616777556188431455343715455853374138564768378434555812517688834147584142678538651217838788453834471754623362743824427383218288237273314218473444876323684378288863814135831274338161136451148816384486881864117874573885151121456786552225376171145182687388412677381272711174784414344661371558855574725483478888128286232347813566815125453328882817326522878332673851413312362132761573471871245512647645732144236745284888511731555325718674753447623777635665731138577245531542314352732367727621345151228841147263342147681427252624443486112724125838785517828782235542342171588188645365634611431541674853618375256758182233262336412566514533655486466378315415746563828333214721137753351512242468766361677736748372676633444482837664411878568487335857818345545473528266231246568135573224377873711737211232777646865774377763154234844634712243518284222185461471732364642536886573581411113241731137167382847385222367868353133246548447333137651556351275558838271224124824756412243762483856544554635877358661755238175436172214573162564542286476872484758171145423336646566824628737821878858516436261584276354283682776343218528285345751282272546485121816867784487641335443667416675376664258568381123667115513847465718222264763842225675744287512782724517842836224783176453724884233383657547231365563878356756841245122565355173216514216583254867546388882456477118471236227274185334371285731641255835523432516288337347582552274647215218335125644535874786821454742462812573744363757837516512186784651875851873338778635356332827874142247213213771722124646514413474617184114351132734365526126162437826424528538428812161743241351722528672314743783816171161166658461285322416653624178186253534142751148386832314313372563526186777573513366264512588353615871657423441777112432577223551647721333377323731178715523547613252241567116181654614233284125146262328786553228656731758252355837266615322611245728752476317412374122641422236775461577718655571682823862771538163281171525762511752755811153136846811133325435172354444427471272567342548273456683614246584373416331154668675411671153328744754444258383352512636443342283567673655684671437361112845224447872357476855618442548318822133832223832336864427438368338542582628173315662178528453446361236317373561783511258261515812175772365233268288322717865152336465663882278685686577132344546381727623881461111734234455478815147428665723574536646153511286752518273725171283457231181726452328833375543563875657764453767856556774348312258485363374657223748534834534626656841878412731264736276648771525326812823612628767273854712563754455314544473168784771336448725837255578687882541135654465426516338854533128248858122237666137336873312311775741418532164663113781682887573236767486563546624861148788353535228655362613161457432466888853241713311241253388147755222216137267518283817317818651873151468346263683171571162846682116128644322586552521576447626773245215617463278436485788566755841167517144338233578128633175568265115717831724777341378277615638385575335327482386824518471548238673316815322522271241777413423181177775317428546537615555464443442825213855575837666878282535541448656622238488835581111344568361232714674281773418526321773711471636652772761761688432115445254823578456611676453385263664858341365328678314148844536484888481576724343861332733255562856812521268683681371563745112214851728815772117745482446847734286868838414385236663823374657243846481117546655183342678222583886683313123485154388233142212466716644126153558157567542738876623183554331573154577342575278427633185578387218656281415581532312327832732242274718547216221126847687871665871831854462141622425885748526161141715842213275886273733472685468548118821815514883735273828563474154113711326666858234235248153468535813114677143853446167533848418166146274175177322685428773434412213721827225834288647575537677555717865685877466116765488863335525313567133761241883283756288341846882464727433188228184678611361166273655585514186885861532345327136162287615224764161782522123836581428757468426881661432532881248247733546278735812545467556647638122146622315755125233875348777656851288378752831213562613371215767476375827276216234312335326583447742341128441228521448847686517472623374334816837662362187457383222451758355128442367447373778286388375876557188386731538526132752456825361746765455178681113255182753176161444645354283881275482366645128663234466555741538277812646348272265227863124266151552733224113888126864872868671643582811372267266834877175611771616886881726681353347226487133214751255214563665666557216676656118625812466433866533121757224575553624867567635354365422833387554533688453275427724255346242154173342874862421862474665858232518811288553461457685138525217167658645351513628455667386876473825485137675117523146875561875867424676522222871155644866824227868314665744627423144441713222677625742486737365661161741748816444128727261687231847188261237542841888726773365466865558542186887674625371313818564121844758218566136334851842567866537671661537887582544647485158628346314433838744518848788181532456874887846727875478427883845751545542435164562116815481682877688351153636671886377484551725384276382322181658454818352414833151346574741416822117111211511563317832176226425585185225843686827472685326655384451562835784553312167571123517624777537126263358264187688526457432885663158345868367234686483742747871373887474126818375672835216814181878637616483181564627817315464458388661815315837451252647871123128156144562764321312143532311312366537685733361156832252172172867282157647544226811785881164257646543364738326574654841553144778233231621317165512583224587143556878627628523733657841418863235583262813532762646532347213236643655823235173257877612582861232414655145653665153438357152865162444648364387764714716322414617528181877174866844875626436884426422476755257813117545378545186338564351542313321171668334783235171275286137168143271718258262746452642454267747136713687525465112243375567842722458735656711376262418825726684411481823358886624821528762187548244812237136565524673628438848464724644424832174457786318884836878458817151255312646476173435734466136532527225181485683116675683313653575166532362842842266716743175133646868283454317232773254538143163668355566887412388662735785613636563778574485231267826256734787424483317447531644115432214551387433334175838651132674552876623423756861421353123257323172641643885677386182311376174473223387284627557824214838546175867384673244166454745838753226423748226517615827387552533425257243132442362861361232842383764287467522748613616325278317652271677145381836366568174125556734583114511313185742456738851334751756777524531174876631285335661623112554863877172715732164512331641583881854668811284451571474445284158754387257844376814642673268675357444238624248711861248232218382646168612722763561552264452472225837768856214551223311742856278337825777567574313638373575258652543737544462412432358674756332586566336634574724548574621354528833565285353682153677246743281754216386827856733787572356253287324521262663415382121813334224542684671514842242428121413432852732266827178214316324133462337561454146542162568761871277416851615161721834642587352331747234282717746516167787628523386221536477338178482261188522842358178637121878524747824565631553562581873142583867425763416168385242228423363336768323624131861272463174117817675224456758853536764642748646464682136778461684437412385826534663863321254874387735134633885452625144235684633563676716115347276671261688767775253431112335744488262212784538745755832735316452167355231354215482552734335547412313525647134661435314783123764565823287567184127344321673638275334651166773354748776825275163314768773261562816581873287661611154647865677748284353268535663467748682851345351656673533768123583533728753155282755668143524571834776638634841135618364283611661254437461555535662384678641326382412314321573128845473414442742687828322175353827252583113287156727726522124475711658636825677466817656764262753584254745173536286628363651582741865416825835544816843265385271243774543735356757157142632246761725331221425187568443313586241832522588241456371825856373683675517657347488676748342668535861521853476782766511245867837125134788187473268871162268122431811348825754747443218333785614612315117548634264482181376446577624824675355633767844142775541873174218741374367633116842253326534653316432435367275561656575317733653463323718636341825241661524581516834225655471147363346458427165428811173677383738631336867372883774587826713682634466152888148183118816547774826158761826526286216184745384655162517311638447137444785424456123744371421852435168427836163764658684785557717311823625438315737414751223583371468411551556781242687368534563371322473235765888224552274647545364173182678765457811687827673868474354222716412718764335281157613218527415146823466518175272527537456867147686812652366752673533145732236663433558473167242255565118838565888845854237557734886557157175334735327432753516112427233187322414615415687527874126846715314445512633357618584116356824515156214176862618368736168737347551236541387268262721234266561123213456556831754685724237454563443788141444486435617176583145158437848173288812562846616576173133584468475376583457775134718717636233767365882883562174225153715224552486655455712876185567727135252482627231617565872484246528234431517122658475671871462633645188728587751618846532337412733112871545822847813262462818182883146752351152512535442638284153334111713775645585146865482816818368126464848285755428655755443365847555115524761463837513754177373787367536174172172533827373176153451118627785553713154451437634176177125714861347313458452832131714216744846541367621335488688348455741831575377156178385824725362822514668286168643372741883525374435587124782333632572542458687211356765224823373131354161145525347882518661615868861177657311532481551174254617315464745646616746767573164235133331322846223757212545813183665588326472688155563386857753731348872378425831243473147534863517462356758452462416771211556514857154438345158318675685427738832613746676882783456883282575437314278524328458411161376544146444858527818852482567383823874387471318218664721646433421678224653761341314352135645843622618172138738856853252472846325443126316778741536457686542874288482282578463573237564338573812428517354886815388755274733181832552357453124643288463546523523365561873874125414142363625863861484572746857468561466617262265714228164661274732735215673516187576573628334713556137383453157465281457272238572855385586517325532646422311858622241411656557727877386186248621745543628835723377217414287761821265513116254573453811186768531517754634128574781756555218137758332765367822367841353573555131861244432781686457584747763166751541871161138441388344171186738474573655637343138158237244686642616177322215127671314188257578758123822738311735555835456815746726627886784446183386717487648472658428755318865851541446722721573584248666331725878672333571235454867512244276742416218437247683246687477883637445155667473857838668226162312752357832748742385367778446377238462852115186276418387812346631363456656823211742442288178452278581253855766527767557135177313752874236471138573417712126816788654744472155128328781618351618635125424338517588275313215375818177681131671186621312332836227733583255881811577378568462678223477662351127242668626531384316351236832831724871518832667185722711281451182456324377244853513478218714721636155473214366386582473151218362874573561883438147355367877465661775713863712625227445218156371168555412382231452362788464213766483841146851513438375233318383833723883558325558284376513232532478468785623838845843211584754562524284332634376571587627751216168245565337733477217168542633135528266366151165855368884154334585567215571573748862832814136473811721364881334817151351351165456144737387337777284376128725432642232152551488325324125515224188877671815645346747816264375742338214264615835571171754882473626284627757847365348175165324352672211652446268764638846545561444332486587822555585486121274835467363583172384541186767476875177515734748547118678452366521738676738861585365843575672431513147337324164562662621754157775285827426721144717675662747525781353782541344685451186876615844171136381372457164171465712316472475774772124881885618246474232446825818772832137384278837326221878265128323172817486176775117762675357845354522121728264671157332736332727835147271683221886626465265126711121887567746546265523285317645356313261122665358416486873447871322635713831236674428117142816647827157427532788836717228471742513117521468225215452371887568686614256261787368821117254621351136148735722527268876462714546315126857285337714688413373613131382154774476767814814238268578618565158257711311662784672315236183555237628726754638267887512726748132814473737217271848366415786661821135325732245311816224714466138743344427618386346568145148753436621268638354858376856162114456685773343845412336682384212614873531862752452252721626244875471633478261413588777411772378426456685372138457883748487226265462147346448154521485482323546243354678381762373333538352672886888457854836235237442874213818687518884185667381782888171176816423173288633552237485168173774226234441473615535234348226564643352414412442862455575464781251276483781632888782828253533528613153317167337366164171131358781783183616446331546112715517257743128171332622645423361777313674155151758637768872315384684167174656318838715763584181568535441572812815453188358764727341872818257114251451456138267813157257741511135777783285218665862454244765877253812377564231784835116583171563868757274387136481611456665338285237142576171488166263516645534244527643441246251437674157627783254185188111475538117511142727644718318888117322228646611847778766464338818432521171422163842485187427467127735841672488748585654513421822412666632876427176648261227876174841628464275588854732511484167163731644632371373462223823381216176252331428224456645837857847326117737861557814347742614184823383745588355126217688438447816332316833754133444324256117567367288578734214458877818378643538455814554665287745533531211234136384458723842726146385162774857687733762735113477663248434528454734772865143476214238147218212385631423836842532652536344164251433175445181854136858654156243272281481161763746447464548254247454114262317682812428768484415341726241132761662473156865123524365141153886853717714166578546863447223218765823651667483846681711538611354743778512122375523683426453178531717335536425677824356587815728866366828652786377628865762424816314882524314642461164646857824344411522153223431186457111562563121162344263262262573174217365634611535828235123241555662217442772832288178672565322755163526311263148836582327846772858217714526522574811142843572466183748262831745335818288124232537528512365118533734621388772112458878273383313373452182571441553557235164465411416613436577233255165342448675735153416121544766331564627353435642172453514657357814443267226782565427434881382183286572811676414642555812546443733242842176687668875176716557882276167362112574233646134648515483116811771835118373852433844288161726414554755641642551725812827551317433528671625566625325267633721534475121188226887276783253215325461662447361638246783278156358783756681437451372757145742477826288555664211827284865541444245432483821137128834181524256541781888842152453323423541656376162232133884146147486311173472275415267234685385715586311358267674212624744371531171377123146475862138274377332815134746726554751831848163866666366727168635717466252235422787472151837557735572214187215442888762825371254378566533158664438412614248822445167482484127461122842133831775857767616728623784585718712745142884655113665822871551116382882651183354532773846868668484584426536453872628514366244743368711431673862283152245735711237718522688852277258334476164157745387524121814328318327624136776316635137774226724645217526854585764347273562743877285523318458642272561886247136846164455412833646873132626525876273636236886767555858781223461185157737186773545217754736774558164514424752722488371734112226138271587864742652245387715577886565532187448622516135672716682158673783316834155465538778145322276423428613777132571538238751545354285233122831748862472454217614721334313162246613741653173821382182223488612472433488616754753652861778456552481641577753314361554213257564613474533875825443165586777384335363433382871122434641887676221424756782681668518834838487771438765225481426164837831846775535423882231742248613113284542265313368453433657378385375636523651677628563885684328717147388635713365327314743845533386135668315332721357783756816283762148846265457251886867354674827733386824535146746418732381758532562853875486766576251486143865278864368578732548362117767162348244336372735178615563458825246231264788143551587755161662873556663238134455165851423288144416273253662166641742554831545852538542824187433226447532282454616367436815725134367777813747715533843618871453756332173324714454356676563327568882251153443575726445268181724728685712653671258681266263824862817247428674468834127412358656516131537263526411578376522483724124777315633461287236457563842121584122544777457347673245211877633235356381746542175866546345115485626326487723527274744278486815263885312154113782773361815585673168286462468417582787577285463368355583615346163322176555168412136353234725532421685157665265475262481563185836662377114321755443582545524174442678451478262465371212763861462618312828733845274285442335448368388151611862578615316241641576163177747514738718111622346464771145536176561417267745141676732516155661183214571432135761243383565788784272348148223458261556521861756874164678666573518365184171732485763336753522742434848124683532277177754773563416466435562832718623168244416414751261624524685524831555662363745532684742227648288721173221262625855836254884562153257547334466152225436885148254236147762227581612752511712483516262615884443173847255833142487672553118421728623288778153887436677555516645324313277653648553722646384634356674662214465131378153743722324658185815328832651562716285184428437578721763635682568855455767416355713571541178834625231474784527757173787815567536226365354762244628167735343713225817143281822141844783477337651727623812688411265542481323158741318568445153268474538527584244265783683817371285348867737722348838765162551378871474354145346886463845252785374132423834237727432482117756482781613152264853416255423314541488456333541616624345577477518547551854315343621114638244884855471575523724655753885728876332531555714655221353648886884284447253611773351886822527264388788315243821223378142883426722652688874363884338783843881232464541587585781171868831736848786726763622762866838533322866813381854323581354547551788183441366132528745761382647483367273876581343326561658733368356171437286787185753425367464386682614581878657881248445278377844225631384351758741375863752253631754783375156617745388244166381463432436683361144331755337657362671521358376351451542645527851777846842567261816866732351652736572862837615683858638534211478217812752222452643376238358864844411576665811772118473325862363411234712362148226254253721623621643221336587225817131323341323386626625165854244154172476518715273824487574815261574778336277313552611455422848666254644458858725882184646817474255331733677361555765886657485412141178127844566241331665564722823586517188245836831814151282141811631531141611483251532352236336485528231861826812832757876511821267747745413713663847313131237741685266676164831382633646355126275418144716711586738664886267553711614755443288848876862658215475523687848765458416111346823462581726321864425156334434626131885644343138431113435444566848515268513813423273483686251825565183828866717633142818384475183687556213881461734685534678875715662388357382431451173247632323546343377173873635783776245447688133357645631863118346168613143846143773843118111144427377658821324382553563534245677173854526527644866323366457123432676215556836184773211513374333568858412762571557865583782831346738445272441485878145485587573863764182336842537227757876345317585882284485625116873741472512426824188248771372146126735882734283282273156753636838618767116236445354336628852545223716517326832254244412416532724281517416158871855113248872251255813624381874841247568136343134635656185671241734346258851761383558235481172134258874566534558512185212325437714468523345367888785325227656587614523727144713488887518372617164586747348388348344285788656461888243834864517112587666618413482873875362628138848623453154461658546141168878871412757634261713754267845531184245476751837827854377262372381712325182172543448534346245474222853523487558461123425748847456358621626268275283515775771283887766518832721138456535211786186531871741632682337152247827283856842676755585785552342233653124417346828277657771624717241122558173442458872366315775361347284268221352341244572158355181876383864816117723861143677874662367355425135574747743276675643878362473652818183574753577753116614742177377844812153172754235782846722526121462274382247552717187471582768516415732845467347117545562727776226715615252843441211437676224746184651243116157175277625337718227244337548221134523374524155144855878441833132454752821483586648237277777241383637531638854328218883477352181332284824428547455825333637833633742814843513418167362244814166327277248415723476313234384487186514138645336345163155482782216834143627226852224476122362187472785753635136714853635532616255311482733185673248568632558365482222481781837822565417354242787528735772545336271786322644573842485164724127313342674524833337576741738337665561484456828348666127716481733455112547738431154333218828588515765871361873675128886887514551747386138184153521427726574511671171681658234186718372886826852861648672555131721445212784255422483151373585534445863728784443352534333572742346548771661761116135457775526422262618772528386588242875517858133214788611531885716115336122672113542428142737478155374586435632843255635815414328514168312562466743825273624123644241746814217873741158837311544625386183274868224376876476447561611476715888721826664813323231367126656325214852285676524537335233416787174436355881348418342422567716212625157326412858848657814341662813114745546442385767637651736884282643886347437622571146626475562715183433245674517578352566723683258213183322667535537454632187174112311332265888217823186283112217315115828477115466765253468351777184576281887244886463475421165864188624473284678186344476588646226675233228574274774377514574386632251233652276261688258576123346437547724683815145558516865861218633522141837512736644147534322285246816611426518834345764256175655353821633158153253638725438585277541571485462653172668718744452873812626351182151226215158562455423275877646458568856442857114612831287858315328222725611527557727537174112511282363714553174535485213361232211344384416472835245632628447258758857868627717177251473886718481446843511157736257383382633247343636654756211835422656876811615665881133654413545726225765516668238848375473646278817275735188178543576625856375835758888385261285228542613341841185685322714584165121882283847126673824162526681212857674178471225414571488758845782566631575653311637344836422187821284848464662782236688332217811878171527154814233552455336133282768737518661148182316811228585647322647624388885136674485142675564318241375865267512852563412625255148634331424862166881336168682855885825636123216586336143568754814563636445425242471145117841447465717147577762516671777672473335416371745277448626781538474766424612353571482358645668314652353424651824653758473136657178385237381152425767423475156565554174574576474162461618221846283366724277436881737767486441836763245538278874835672236848682368683723632376778314236887753851526514843732425116226573454721538785878328161647156774126267372232726448452282114773352875563483244754486275185541532436843878213555664353568683746575246235213235682736753638613337552372553845115355631613578572414387451614322426181632655528456546182168552613118247813134666482151764771826834447317512675431286173427176461772617268344446563861878756481278828733333744161354157888318384252732735216513318471261267786782162854432658171677762457244583756558152734737416744188578837872646613582563423114263781651358483654864737145125438614441565464446811371784485685562666781347377648644338665835257435612715211162615148172245752582733818281864134314263483567484537535422218568518183882354281324163225432345213622121743333454422741878774485633532523825836168251828586813263285454613785563255343783254147336567115452668684275565547557882355222336584568544266322146545767848273848155626184633816251483287826761763132711774134456466782644836614814151745257358616352573566383482456241633538285486312667354664776287866271681845666743335767745532827646673463881541562627568773864445173175342156771847485443336776352258458625114167814217447775527613625677887361737348758547216176114243138435517113874848738113461784284717335745734384237644642631726887487862542547122453726851112416845683854264166723761466243874664214215383756445472418728277212683618847371832261471337346733663531531128777884148662263826773236755837726516676621546787573753245737366886262718853312756112173655478248533313365385566743652124638313335553558278333676158751371221243465632648348566878734523531422457181232652568824716837888181232832624575618667157427214713423676524568746624476127447727266212453871554282311863324713376886748183147234434287428516732187748357531121223532442187647447287123643624335668561638568324733542522741764417154184541542675847765858633244546625266381558721586657332623674145538255812853518342274113871453815586287348266711878141445286156313123424412177243754468544355186185844371188571752814768885461768451554631288242132575532677731443185558374267347285617772334148347861514827422237768214486511213568628767525445272668278535345512244727648841434312378733464171814843713364426746132572734713888484462417726467762831768256426143176374765422255834517221833236145644176324211411731358442723533664642471852117652773333225465482763121613573457283286424656816654833814857254541558761243831315467637121516856572267887247347575144526566838587674268154747313417856673366883757745742886423734535254257557811784164263462755774151275647417247252334372526661746765136856632253386681718273326181251555887611185364425118341616783424113571541773885183583631161822477646456415681816763215213282111534776527156214581717487464571284372831412183247335164562686625244116147224248663345463538861441542325716221754255482421316327463385743534226682237368161462378315585748866686528323281836735666885465158787415134423126788423612328532466876476788181475177455554266321567873632511645824656222588876548337616437558241223814738677148148468227634228336586566512815866771458838341241858323833281454732534426327132184625875882687146781338831432311638836283458263842645244347274217717486438322513767887483826417745584884825776231836743231547382556626268654166666421331475271443714487433436261772724558644754135271884834621688446513474451831158244517668714348185114556248354745366631371712377875811681323456884326454182881675355824112147644643174253443177673261342245676151864451682518167354455266434116718844171211714516612238778851316286362342128168711631374241861546343163835748488258276616351122325537872263172184678825642324442861438623631415864425176324335573333865234741414746154683772411431637817482448584215332321521554684282887712357377817245787821858137287837764618268541238627678672451824386726611365357828673322256825352684161254685477123314126727123273355372446852621652161727328644631865616462311476351887721452775577245453384417283783662417256474265512542877467726771837624158145686446512158886665464215361372711252878274673426554172518316187718187876821852627772548431748335213651322474553181252762745435152334826235357654745833124327521448847331736387677832218311638474145775538855378273351852622558634817141832256141176143712834586674587357261545641124811153578854361265648684865867857631688671274217433162258622577842686252348426365532457825243534413785888532735448681283663686743722486111381445872186334364855844758551356487885782482528872242526243267564331516552614368278417772115532655682347225612236234813771383265384587125543435715315241848753342467765481433664261472445421652588846552282268575331434176718635588855265387723313426581262281651322735822718711122362484264336137817566627584366213843466566838626243815332757165468363185675527212287382233546273726175251668258865764576542256544313534267174667214333677411164352261686561647435837286647721843161116434484844486276557885171854652314454515142738152752456222284381435753157287713857661143252382432573848635116467315318382137836185876828436763354452472381174743847618228855887144242147252546537367855712166867358134848161471723328781666151773355626328137121447884852367323545686425338286737386788523421335711248743367118547776545756546137758714136647558347682343687477854741324175541445722616146874736722724838448583741822636881134766825817823468743812262441548623122673434477857328513346361843841175127435838631547468166226217825424237527456271824737128411388541131478725583372432214754851461534677636775771884112254355363435461383847523272658575117514514251886242153177324367447264625112686477554558352475285622241427683187413835431365484153877635155421262121634751118515761238711143236814147274272288445165826127116666247155274354857562753462838515878741365451456878155267152877176632734366128376353566332271185357411537235731455317122338118532442564154336368561372462237187842165231238836471524332144811312567687616368824635234817485522648178426248716261378778275484635613254735425233837512481646128346262322763452345112327872651244767681774681524732838426348144221156685231283336135144475378317164741163248473753856415881832748731786222635817314821221361124584541852631887725726514582383628644736566365117686826465282531265525342565276513314547854274887428823766444612812166758833838732631613417578666543275768767712671627828446121772168623286667433454853717128754867888374842471686778256834511116453451825651738217171471842817354358446573562248637666456526158174688447671882864312646365737643212643211366221556738235715268458521841534843818648537767372736758714563657125671518456845735561241264535117563281215881173581362184425125468787427174657177622422538181347285643517173842478527341321421811471442321315428167713435447238343357278317428475353366526131532836755443251167361586855655424517358581463141866683458584233554158665773786752222433482562784888536161448784813625622867724274233441445174541513275838416735814225335444767535813113524313581878213643286858526424646776782858476746766438141578821668845282245471233545458214663738331556631245755218424112277427127268718523668286238285118452861647687516874568247767148181874857484354618665351234537184288372711233364241432142564171158175265844362382135315453526633617281385773527426556788722471452331435814735644418246137766577667412668122383488464646221477122733685567453683685731418253655814761123538885735414125841373538626635177644287435416817615657526858464815484784345115776117531236741842441836362773136487327441772545686458253116321656277887133377424758742142744415221578488476387661324538678781467236742776416841142282638677385214587463171645711636788367266354413845321484635654834867454655215186487414563618213666162116627814548141487764484627431312161461782715525368618747281326574637473521162368318744568367833156481713776123513255322358717121458416774253421486138821582113115655311426634774443315154222433658885147371655661166272681514771466836765517165743451388441484237432267377252633545544585314326255338764658523774118534655156368568156532541534845557171585883551433175831541141562171646383354187365538271375813866847366568167762324843847217182655473815728356555658811381756832441387878811226678641465142611542242846813135611334848451381452566767137486836657242753783534657885715244817671265347376635661531711331432865572775514244726841587381441287752636377367428718837667467254511768465862614382842775388614262715722817248375266324513471567645287175868464672378781735842326785561157761234862822651355443231356137415528872774646672882862866666223632331527558283882258855378882334565524138144311285286334322124242668673347755764353575174876417235114345771354655624882476776686717818486278254783378286565312683574188617631728727613151256323361341327641688641161473257561783887675451225651466262487224888384633237826282235523357248248735384287648365575116848724644373861388753488514721425856186432778775332366887165173575875385533277622725215513221245713318763741313454662783611483868861724117735741264143871626823576667644234615482483742524273231766347721271636575821242365548336626418524363831138714646367287531761428725267876567838352247561547686534742311153525117388645416262585136266867278481771425552775185367852247123652426457564457157271645868342624852564181546858474558212243824116331611452757452724432316567674174224865211546435837155323256364675178688421751343628357231856182316232744421412748472865157426543353586848886642685882154485251253418261725281361835737277661445385278231741864536716672427432657876765751814133321147256561436325617254812115343324831654616815233827128271422423812537164465145846645633372423761831437841112585366581735676124774727327838257355114754327881167421848727634268636727341116728332333864784726451682483214746778678165415884288358217535176454137885213457777324845465568265375131352557416817388535657675863173265431747537137547124587244257545154735554456768641616227513157638713337361157582368871487611234162114732514334261134774552632618715358216681676671725341128286746338826543221555334738581225786288677313374845438877417526763173622422741741151828458377854328581343574238334483147165757851878623567181584683884761424818866484752326373452457715626114556816457271578774636273715165131787483321347833165681137235427284843332365734131366138758381726212511334776381173786433158746525335467853377386542842847787211641346712636523843747133777368141144725684126412683283142878888863112271673878738147458217663358621844668567556237668651186438862162488123748257832756553315818665872574838442311456713218485353521466728464254315656563463115833766458362457585121474627688252138742675571346548353435382763176557485641444615342574771557833358154327433418181857383857641645252541154411171162582757688458172736847857166643818774224656634824278172544227264158232314846135413126232358633244227157112722862831554346378311778554162313115888621652348868644561673764772141118174865838764127655883177252258236331424466468311881885321513275775523531374764831521657774683346415737763848382354185461841842388832677178666867837572576336153825284658626178763632755245552753137211148346334363525238672523436347123127727751722481125247586287611868442217275832181571431225183641672562146245125174174753167313347154855541242455434561763618583418552226287881543581544814531872536425711511622642315762825168738232712567636762518175873241231753883646276853678657752773555537584538243515743718251114361581455477883328784642526677222842547175872713748328147726315558428237322268154143657518286623254264563778685256483743533264258573636824851233762233173381416141111687753866751643141341157662348415381654336416662413465848643674711875165675428358364854737786247232416844255171677168523458163553463163277656431744782747622544772764178525868823468641462335671836115166251242255228223846281244544111432256132548237478617783356334177383586717426363348737121423826723777258662155378338716758627458616438455362786678361112578322373182537251818545262848686687833782622435185151343437313643182467311521121316837332667183412345175286266216558383165864275166371556874561276175388583176243862586371634452231436375658371336453771534865758587286432326358615551623616852427337146838535263327358321526465785368852762157371275264835238625842713676872426485662251471823514354328177825631267144787756713218247222514763871654631276754244765246464442786462812138372363441152467718558313183763451686146618455384358348225518755581252583244441766457171611253418484654547177162374773728544545482834177786351587846825745881241481888747471246142331874574614344412375681424125327312438458881182286436564173565863215742416526382844382665673746256617447268488658788832281244756284848625332867856425642436822337672551751857643181531463124844773615471445276272714812323474563483847672861354431837621165222552522351544368328177851533252864735166682275724478344113375273555757433322868117837188134552764146486734171552451321724875638284541281655421552654782851238717258847871123264116453617471352754748316324517625431667516313487838528727347726458535343664888443384846631528224734337682651685572163346164856238533157833152316264565772343656565442334386286814322515311662188518642732451747845786384166866486467512426187782466765268865312617165216523363176468156821246367772888627514573236282551274876424221243818157141621545661634446564674532533447176241464417427165218363436736244555562618251137218143445138611853488356377347758468614873524566815847566366153686334632681726515188823321522857572122876568828485156347816213137888244811468417671814772288262856462832534565813111257334251113626518333776474354135568151722258821554538864378678842727866683654368432326741378261418786262484732364262516511133744684117843876178116323574384667113263564858236214486751851323771217231536255835845337483132421486321343654817513713643652751718581512536627545575546472656384321136281858371488121357483788721824618452486116864186745775663462582517443153326726486745863225432273673585526315852635823711321215464783855652326546735725524534246526778824255566221487648168473732578472553611487236887514528718823837673124634546813661722488352641428777752822363518682547444215324883744533751171156811622742844338361784665644426216847138833833521656633184416637423882581581752577251255666345657524733587278387721413666357833372635674417117876536888284856855688234372152516265722742213585864747872156827531273424214568163317182766555877113415536841526744224117428877787718357123232475884161713417356137538117871137384782743678572771314321128723527114345281717586674662743722664541645251317156382667552883766882866288378182481236178275228818213787676353412524873416188586526466345631877615251112777337858413613766535112627385533363734332512858617728147776311213273676743617265126827755152143156175338585118621128755166342226822455174655576385231344147858357461135466125421534635615582224661333771547778748868115654743776828864537163643318771443574762231776215563844232728553827862771838315863256346428364333788864636324811283576325728347576242521753341336384676268751678184226817783883522686478852688585573731628667886156461853222747186471127875465241777541868723628824135534146552416761734315577248518757862687738473225656222815663548136363243751173647866136368671281436742177682856451131426355471583264133412664178687631133571388622632868715211748618423736466184367232177215358726737617122627221533332257653332815442144273565675128712346671747172873366333888467828748414257823722125457414316217673381615287466347783233341122885225255442888571125345341442236725182346512251253754457168388146326547817124716788215672377378126442288112158635525741177563142775684682463345866242226133346282652727564814252863754426557236412251677134356454315647161784581475541324448252372723638325732775231738274755141733766415548636318188823188664624687447813443143743611126641172252853623654538811877588358137248112443415867438274848441444865445671537171581217568423233676731188627123243861476335257575835831553162456443487271613227776845112378522753717576643532868654361117626718275634365387454486574581153418377847842161523832678614771736732376677754515765581561825617856245528364684867537552323741345656214712361434274885726262262447235322418253246316776511383586176317448131155746235452451421777467728488581665457581615446472838427156876541273612678828337587435282545311185325351758777316626335156685451583835816455343624354538385412552521111723147326422772677337471233218352353244773631714384232222443447371552636168626245535457362366714758688383864555277781536431211253722717611733446885845257877883842723558632646332874161757324327486428452625155314321353685274684843747771472862851685162341766761125583586458625681867167645487181555572724445671764261121551338152218457762148223541527368313367285241577687311632353185136833748333372726557376123182581883834766765516338757538487354318663148483853355337651511832131156837576747263463287855825727774277842286811853233624876234828187478387856657141373577282358327636663437211511618656542663562435618822488455573157418362687538665556413824543727457372511161836453718617237428255741862637727533461147552168882266733815674114427573145217267171661631866176434343224444321625458522617875634726117258557321863484522121658732118824746677332572614522246231841888154627227345262233457736787577243561187783868288281644333256567785584443331825842816816872645574741244247345588486156655575614274215521824534271542776843513882117636688728316852241541767224824774424113814288871612377261528667726776144553237884138516235282531327683145127716378336558765187121878751358216734435651645214113667314848758518618272812133288533453424416126184678761178818537741782317811375423411165136688444238328726525236264847551771485524456435283476763757578657717858462122316612347334182554112587234823148416642464833755365475885176856817268313762747332848145511713563185183868211141285765186174817226475678311362857512711264565453687833553256357767847522175282527821266288775637278642721435257851143758744866775416687417123524388544285577333474121857361687727373482856445481813658582231663516443214428164232416823212868785586724836743836134433723571258625166555211218523563811237754483865227748535477441617327263328265684275137643177717646531537245475811468814228686237441463374778168676666755332845776533537616571547872357472642771414736284752563431322766581776883145355711664566517442217845512715447578615163388744851622833178281857778453373363358376541448427424163667813838262766581511243155228476846336831114438488511873285114317687151227252211767725245312642267673785672488535827217435668555424468514441864535843385858464676728441752757261432761122558136365316882144561273426427341341647245544725732755857286682476457842485544126768424841561728164824134444756288112582628667372334716347488118676533765412236466457748584562218853346546468773424768425777117564564278733511718355884443841764331755318655633638728368251817881163513277327641583126118288688653178864785566685117377254738662831536863531268436361783742718667631187846833573761515888246624543323724574548782543118624352416414686714825761822382821355163414743523612758551746838632337665238247215352313177647227421775367847755481587756387616427363411781646273887774263611328225522212336651821414777758777761882273173345416444512476435813863276175128628431771638433638673562366777616348187257767636354621445288651352831423218547344465526635687682584636524274677225447617874721568118427845418877482858656615658335377147375864778865887337411314538383786471557452627511846146181686645484411823181742815566353123677823431133182273833281885264243832841158328437722747784121542412265336355368627587847325176373418683185572251561462864577716113148817436328465188875383168441322318222418126533571116181185736853434642644163372158357356445217457572723888224171826658188671482356117486175574273824721757466387865472748154273471723865473618565761854521145873132875523781634112183255728414416315764724886454221532274735233553216387683187521371558837122374455175821727648764528471752656182368422211874522868676662586213318841661635776871545362222517537488232315443212863566345215655462174371735223121846371757128333432566626887386851275331637462674537265725322616732124657512635885368852158336178247621241171561267238842865541265514687486521214877572735158143268637243565373741265127621681876746332374563743731442811666635478267113458434473487347112742388873744158168117426222638813118684848142817877486228857845825742315716867723363641515856544287425162467216214464585181645765364741174565382338747356482864217242326363468617673125721574664475377812857485324332761588156254753241313242444763616665367641125146646837762828841573221672653334618368226117183622118667721744321824715112827741551537168251258816856267425267823172558432227775461274685822611665522235454712358144463634562648352272324654586461574856174244741627755882457161628174472763824675237724538332481167113358322686815644117616523528136333821751146672758231543812572725727858864388575465238576384576654241116233242654274282732356523634614134447224613723863767586556887812316724354383388553162777277164775154556685872514811756364637222337474121318535886667352434756155581512338742411264661761825527247814184878238813876631622851735322632176668221224453485687431853783872544236745882311545388473432331151533324714511655374888283132113756255512633787883478168377158432723341513448844343241634511221812116623664537168144684212834881752221584817411475441532621171262874688151417425651663841858635781361835173784456184478541121561554656852311453233537242851126743267551652783213435221113114488665238814673761161352152338775312585275551586361885212132678271411124546366184681361241418136767746852687154138156746757756231574361116562875457732476728533351754552267133577856762354264211245357242844368661157378353771864156572765362785861464186444437814362455547735482144241845184745763114245125534485875141548181377545668247666713862535286765711334757367114752247162587362537551186431346478664266186871738574454666686142178182466635615361712777217578754321267831162615652836724378854856163763568411865735267552524621377334587537382441667171317766864687623236853767841348856733486523484764266143584638334874833285481547851562572151844837381315735578871614863164728827624645884522116773348223611588151482581112878564458171316136838667734532426343775383181784456334714834763413452156156243577877135487564721253837633846862456256666124563375547316367124866348175684712645781686131713865611568744385136613642145285483128746436523735456636882126436315371888342521155485244855658188574263267338313812423878244621368683678117615886715163574626748625543541121676324431755837573211462485514332154483248737656546374433171113374322342285127672116558524222228647448655837365473287625117821441855427877614828284663843732476262421775625614314431635675783176884662313542567112731865511478764212117153228875635738148287732248128822218717171331234228683714725677587435348167172468437675224452817452872544358566116844233537428751155711316333638331311564465152224612712145418117738783218715623784844754852532312877218748877354428454856778628864751345318242678285377135613351616747167657775715111513131256386546114766625812263728712824214564364422184351564456346388626773226657534661774236561356838564456288652225754376848645484127534714675556213536887837144553475556882453744613253843457868376733278385646613137173434738726466485482635386615574423563444752566663815442768176485452662254811374545675732636446582738612162716222786368248854528488831147824646775423114188212757621331233554742451631245626858321358448465755687632412873638267361271776368514367474378518282828513682475135438846461887817216657683817117552245748548148535268647688411362173347263644653841721341851884758288863846873376855156243817374363836222771677271352166356252647631458314342651482557881622546861672667153834131755655473534337812747624514677651385534466556344287125276344776716426743287788815677285525584371871364543182178526483554711235881823847357223241781715883173238387582136515721765556213116486376616825336828163384665872377176354845548247612681766332258827323624838528185735513815126175427456758372377831277168577845254588272828113566672177612466173142136225686743467275143358654534734225684337235858251555227371723232461553376548265381878623654644771533531752667813582423455838174737157734862367624536472832816176542432728622481844288147718516252311258272182272357263653563875683727782112776622585466624678857345672853242778638235564112616446775162852638688373746227477788566731585735465181834553461811423783753482147246841163315452114474465375551341631447644871257355618834571221881131564838114431111654228711886116153223273536633418586566566834548531748718442758417155478272513266821567428354255562121187825237581643244166573715824674242665521355568643387278732816121353422546161634151775635532734526767638115168242186238748887141686268668343734848258283683563583318873567552812587424483626175164132175736687847385612673456651133281471228564111541425326678687877623734782888523362554733652228187362521466388383545837268872582485243378675314558127481488324531144848823544865547857174613265231334783214262783388186137441534364428631757116835782214815638162213276267637427666483541214671751265458887737352871831122476233826268168522345483285364273485747261234182885412327515183847573868673148348548477345415615221576242226111652388281432567271747358432742774512581338186865525147152733111267386181115358521185481673541334261838515737775755114137158283216258771468717481887167873558775567256251242677344142815852716324235522582466781262152547487121411652472627884672784155784364174256314532187256143547214311615722427771658572885216684624784163264123775418685826545624168472418861727437164523247411426331562455114543151562756314815547452564675636112758812382483823458666111274875656334424353221565213873811185237656115247161184625618568345767384162375277357738855828743185435717645261665455142518274451684842613881857568671511425832517652831278865383356826138678445212181178143372564863575213157648555634335553771266482122124758411843164526761574883164863125556621624146383447784261354332777428277242872773563845677612841657343167852731153827582438224851644822424567361332757161878174128217158475768718681466553136517128731467655215162277511714534843785887331846224313733721733886263437851525334332214242235574867266138771474416583117336473568853526582318646175876475788143687856376126147322516844438484721376812328584185343834443383434433781528475844168168463718718222266327263636714316223211772661556278663513848166658176252888111437152387372888664567851148528658254351758147611634521622273224131232326722542322743722511827482174375654778626712241411168868664762336415844624518211326268716271873621825443464484122315345631737266837468775732383181331814543431223656315574614174623771735247761783523672258227655613683867732411653137728437283431488783635745527587348873768612658344574628871416341315272253185821144526472232752542766157136685388751257876633554747113523272727668445788563534875456617586734567167557572582655286737583836143451372715852687813653272432246178776557221151746728137862152636314836747853514855865633444676314416257611667133326751681237535565256677621123422787566546188623735561832141153323665181716368328845545726888221154464242855477142313884243232317445556612726231157416437751652153317548372111223853213645376553741311348241328574562833137783137134237648747363788558558337247617171652286138167684248238551171758822212474387856372851723832626365556355584346142837178333461784418745462586866161734465472257578231466513881563356468516738574116121761636653145388341188617125686631418674645871825871742341478723453487568267325418351145258111152157574487778186138143328786812774532647536133715626617384844238252433375558838287768314668772617526741115588515858445812856783224865865522548731674343547724246613288458263153281325535124415735155657575556745567787455575158631856672847682245684136674856835132466557826117346346172277446146843665463644264568874153416777568415117342465828523878886375613528771624532621637116853681827778766785147726786386553777571468842382783345581226877766532634225155312333752574843625147271381712182722267485786737438726646683488662885635871353756614475714753726675225478522884265663721385274848232461837276611237228215433784773571271187434124836423163113156415283768628721273582757228232738118185124883876835227611321411372871573538886671868731428266264863171811711235887837671566341446612613448463632472241863366312632813724766618547748432658455338576468713551162855754117543773482245773714422614771351612655185865244585846814358874121785162668854418561822846742821861274441315343865827728113382157646277868268153655143543848711374188556463175327582853824785831485342557553254111815886843232232733857421785866523168363356476626573431266638187455488725148462238148753435432246453482816728683516278487637723237266124412362382566425355113886463775222425342518737453538887535411183812436544536867226776635856153813142416721123812351881575856247258488147746683837686342816372114811574128388387736267327643528871585186586123885562113775186181621375514323568786884847127474555544714813866713252553434268525736267365352887314265167255173253841343775544435817525486515531822515581121553221638838685217816636873181623615764457383514452634138385166417582134833288615864874571153414768848433328356411614128685135528583583524121461437811775478617224533472853586318288743472118531854218155422647637367675574436288528575683564433731655871323648566225465622731211876464453484451268612841133741785542554884815628651512574855645355171546546215146787155127388425131244818321734473845556455384563557127646326635638342856273611535317762581831464185751545475545765258175265873378765571187622885227636313587785748883613544411623482278215884234681666172577348585411882551541616773457376212221637727878513361845882735445324356288654374317463638477188322723543167465583336386814621642483714627534653653158441727541358311367177234285561215253614648638363742654641356167553721881824521885157382387182456715482544115282364184223683745183347483563778862471768735776155376212458483181235872562728425121431542252126241615427611657731468284316228888521762643374236763787388566433485568484337621114873778436778114657257377125625221265118674374725637163831413632747827783822868233845888141878221822467756523545516255156654336385213888517467674481662313436736446483824756532137715882312152365612613175315578155545443328445676843811527265161382586824568744118481552335417544318182525285315242753656787312342327238328545731176417187488681582125626262751437168535354774533612768553335477751711316454414472337243473171562558648184132545668283217113731872733482512736414871361278452246188334285467764853888664578764161163582615442844711466732774882854871241352246686631824767266123526582336517746416566553446745756426615163547254672883347577264412743146481773327116412736643754137188645421722223838723456637717317237476537456651688844324754672265111438762546363336434821148755433136123343566861311787763355584866545835868525646423361565732338681744481852583332664382864157683663163668884887121551643228574752855237687274655712446727773337221311775361616373484676224527136136712414264758717246758871741121781816124458446321513117252834811661467774427626447445237121227374827766375756586142635136257643142535253637153754876186762333317561173323628651128434117812348185751247578152233165243133367843434218857568747152375547542133372413485727383265318434887782186836243322222235636665762556436226511537731848523756134255818221871531113167686842352647837731574333331317243434638588388632481821321351634675127664558533777435424528388753834387453313257616358611336777232331176164158431232613483177561681487752257782774142182885622582526483665252488464663468612857625135168584381346664617247184863545643557686627144162786315468623844861338166867875235463778626612768717474737633225438616647175267627523615234453155883233132244172514444866178142311534586317673883847312625271311433573221544714787385523642743885811222743383778317431712876832423514385584538531478258453126358566665831384316854731473644476181667726853344615278826782315565617181742743213487471766653371541126161845233572388173357355366175652443536752151655852473671184631561734278355437688487735441514537427436432641126666421652428742258183313547356873334856115847763748661124526215284381656322685641526525643451571176748271426671313631885317322138764377181754541423211781583612348773552334658716736763572428354737253473727665444687626854771768654883772627723358631176432274148315278422211213145248488316477417533534452448643736743474127728278513644577411488744178156885521542415561162126681265176776448458361723831117774551764428738344367358328175861886831167827742875671677376561538822835483277473546674278843885457316853861777638167273136433877318661167112542545168343172868717441544152865736383236281457114455561832188367114887314426827168583256432158755335653711458755771615847241286688835713727761818168364285362612312543582444444122145242647576723876886631241358224634567135614867326686767584412445712364532587336686441386384238775163283343745575838535234654213466775176867586276736436757177335668847541458677437161622221118243233683788664276548277488267772164111476121417723746556263627435586541848855437478245538781638855371161533246144635277634464161667662485726272644732615718225788332562723417563125872223115381223146228268882853527431642846836331623515162857868428251414716486558475152227612523244375635862674233784525143265181524187351528642572141315328737451865462428151327138728847737643418143752766758367211714684537765431675758214247838628745264647251784141166452341717483168281873663174777583376165821273763557774787243882786513752446733777536613586753648366623456615151524755722516567465786148421176144488567437242654234538577375856155183732216162554875533836587884551713631387218377737731151545152712171276587285165424386351433513476254821648813455874578287228456263332383384386752775414322724517731661865882547435542668852463225878575275115717863215216114885274248433538211164875555862351578814513765473571647254346563327375316653311225285662715528557443644318215887223788536788641252575573211668277136171465816837746464471527485315563326714263156754817858668855423414752277458735826677455851568776863646253242411178471666438364621882367578425588417565714317761425253617526775773588671771553365881757661454583713776434286528617461334835484445681843133742328765757222737863513363675851657642223122855728176813341583568148852231423664338536831671617222274116125848448182652771857366284384162336747656538717453356575112265468713575847785537533287484277721462471562421571388315642768327424338373284848548566121784736645667363582146581224782777152382828352611462782418878733615534623327455318477235281741111654733725361787642232721884862617277521757734367466648417565645221878654114487244575423338568672446367777727618266424753361344375873651218671566728881384884423166818688667681472167766256314678141816873452465638275862218646341338886787642375318556674627148738687347828117215252585164435325351754345844634846666338473871275321412685135221784484138187122311241321571182777786317216875723716835553568517387634445718187347717363386317616276681772787623463886372523453767436272156575782782486354658636146724635384844723632366718433643382354851421718168883343375256456382477426156634631831858261775421458767544317336181273151745863115657412518843642356633364766743318228131531752686356283336826327885885558315461766183126677478778135656374786574358267715314852562116435775531536548886237321247315158613866685816815334153276527784634627346547215737811275814773725874468281616241636422123457416661217784424115775487686618521786864424755866541658585762774453226667644346552634344786162527488622586827353223524114472538338817727576312328672257285455158626488226524655384465384886112638368757118572111226323762472242238675286211377456787144278268353776815673311223452255341227728184784133431212446468863152533141586165867157713246113177232243867234632586473483153451341231426211371431744774151113816826638448173783746322437115385654326822416773266565464874464648277738671137322634262536643724432272721724315135223142626687236822283362363433854865116663286578717282334247241336714542866322783578462886476516887343288736116832848734443783572373588272847347483373426613632866786711555156586781733561548685174622744158325661741667327357552884738241648375851183435226862731314785635523224723733142617582388645817136428567551552683248367828161571372248861626745151154545522371315285153221554761435756168387887517783171236311321515312317116537863871151442478441647577345664132426577523462373844787388755364215534453688583557833653217614232474578754371635178421632463553382711373781721438876121337358587465261448287832586214386623577184611722482382142767257581524384451213148337242175717336887477531316222111835784872672461825434165754655654881385233341118343626812464515615712374678778718652147252213778325254522266614371274861286162163387626584865461475567354867235151887327411556615738654657436643318241872147714856423554317732162176141845673247586753358633815761174235414684244885776451426163177261662746367336572337875543826643721652875675133333126372544277265882186364464764666482516635427614774266321766241575714176375225611677128755146712143456742364581528387834548885181813376571535387384776217757463164857616438165461555343728225537584432165638856817482441353522362424687832823274181234351218323552681484342668765557672782381626773582583721463128873128838881244413357611357528264463135822515152175815117468146151451628778144358716176428233435542318256157271632388647657677733638545851735715624376218646426378344745578166547766154827231865418841117672413376553542464137564238846414555841265436331413226618383811163527341551373333322153173141256574815636655654555761735121135458521753475856173335115576556768727583541613476618818564281576525372583368577227728432851865236452367512528812658312183241434775813328447436262282317682732778436465178538726133838365525613326623232741637117381837546176177621618774524424721811422136484863543581513152213211212472182277448657577481611586627723122788641575834778416565234625574764417133326361822647762888424512117571818246245468722817531177774613454175688714785556478444838451666761316376333884387813486448265442473777211465585486713116531235443337157265782832377548817887533533345722352452375146684583123462356745131846642813372682668613848238618751285373576423651337677211276728848174812644171778546357142474464347648561574253263518861718253673217124678711777244682763354578888367435173267647727655587115865563323522514337226642216614362888276145286386717463351137552321888318888287875423445414836158225646613532178387243751843645537188465384263283623557543824546825822147564843761236187876311617351262524875853166445881532367184767836484178153684854614431315488282711876572827873454414415651645786641815157856857415555637757413667738344716283113554784568161414876476566273454466855378873574848384642166317455711814588827123827172277475227467165522574175843747823531158555463582758236477762231473555212724674756438764521434277514122818446578238676214844863773752548543817527455745336638667653824748738687141574617346874651617252143662272281537863631213733358231586312577511114346124877313835851377436257854455237522823223317413353647441443635174363551587838335586186212475678613635744644563683382178886152683662246311664631141817766278424472312838663743716784342665577126853723681141322576162745463242536728754754543661174858463486611157543685256484217682217424255852475442837346453383471833324866624855227823255574588373221577246642851712637753813737156764388838722853782377564554338126423126867722111837655717311818421678442834181188535222843521257836432671151768723311252473417857516475457434163181172331647233551387511458536433281483123743818815435467481118428155137422468465578236832612314725338247885718467886351422348682835541346586214588334133754734676232832582372337331784148288556346241456254884724761845864436722515517824423462555518662712584341562351753765137248275466272622368512546431181725713826241462615552366675755844184445668622573214317676363454558554282661885712313231536747781743822655424811211471233473863113163217446747824623336344646854852248673426878417641865141412813724657811388838661437847678548527854751551241614616262816852473748771542656383664472342814112156644315547847822336222117278175326444164557348448131887675681737548846468814715424124753127717622373878866136266647738781677416234283246748262716285265238646338445651412827288427812534455157683835835134521258528677784368715188643722373855827782661674354861482643547534235564748516818182612773286151431686732687855725185871868662774743236462866425685858555223467723742147312653378544415137132774658541461212246152212711314452824468173263184751846627455861728853432654623755521378631876638622834656787271412581261338187858628255545133141388113185685457136828431831814841547727477581188687341411462535686474373647727656577685712555224468567547328252518335575641823136183456374881142642288633482415114121717314866681826756766817475586537134527787876337614452761836351253374761538722688782678477113185381466586175824554637362171458145182421635283348378725131132686263164743838324832711173653883578773737236135225113111173363571265558847342533233441247562488566237782673746258468274816756714183872641185417824838381162348628664744523624222624321386237168146487515877811238357356165853553267538224122714336168763138871867727446525655788263126228623768252663322476133641827536164442336581582647451375177887214545778215224188781835483873663235371281373788377177687573548523151146762222758534483221162131135615483572357826326314822725775856565584631228832222671552136533758467517626365457336378253873864572432761587211518817721177841387212887114484544434813577443242853728628248281613612165866771143134866841766736764571733477483682278533318858382626386644253438323236264735325583233864178377816281763842444111488445748654345832518511644722726737813845138332548115646725517341246227632252175853426718336162743231688875171375584332264546682611671635813636883376464538257135161714384664151348856128812414676666756888182233188486886184233715552821531348528458244821844281413314326147118521245584377666724145243817375247357576122558836427538871327817611427785841511847412356884475225734363737557658555342141545634723346581126847551285355171353415435252353627263278675358482412842266468381214188167264271321274387611541327736784327615644432857385445277836616645475626158822451564278862338111227775452123225872485858782758476835547656748836733335322264678462536167612585877877466373642555414622557467863426833657638444172523375233675587281226875886312124128547763483277816364654352261373313781135124472228371473516311531715475177536355844178816336886134373882312644247313264484284454882342278354444261557654268225572726582436562854176842855844113244518623166767345516781344754145253235182365716426713717348424118328577485162474762152576585585283142586654588646457513823178588861278541566532743664533531486888866527572882275423575438438734322148567764843554717157162511143724761216612836874476358111222283546567314256552861382363871617652375625281553421146331588335117386565155776727528748765618818715153635773454313857841571177128632681277271327574867173781668513447553142268837421788165738658663536441554226855644322882434412424654476717251682133878633168877811455612527677456625377252248546658238347772227856581116387758571461115448632237753564384635684412467828543663217564651634368418543114168813383216368842345872814212374834268241537438333822712288386481463457521331853224482377267813651113434564521842156372288656173781233356677348245873158521388568348544868614427873775317443466187522615646175533727358761226475244114635341584542344821518226737744317513537172273645682223563354755313566164858323452674646643287435653155152844286432553336245675321226737883118722546736251775373182664263271123246531342886284483631624632431624144648514224631664635168828657738263623212344317677854523474853738717788523751537381442358741284732571143127166555516642272387431585518571874641886631445645275814432478274524571823164618824112524458137586115116174421167178226353362221778158754763831745336163885274832734425582855885138782682371678533842481373542252612866752436478738878614665847677762226466614654342278353813661454245853631755271115641882768871115667581566754822272242135883688836673616182441358543742311361258587465165876123847878278316188127552267333131384683312217467375282324746656655782227888743341861657218532713452268165611844637361786711887313186618341834164562546834871427376157857627735877613463432568317161432814783878756163316431127724437635674178655367568877881638778627886464438533475144848678567411385513843565421184145614666266763423376531272246322783836543831368566831814785526662655328622315262832522662228556733322858681373245817765654516385277863848546821226561735253557266561532175744452728782177383726541283317558561717684562812288514581587148862843463735125811537556515116553724252141628721568484755122377365752853625563536246622782138453147884363521744568247126388835215162267526512635328137326276414571784345173323444416885273528556336732135436676174444662571543373865768367615171225547416267156358586281831247356562178652567868838245318433325548747621544387346867517517588751715243884333237584352267884567617288577577867326747562131554822782621277634466612564446463561646778563135233413336461777131762425142342834762264817686156234345828741813186273364288715125416658631481686124127536264675883665218344174683714533817345542478885581185432328447788231744678277736513715844554434853184233147537347328821865375447446436632271874316264727422165766218748134673211586175427621316174665547816884553221768238235884122542143618154143288718637387681524725652637748135816575324751427881262385778473844588786133174738543742388817312327714516772834875236363833423322283221518752256431233435764615875367135511483245758768143523218415815133263243685372286544535173338842255246416114231542164538763756678383811312481452557772634871544241431467667328442328172548281624627541167786441548424368855823155578675225436382213616582251563626351843286822613143617474216448662735752518476641677433513226771564258866511245314623861852231364675348881672278341344481621456782122167636824755551186238861325126321284753834581216778435154635455262226471836843687231443775127583724453252423743563324252761388571174865227288416434451614344367173448137443154684746464817332115311113733238367628166456745155553551513523417848753487743444618835155113141745487613587483821821185352364324564434453263262828887121124453728228452647632721776355156582778467111744377465214715321841785412318853472734112183682773433878766362668528521785754113346312858585638371318187661247248531622272421355375874727538313226885273825156555241322241667181375764752857678264783677445342146523618862338345612168421522625475612288322843273346885146277432853247171842238264838184611258825286662756548563622632758762663853588762136643622874251114237231441286355536818163275845438257868847341814661247452126256248532536857118135226563734156737381548312212622813666528632364111761762148727178142764436534644686773847531414828255587847818848633187556284642566776346234188862847613137283325181334614724771672522474811833513682763322688634855783763853273151833865182665121266353345633645645112511674853541765266338654235685523357448464447634353388322556678664474432435288385574523335168836175274387576416664783722838883256471771534844377326568558414337665428173444867711236178688728553685688544812447552736365344888235784655225868772635332563127642221353872137673842245157351684773528863146524565755152744573567836481714132575661332173432754347886843155364747547445775532153428613124312453226867223665877778656635253487671133744122366754686161356552488488434812138612746521645881716415447437647377138781822167757488613453824453762621468576437267788744213544537668426442644567117688616837177855563274157172872322877542348712358346648256322523316732833523517443763688176847745528322341581112485734318183566288637858878686712344342321264544526168834584242335561662454728247544414868143246481434268351374635743315261555882685122157742872166483176713812272358552813281317624523354552736662524474611417868486338485538283422568186246541148742786121611853115175656126127562721538388341257755877588887642884524248134228882251175661242482521831511133587774482828648855714764524584748687233885568531612184416565126856635135277212862147584852168734417161385765868734354746828513148723557135387347763844515555426115327287433367215281527773185783131721251554434851663456455615565643435481831182158461223443651732134674334813225123211444467251861184587585816475453466671416158165574148386614356563832137444312531611641812113638683865416816766437552358458487467324565225568322747568525124861788716388542543476744752164537376354554287348346137274481511317681256536166512872711225836166513627132685152821287728173655116344754821235484124862476422823326382451441571188142386137286278475331132288864468664433822536242672474561266571224557528768254427536651764282873315156611686635564841173461554584266834654334456846555583327674711351686778234485222776618244631453482161643288721568385721388882331434418475424571161327424113245346753412841364137661262578588284448676447244544167184818455445578224737642662775571142577132346767322673521487813166835744635822714647615642512578273423576274435461846522337586571583551265375833583325155811345454628414542232251573687245845472513523873753177235482763366872618861837374678412611584787542423475545173212127258814881724862261434887315477353751356888452348388474875588875761862557263487186512188215213751543478285582161422586217635161622868455675777521448256685783532775331885144813547124743138457336731526271361685413457757453382644663371424274372633277872876146514418511124258372585154743526874375245715826725532217688521314713874234626165287468745316414541848853411214383211741377677742783788635713232122286224651134371335288446636847724413567577676618388831253747325636184827386137153626638174573153722771628328622683833837356262414372428122851225227177864586416532441452323385815723376615455775686347238567735814243573175223473173786448322528811857222714748626615811818756724415284144525447124612412857635746833446588241542673721825455118413746583166187826314863268365875751265548858621147511777422168552248483154135786543582138286227823738744843472786222822742224112354838388617576868127312271382474864863414258542224151868517723721367325311333245521374331773261754382732822783324142235321286878377556425515746847732153248436454376628738471772534445465378622718566536232711841155387835717585252562254445216762311751112451872785872432618383188735735672365542218148818415771654314462515736826582578236614446473821247376148714653663314415153452132561861441863338536666243284866171766527324524244762255142534813846388637745866314436631588851842547126562267585827287214218851114873616723348581325746263128736322252811714754555231453735314884188346136517864547388368486853832536235583458771278263727461763183326862214853576563444857142112313686574831284727233335281487587524863366153214827821446543862734277524778211318181721432627587525444583578216123754587638576815218555523284712747387736442143564288647636124864611143777653825834565147415413838143387754125375747848756116186857854446817146376777633448645412864425166571768543826821882418382411816531326732238482576483881731787522258583773433256453753713582114235185131433655362654514724631211428628653884282363688772822112144613665631751543782566667867148118173213374345684842224161444325821711145268615258876444284386545535316521256643647452467813257477677836853686657563411766758657432822686853488255553245881456766135314666816527664554213855348822248265535247622666754751871842722645787473851184461542541382444364854488484558666637847564777725871426333445112375176514142521678426211124575721884554528766845483261368337878568181553111762826844842471237782412527828655724518668426416886233384746328562187655583813612375322663164637786357774174422318548675672742581823457766874125138516242133282841376651455423176544828722111182178455266625874617166545756422587531646174647118565385867221448788731247212127572762135847857417487412783684438363275766228161418216485752861467683868372278836727264316584311271433162856846287865115632152746451763555326816761866531613873285332384522272425412855585751775368167226181843453545715356184587214882382476628641326722287517425524728156385755877536445266678237618522812286772315516234512485853571642527856273324834182211382326481212184368661764231351356277783811661214732814437131232557336384431217282372582861173817688837346157543642587384451451376771261843316632557186588241738523241282232863127723243627711428613488612587766525888861627456186135883213585316465368111522231534181417336524357551137786175235214221643312387121724663377781427711465752557135124442448734833768723868732334733344457832482665627874434256387387634586443576118463573884684133813152413726484141484351631113411376223582741342842474416524532568851811151275876721232551813235782877543637835213376132138128484252823855715333321824214626553134735787467566768857447815237511151338633586873575338276411266332352835354523562181168621433626858627321772637544512243742224476847771824783247664787673584612416851523182423748228156873458351556627523725188877558256168185721478846378455824461843658334726532572311223474826522554486545217455573462328677316223537387718222746673862716343835377666524235871524512753173475561117738848444285625486465368536637262753766283624761564611661443856113871655587672418778846557841321624341866415542478441786587628346747514354725634677337654473814388148275623256371223577185354678284717147433652631688284471728744722483735716841568175584562213362561744121772437143662685863886143287285843183586531418662752423633158623687154477488862244146376383232212814412857424615716445262284361137478331173243731144657433568543186571687628558563684447782725631488137586518463418553338277326466845411252665666527527286837631132562453526781223862782151534316431266588844152858115827831466718833562156258455132321124721567557474656148855164386814374411823667211515462665265462566817186134845163318473655288855353722422872177818724778458821556744674742118716487833747631783236582875743733247632825458214427647812273435445268451562242353234574468713843531533288471315687623768716117131174361877815545123481171647441525552318716331537747542313124236387478155488427388723841828482727536113442881776327278271131113733244477364312134553447526676535858884786284114225166725454777433138225715812324521318724313743655664324724116165262154244125481834133461842355462644265274671473873381154351414375452865824157153343358444282288631574775372784178171682116225755424813287363742355124285874521242238527352686487186273366688464583224616842281156345673457185122183554745161736547115817776174384311382857147382258455213522846137663765635162347781411762533834411644876571672261217251273263528354623161715832648431518533844535166874652324278737758418668623381645722813432861555453131867354137566367376243285511821523118477832338664145464582374182318726376511274578173212446446643535863688414867446754668421655175277217258542485747322724585754372713575418545786378531656333637414453864585241578118265488727268612867124587646256748485837742728575476716637823316813415856114553767157677148448731177374541166144455381112626681364762833111312427144725146676371756658628756668561617211447765757581262714271613364844888643834644666514828688633124218643633264231882454388853721817772841736251216123142113855146811685765541332134815173434648385435627348173846844222425885522235314685663154357765567136345558746325753734761614367646462183177666858782375115117572225385361287588548464845242888777477622712561574237532713817586414873254376835125467528575342172241532558318571134552111644818784713564285214726867277213581248278443868548532728643524471264673633821544564656276518524681767617161621264535754571133563515175872523631153615628438476614712417658188162117238778723143432477744428476286171655537513855651435563522217665436856726672317356524562752575735272831584475872518666818737416182874811855211837881382245572382475536587727511417583327776662516266785544115242552881744121342855532856353747681581532641744638867153478723378418138388333616253165473862856866468365358686123126534537681476724756153882284582722871428456138172774743132178831128261112463171325615668864736845422277135333135563738323666121637446351871848265445474621128653514348884688612355751282814848885338888358786127362352517662257787476471838287131225143411385244588383185825384426672887137322377377576735445574228128877368214182725215428564555533177725415762124235733481853266564323763151232321784211782218433854217264753874661241781177821723388226383357634724814662431227227215432454287265632688513282813624853115575818232367884813114145147424868138148746635286554557758261634646311284824211425877451374126446266853145232263432233836334878653147341438646185778672112568112416837541512761425853761877587618887623461554355722784743663533138561574536837221115557524846816453512632382224881525864364625467478258887176265286484576155582436123517423636826532671185625425286147556821513832161745374523212573885656614664732523251368588413713367615768223874355873717455715713348526415663665353241655213683684546883521486878861136356583557673377386413711667437163472613462465785585733568818625151777285442126243476343844725127115785136785218427258443571277555814416785814822434844213881753344655311687651563854445344126441723123242577612686112635614345436334525478811165773612873826426756274482183168314575531732271453247646542727455571133163851812825658314346188313473641533683772156657778554185483736586436712873345124646112522862322854512418711128448656828765114886436634274873427153722668378635475718286645684416477625658383586176663847114224767341762367327882328328136418583127162867786353254186615416463662247812752174351768148346673126211612746542847832582236712261551326157478573143713123668756717536343642516677865764181636126836636582458186571263543676374547261836648627176188818367562623121268843865763247148633276325626611311667222235186638854655727548276318721541716466432756145766471772424244734277827163474631345471528534127245884667625245875573315365664254444471358543647366686731163478571637651372345172317657654168837886431237353836764588465438382757587271825818352617621764661515322141742488824682421213678386838113743148547667586516842561851736717763433211635386651563355817245123323541223728184147134621245754776287728211715376658627743877353543382822558273528287167366758223122218865551513132885637124883854772748185743622521251657656113277432837268412251845817768241258852751664674581551751514588511263357422458775837811632786426434465864216764124822855734462775337532113685156545611781314583672531647514178781862156646163117751882447823763866737418716713587354217667854312854462423781126858331884385773548685746723735286288848374823347217458741181626885886535124827717241722781538237527246448716556171258415237651518888534274741224885413875746464853873862122733733448447573378771145118221451648644677242441825688886827633663637163474687455185682371643678128575431766372871118243374548251168618485184778878471417528434547178875384377236772572141871282818517184537122755824774472568755473773285616743412441784621653881245565183473473634373752877763887211771638164113531513656141415336464443116127431277423737745167675788756567327836644684247642576635317154446346576626111672581763163765378521735514774543758743641623222763553773262622687247577246538413364613138717135458866777411112345626178666535162557813658721545173452174386861123573445486547633167735762227386344658817538152358118385527316647274161531535727325224432731214123185725764116818486531474414863772433616274774381143787218266251363341628683232233218181574788813814665312575485476442261556256224286477545252616811727548254533857686457143211761543164878143145864216872157142266233537218123565786584356157335528438311277115684118234846736185684585361142221572262665815321771381524687726575363435686324412282821348282756183312572261571416285321238171376676531617635476762483173682736454717745378883241448454623512224385745371868354364811348385276512686381384821126573227113322578744244833332414652138546768683277657642845755727582522865835318772546717873252827748845215736771132377773214463817717135365613673571467675287577835444867448376584641275354778562775238671577837367173668746671755147123731524121535758434667451831712182254326346583433418322315155364256675878688538846767165262467578716462881554245783365888132456446771841166177566584773753187648126277775551876633117853823474355633527738736151437738271235532712724584543758857342736845587437521637657143685426318568285138551684158733752161666631341741652422784343235143678418543224251418344678568273256267682111136746662715663556568245124885815341874754436382115886268555722356124481783237415665472824486687888438177117828283687588814241148848457855726433667427164585388351812315756386538476744864481175772118554778213116752844354833216474831875853763225816413812833331781577141187325723254422671611788414877874425177881482236357314744343712241714311326248742633626247137823611131223414184327555861641232117177758216215544858552373316263672456143624744841415611141326482234415766252343383434584584838723268745237368658617654773243224112142362167134552437773766188266132357534114251361715273852445245346751351443248231745116842233634421123726132651482862333213246545653885318171226171371362675846462462857563352166755752526722535672444187324286868145864656416844758355657273431141647164472165222614375654164677748325328486614442548112267546326825457166484845258765573437636227338243482543158515251561114622255736645881763788125648741278455515378465228158156387378856758321527551763378252572318814551588511853111444331477385273318124135637148648232346772116316814177527227653576462248155653811117866444321547772166567781251262638864462425864237484341153141361766814122315788245641343654472434735783634374314537562517843675225315664713788243165373636812384721857434314384216485648145835863167567165154572281765345834132414862767861485524357452545155255657485888887545647443614725817534441518518821241685625614211624635755463861555625776154441563543727435628671813477788318426442721333551485485441786626335878627611666766315526685855657243721552634162688811561833417278467284453861715686721414642261173812424477157684165226342565271247146275587436441137463378564547122736886481611763626611354677186348134471141287525273815348255778451487218274533712118533527253765711237725848226333853272656614272361152645234454425718835382371114278111383715746483446566764572155636662612783282536261543611473146478611585815725112163481247253766787426664343454356356442853746575486664755211512845548434425141371726763371882882426351417672776757541847514783834336343711175662172242612142111244767228824556365445625586686621754576148184727138586716473721886411724684772345262842356547516854186233221412537688625346657158528833222368137867835221483817566556478372275147482111621127461786412135321475332113272773581666126286328434536344323417756484783468212622144478861822354113272185163742115421126765581867742651337617775187686133578646131363185533472671425135184124484231436658154727861241325687737347157633318682545356388837377718575345375314165357184876322288226321755446558255854418647564445174261472114178345476322675228487822555336684628864663416528328666888538768347781233133685633281551268156676136218523883122417254742726472181772383672554464376336418754631667517733655717283425236778242878316271226383172384524253274863813577351856764163222616124477374318132677361443762813672771325422382236564615652828386442244673562684327485852724641151344418433517641245638571825537332768373633563574727662733176725668566531443462758236418776125687525334865828655675383261543712638723826564541715345558373561431173461187522283773815734752512328633483754648627124567114231863882312274257288587121432724827867284373415274111573526364535328618214142656737852211444586785763753853188637223811125172756141375547544177856856125238165766712125861375631323185324272768125234777472854684168387625858431858887643817177151178447133846617617247438813667473487287262538168443382382336761178568853773675531566755655338314351824382266786851636867182837331183422345875661641886786555475254413643312565615315174418615737364318615523143678254384832122825346873434448314381336738517788331527832162568188138762482277761738373175313827787632562456243876521785186874763383221453633182341186685854416436647448473748644643118565825654885311355338283237535253354576843274815418424744664841246312665883871531148521643237353558426512876535348262316526127143145313551723454346567786167868343464688462413746251888513158851884333365213244866835543758424271523718186417764424778131648756724263762178835147183553636368551133177275245411728265415683654737132821212643431117315875241371264426284837876884434878464518675773483555344648778277231252178267574436132163147632212386154871415447222834317172358477774848648251173875363741662571834425886823677842168123176812814116312153437872155857833633873183431586548437648815618832886286285255725438718756433186882666346433871534221716126323627775266821778847821666367661812746864255843783682364167812512546213237478665682575672543668821217526165687236452527732764463153712574741531845284874732237241182728382854148237333675765375374165155856427312732168346841468873365452151546736644675838173547531173757423255826154543117433843151813754741143614757265875831233883265625336366643355751443233433446677227544277221783414787216422275664435424835862721385176338514737346777367534425442128458868353746431834657715426278221124626552861864118575276815487265634358446218528264643131548162334666376686525217548548574141871123721476745856476432455731525533765523854551714527328682321833371447784226884325726773622665653414851142787885447722751184236246248358118585218557444228583227512184111561756623537545515873344224535657334182425745316452785367636857751726655718415752836163513285141783235625533217882314652547128754667338552737286124455326287664246831453336225527833262841423436236762112474836431416662613815485143358287551381347864611112317772673382153773464232512667555343561716663126854147717642417612825615833311666261857422638258122647847837884627471232451876557322223515415536461481386171313135824264422144472581576772522885446534172275321446284743812761475637733621311151646782258836144227657835726438453242436131684173857327851268222416625124171288251648442238241387628821485182663737448662575371148842647254126467213745581237888853726318611144745178645324123117156476314125415863517636217225171335653164371775885365845664833665212125213357443876432767267432113821132437762236741627241158351627622531316276532214534641643314253865113487742833385766882238341617877774655757657841681578512632486874111552126576356811832152811664662786865334155653626522378112576623171623625347688846745643561343522573512746565465741875347333384517538611366561122226341774171237641322414757461552743831115787538361567644257278161431241676218245888334456244721561544228711424671624755446577332455567434243612678731875611131375733342765286852715868288713737376312474663456313718778658648446264188555867217445431366816452745244186344664525735732127724517773358671116235717341257186126512486352433655813617338788212632777524627551241172571531557421515456585341433241365328144473213625864566375286883485388417727775843461755374863373478488747323827834561114567556715424367286454846381811124871537668716372686177474541353327431217754148315624138571375514126234578674572723325741767186287767235758777865854217352731448836655787776264756376763825861523875254147735717485261532725746742357467316474384527231428588373475772378127417565878577234258563222128527348755158627432544467646517466366723427155785621753287445352688446378754411862514884345741166671315881881654522671625285363811117553523358627756837244477347444761273225776638382773822353754341338356742214714852241176358653356852633723884356241345537413448284154343388331125628863678631318462513883535684265658687366387815262437471141223668635252757328585318153724436763313828671568188421815344386841842734367472382883851274311164737827144858255855821815433586666264875142124325717577681111476181465148717335773381168741475742887462158743431627784468213787846484385378678422261323744171874231331754488482268711271358344463585342486386511486225347342365672316252872213858546762553688857245456615533525448225177427118484135766136375881423176587887817817555857663823862741488354755223847542164465428518545162526135388811116421652262286681828272787478441758721647826383144563522355351185844124766166861434345476628728128472827534837637163371658281788716888428528348745141762482467148635347885721362875523752665278221624513742777843282146871418476157468411587443658761355465861573178131175581463428112514712538744416175635477676657578125775458886614847172856372748312856412287737332616562381571277164674581371768628475513336414211545665718444325353871723523841662317845581832154121112851855187838773338182866165175847831118812581581455242848153617217218768184611415128871772723233111884553883134513281348281421372346788658158268455255164713447342826857434447144238715872283526415767521124475718478533722771127364132284248788433876837713772617671888128868472646438776161817676335314387742875326262447235153683883188463631868242465775472357526823738713566152387573171813664133372832875681485744122218546646542744613868828511672413433785228361747234783428477284246583112647323213388282236555146485766537461441666386475617323627865327162216841271487165653535482831444554715831848322877237446338371312472142185686772362175416111131375258868287873775871581766876575752754341735763167187664468783366127253313748246822388483462465147561756742633175321866271173557811156637511875117112475474618216263813661457155435361865146124446617574576457867284357853232566886751825231184424526413372518215577538258828461427257183344734177742437338263824786316647681184867727521233182342873313673458725314135615625828724112176122864582511232611862743821134636523648415528656744887881868413735785646815831224661235732748672737453158318336454436126856822664521785426315157262578745534612258717126627828616852845165512375863564215614641886146354771678375533521176211811575817155131857277138113734521347518312575662178858761258277313751451678343157623586378216187171133752353558181126644632347745414787523845414223754826622452663722572865116285461738416358536578733886284713111183513385344682335582311357558634571671272347532751887673147617635781877628533668434253567185467144718667586554466583815375422883463116465277632151817246655544557768222411861135736317653214261113581712784866446747313521123624871131825312623117738657325677643622473813772772521253584228581538646117172365174766225247764527458268547431646283765185547118545437142875655332578648811611632844448314766168384257758536566721862583136418117481835785247587354528488636636265225414686545362388837862641153345883452673316215715653483288431188885263181671826453363678338387387464441425267573828773725352147784848146231877848425766187363122223774286282156615272587434616537465772512766113632742372722132577753871727235587647863624824732324613655274634115553831188463664732167245674752416616316321244226481721158534372112447136751263572261335245373441274654318426435257847433156152278325755763263387778612577351465367541676161486745712165581514241554538835132686764642287827437474523113376545788253142743543157418771127438617588813776682686413447128567138858445773258128636661143165565431162351673354727452262237785117265317133337426238152262121326281487882374132414318583665413781438335121233344732457775823863626515727886831174828767136488657877536336185783882744356653337285648347543283278431532867216125346741382571515218358155835243437112737156723441833547112622665443333138411322475631231168335441368543471327425184627421321624327377282781533712371678726578527113733112132323216375733547216116488456336565456251341365273783518245545318724116731836153347388271432822711861651424788183528413126277125628652758737616655353635828772851822667647477728152471672631735577741565821473887213362534273737228336535633637257541664772262558553213643516127433518654561632657565588726575438656322665415661284651347153286137461313724186766337862437724137842567821835322613565418752352752677436588137857211722413218142228668478157754342423238526222813875483368241244473463124616414657817311822645148176455525265317288588576717373387513151346864748318364645444731286413514816852858745825436561586314224362666528464562875533242872361787834376223348534686172865753747612615887322842321675442124867485265764563436564388843642288647262445762215437566521582772355742173538418528475784551638461144728148648512226686727872484565524237158671582737428364123236457766343272281174475472488763127862683811181217553751686643552447224474281717338524671312366268656114484272114833456257481764631137246262367462476283547325758828634451257115213528543372536428478484576473554573437462575883438444482218422878382685553123163866423683315161158838272553536433772216517715771471815627162325368486726684243842812571857185623338871356746238188817813422641641518342875365261232188336318133183623777815437541421428746611526557536483846467228721762233351825475175446774513282848168855143357555261515632117383765761842366638823873253434223216654727122482371655666871368376152211812741855671244847844543255865136277748417233524475538712418878386641671563422831478131242718685336111237265438133133253144678773474563381888413463457758776764278236532382817242456818577231347337552756846427534884848333354744311482742544364463524246448533831666721162268273514128364224276341833685568587727375828317436761831768226143484823512412225587556618322623862161177328416665487727748867835247255144583328567345771674537658572745812284721221787563176757473536274311653464151514863355761128417745571826188158216438662374325165233372651535245565433661758366581875151113284741181337174176433127683458478854631751537516856268584731547431483535585116417175641281244654418423677345876782823648734861316828373717413657511771754856556225214285632866734573658142663184664684353221558127371354182366781366388311136837653457857654111236733751453626253484351773784873336568612143668528124753117282575742628784761688386643523138347433652211373158888628541821554166888221828824761318351123164562831843884472568368282253466878143233173187852777464571583752462641628685472336773317827364116246317844552385661866755352653146645338655544727574231755137382663286237648637575567544723213245462774228288816554175433451335873157275765662377476586532635328285121656723827456785455528727744122146478451283872224643331665663744573127217282473417637764847823346355646153361362142577848747742534115426611636527663237278553416574122483433751524516325376384643142856781745764335564758557623874168425581777866181575581858226381243453516881661635842646535364154311327674751574145318638722837434226875336482463153573565767366687173376882718211238453818433162576813562453831151666167666834287575718121124626753465838683717333413474443822286424613632878712158156212451571887364387483148225237517321344148743362777172161343181482236536221447632211113137143153865385117158577717768778571855758277677461125782338826842836573481766673341588731622122262888738573211142211753785683877136625544424535626717776123161761537153515635256516382151366851111576734886473741265472468734732888348615454417122626863716886642373343454554166248832773247413341633847484711282171838328751162732726223663482266355876868536475664876323228145372866338873237754258747868741868233732631651585527262855518613273565615461488657575447814562581713144557386837672886643211325166467734251843627616342528226734361124235281238185426247137771714872165674317866215785317156743212414633738526843173621273764174882352244264434743761778735231386173213376621161144183662252841528585833555342343412365457653464883573515788688831764411842276265288146625555247832448238416682276287726142566165776685613173766272134638542225413648361644531254124553114876536517284758378861173287417866336543363745433388164374782357677142375336746745648747237438357167863185436111345331758557454821726183336886632232714751665636414263163633183825265247274426154277255585415663251772515647123547164573121256573326444624426746341654533328664566361648272532822847417718463738426286172734636872487735772254753163741181251448247632325281343626882661443454148472671886126477245822633875448884722422273727613252184887583252631572661128545732812117824888761725142728764357227134485775557216672563446842321133433626338751478242243746135147152121621652411882223583716471882781532567415265386516884217384473283458886273328648114424821335345656323532848411121528626646342414215456551267378836555331824763373888221247562462836455137215488458862155513636871223735653768714416278786768536545487151814782888526516251718124664236887863153185412174751743866856645148455422552731313386374578321531432664831178661166315731358167121354744423456253753113734642421256682718124336623673853487685421156237788327876354626155485834638422886478374875116768475547827836673131855424632328126572148588357266838532582688581825788457351664163875742527544646775337753886113367543412235656835264856326174171812753142617862274676375644158218485385523878666232548214225216212337856252728513343854442657868268551845124833866257263137882567431271482885777461386216862728327136175331475323317684151348267641355475233731657287611784377142237443562425557176554583537443333667884243368147488818862663665538377418715618255123611544776431835472453614576787225776854555327763128375313858762825612734356711112615213217242848528652754144122842233258661765483328215565673747632556521664713215172248714255628771113236214221788571232613365744821813234254388327341212417648642782212333638661465243383737487376254374357371486522726768218834348544878477574845187461452152153167263227535136382745841153857234647125448127427582246357521848111477123582138758641332754857835874743762571556187182376468237482746184357171458237326661251881242451456321853875664131612312476538642873638136261533361512446156672745728777114234251311142726282333522558166548862158664722287432648555457713366537415483622232365822137565518233161276224137821427381747115187852645367441833841748584114514161835437378862833817826127244557317451845838132487851358174285535336132675584613367384857847286737216365485832855754751324231561382128537727674228312813485243348426141577346627345546455677667628324362212841475186642826473255254376174837163662316214758741165451767252668883284562823716821225368785667564453711683841317436154813165578834771441711442374876336343552251237373828163852356556886823137157573575447734635882546338648124848783347787262566682124645553627586587474861173623531185517736356823436824633164823677335788425277121678747114163131861246257632142718688551636841613434115578453544211123786447264127185643688628231733172733221672187632617368257387216456367383213865732565276676485716438838241283366381775243553283443415135615148467453143317377328538737318573438872245242868482822582433876388874667783156652524668818713582257522166337584745828861757164178447544247164138321364828383782332154275543825723546617516773673857842586455627632388221565848215688725522171754674365833474461631327841725861815388588514821181628273331573373863588448812611648564566682836128848883871126772345667137381558534421465446225856283113488222774383836541228322681566813485273662562222884812662737275584122148315283488741623862371888416372272487446477151413647417845673562412252556368171312242513241213341162877625578321185326537257548356552483527511626748258871415447781886857775426117624378138371255845537866528885664152555258264725135833354744167433685811724863536136327552855618637825164262425684182747642372252624387724523658267143824613734653683531553535412323361442381456733142217166677525523653457581861745123435164782444365327737882865267177685271472477615578347112628236613777885131517223626226345835383571371541616428751263714116636855178644611423487215453768333884183124182283481827121164186885312363678487787556837835445732142765743787347751453226426161264122612547447824525817256833628287128771684143512788524264443222624573348724664741767855868342512838858711364335462324471212323283178635733252465684712523622631815468147134871426864125157826877584115815161718485766143432238658735382587665675228684834654625287384523155671872542682166415872427845722456454328175342687853612253745541353774357753638274551766121275861355347784233642264317878613811686837776311532448748517564832611861658445268311884442865338285853837542754455414555758357737428773216178532143168341742685144173483667621782767688378527638236446414242881767514137651533423726254245444287614624581211122414625741352476217361785523632432561141736661351284874235464674431211354522524343487717124242552562266625747268227865364475381425342113346131528165618654874675225876816676447345573424828877265763151787232833272114552421843528532562171844338135287311164323332585361455554567774571576627828147672637843486844383336688587412838178561576231351554883548355528283726764584626442447483385843538862558664283714654481381581511517338766343283627134234778881142771634158374316128282576566636472224625211641327834753225458264855127615368166856313322553231685214634336734575373614431741811136211283872111347565827653344324811636585755776318866783134226374127773828564882758235514176465873321618335482536156326672187273571317237436651133652881788324567388217152483286428528385236348248656427326343875517144553356232713422814644513254537581883373153452323453824836858725564483714726818854315685886834542687565626414868186335725174538468223784182585285824266644784741428617776633328477882225615675424354112443464172767181521757886428588714647716681415524588154413353888831711171187348655337768111156855546611728221785475852838514861521782841552247455827217138235846133826848751513765683463455546841317582244812347413736132372144664584777875161427451133837232555524858446624365277781243163878441515526355377566355441613687547218736252677534235465216163836744386178854674766314882387587838167463365713286527576776582185867422645386265534388637187883451387533727545115211244548335342131754745687854472465435435138233875858587871175283445154566271537231758354428145358455877613336718882576525586172626872612111672346555724433116775564312217236136373734844715583215245853773146772134235315832813223478654167323486511226416566478726458753354313151742248785413185642374675125138168374261412717842776715473676681287574522463267813684713277417436352473638643511566616682433743548386626386327371822341571535451185757454175528571762581611756565117413872431154212457178262427884642781811615685587316278337786837114664635862532138644353182774255527152254477571112433718144268317263855488824584444422376661211184188515257573626755884332347856453373815433615277644266887753285531486881336555325343618475615835562362185721817543713457885157315142257488171832773724574155876187278677646341475466822886552751575223174477136633132287843688754846842448858688688577437417158243514758452171826741354784515286157531132236888244346626743153757377372562237748873525755262144537166771563427412433818585386421323512535767367521717736833375364321243636434175753513866381584823546526338786863381286586542514835583325352155842662321672512884558442146818514632563217157724335871154455363716828846617288538227381435538828267768111831588211136745818856541484314453173813663344544546862661111213521712778761235346183851837645853611874422511145325617362185352533576835776852471621557636853762681483136438544315336758222185354868343642266514236577258855457545545561777445425763654351713624774131265626758413667788876747885315183331123553481365821561351552731164765272536224413428425572635447881218122611741143155621454684154271773658738834811237278518625113281262642612782415888826888161156763114244321231621322162644441133184427526638667415373146587587886115736486141747465371638555322623386513814187815538362324825176163433434711667781724625163247855265225663481278867385563587378563284737237756418218725672411464753882365156784375354532648455487656574681435864156478251156385132756835568236688316828134351861626418666555825822674543675643771577142716155344472536851434372181811151733157465625861121425335873184736247575257644413525154223287562845711325156284516772711728545631827128332627145773564643586741417211748611472868835456613853113884574542351453446552378264471738757817284845346512488873387146133588468751352172828513813626435474322164111267255623663845344878177374451447751187354625841115823418744458812817318742443114262218148284742548441324234585522433314824168238263762851411637842768337334757741684578636486341184876721813347373442411155748455854515682623422455583564228765357477826775286843583426514541743581153641721522732748416532516532636567346117247822833375113755685417713418834683553786117841215626486344337464428668435731547218825328748252554586281773746534222614355766183252731815355677711647163326836317282853445114851524427346126617526463626834378147146547348871638136814367782463776532463321181584882427755162355618512544528345331548125277373521242483551245674748716832736788414523845551288378226528752537175517557121781338812658235245558271582471551553223375275451513537277485547378282281774421172411238545761554571788476575588411478348533547615642556815161112721622364685455675841312715523684336461588144223463584442681831131443483364452368475431566555348873338333734162511258865232725621748643125578641332386815787136217273144358384134853523288667378753134261188282584513582155858735785312871816732873282113615554711482288386645838238131167238671628545241774164157837634153182638374715843455552814643745254377322413584715466257218574285384135336276363761453878744721458728452641163326153821862848885834746621424625227411263854858113554235733364773331316318681672637116356273332651352173528656785363657373626748675741718331821226272866844688553614472324473454668546236666278235364482516818873786226748235127654761672842746786514855565147761843167232122367874161336886464267132515314241818173122472285277671812148251857736715621786824788571654361363713483654314865112858882138632613827241376634844111666578428378667253786531582162745213222648673558548262822188841556844626651176887421323288778745286664836181351117748657516272767184284754581566447121842356113868884461536253864662436558238275674237377588745873135677562251735824412767728417321556421382872233644821317818711555764554627747212251857657585357512654735371256172234818438532483557837265847555435885545267416338783575766678882482612235135465341267421278138174712635215412812535446531241717387567645286876746451674455445762387258447143687831664711324587736328354125485855532128622167527848442823158222644516274352713554115366368787132553761263143815416813336222875731274812266266774244467255454544323728516223567172438322426847366325265556521327567258317662265787372536888837752366214646864428824166426125761884371645237248137412744245637377715758467873552362256537716615176262764562787121846358186736831554431744683262362587214746141262561325485613585755263644437142867118345575435171314548847428575183173537777845673183587416335531485427353154372382627224716166163225117178427244475783344116474713873772478211327454787254883133331365411182228835411786352565855682218218127672822162317231473847735755624558647525423245843247737373542167688546277167563857437255226173727373152755327661123515124338372178171336565433411452833153857165561663476828831163235237283518133216215767466234414884713158633623484871334126157426783765715146376332461532317118385638815428217447551674811462116641212758431872614643718746854385476532561468385461611682154588216466584686326538511235147254144476113257541784421411614221384348621815758535567377325315384435384854118638376272618848445547634236537511515888651341842485235357817635453612577367453288473824422355481757173428334341288181238334841622271438332456542222332731824843767567411323833751174736825176168776683334377663737772248347621688335337453881131777552584135282284734346642342388222147442661746881321155385184173286181267848647346448647244312581366343747678123734685226526374111615146514472564183572283536836664777415554667767725115837627155531446687235873362867161713314557263788618366214386288841847461276236664651177166653454148775761273456783586384536862842526114678622361326823465738534772558586568365484155863542215371512132775322827884582425613332848252185533475272382141322612713475574144473656856751888651516755413574887264531226872827865521637672242135278211464355253462214578713563282167685222713747558674624677856731618782633673145614145471246528646582465318618866377576366885556876771821857752555464616466872645121123614256322735862617363117318472327734422212487535158331167615443375434325152812217217724582643142341767174242338748227644527427253316712226138868577323634273684584374163463835844773625718138588686114147441112188136514516236285565546141622826785256574386662385526721582672121613331366681885116685441677586554747571751518278528663712366878438287248856862884467448272841444438821515383458555486322265271633321332867873515745534657746568416511464267277767487428313826466774821843662227656568286548355634186177454346218532447263655338387666478518821468674562534136653488717357226851888115758233885214741576164651725426818538574655746854536168621858358278134516776463482158181685626345725242828523468644244273442262454555713455468313734742753876278344775227662352334675562555274214653762314431561617234176612628255212833433455235828123583662646834136177884513765377533575726511871344743254137565185851532857626627182164477741416612332286157385215112421811127355588615162511286684545283851786442178585346165682242431636776121378215438133362173283326164663457148578558746652671122428753788513261182836612441442478835212142855634887625868571628318481681553132281653728767515143153628765645864131317855365875377558413667261531327128346485623445485323735885587468381141218553157381374531185733738433421376358257773832832221553483415448765351734136376215226536534175122243833416712427641451713276678561858361641758328455132451184652324321872136557461633765554176727826614774236848613166227673135583254612732186157331652586886145432763642852523826872711256867562427458544463634438578314687512341276617744224556571121256666717573254148222574883862686424711538841422833786243148375576654676372478253537243253157615172421744653667127518435416237732844534111146515153815445735318568533181661182687875286448161533543553285381466835441685613352676837854174226818121776313345273476837345464132533627828314882736488331467531781737681337376261771468523846622762581321157764527255274447628553773575586144183815583887665327666825561844348546116185538767584883116281385821636885255637557556854548548631651458642221665431773237752632417418133254337536615685567311456887762783883445274313556356472737575362361312585886748472771158777174277814154313184618877551215823131721383333382468427848861552562224843253253185144437484526661852843847253268374623563674126112366351256264718267581738832638735257843336413336156218218833772117863312543873654875553425411521464364428424678244416658886814652157461118443157567731785176517413321127632134452842871584725663764443213463527627476413885238115241566464672451887328664886786422134667716627625556221515852583363416876248177214523541186342257257753264742563621832141372566178524717278125144247318313258834876166552438134245633233558212556253524756738821478313624235181774632777527218824841718383717576826214526847585878636553444168661346488181448814637151414411434137567474425175258521552617418782345753212671852424546413852711611285263141713154214755717875825644332543288455573124315784352535635875765722145324624881882242414863526668561187431438127182241636655432177644585514573873716838215615823774843418727122112655373554112871431447126787685832258112472576278823482167814287461377275318884583843746616236561567476574574144314358821618833181885324678248246572263711783218755476522112126641764744784812786312654861238784646637277337477775151443156113146626511334242636232836843511714246886686661518327577262278238654311678343814542481373282124656757425416717732177165142723875631472678431321224682763844848413526482445143262587374676166674616346547653145864683836511267317138454886267354481478118283624234145235812346356382812671613122186328765111435642547663433383513744482157652882153878232252478668714811743643747183125817645378851357188453613223172342273411383884313215246524531664472478477444742762443684227374387533441872135322133418731325442864376142254643555856745543174362465665782832373578731454452755653728415367485721618624151842567756414831741123651632216716131575833383436237214343454742521638837367527217635758264255173153525448756346171552238555654635886586248764247383266287661643347867348333426243251741317477768332165657168641663723754387745664741123578234287278532527113235671478637451546335844766643563216342872673444236387472715168178471667713246536856362543725634667415882366185457284818271458786336522746126652236637516252211544855746427173866635456177867128165345886763228448185468225784386572177421713357324766458637654423376138276212541884618367281347266846564343216313648265155175863664181532842238253276473587254287517236427311286214513767353467877661178815884375445388225237826451267225622228464618577251838365487271428546244511568175244772327715524277788328846742136415214682723237617516566847222823111575636645426834581342768827828843166747458748717888665633572265248421236761657113876155463656831878663346172473747158683167627773641632348254217124841343775653186126252643253565168681177518414776558333618162247714417227768346683583753326411872383172857558825875226228831134751747814658322816187766451234326381176228722878384742554566654351855646525623317672734356633257751374645274511178833355887861652388454847167266758652351244775174626772558463618674716586671358471758174536516434572712575667516588157476733536652833677314752476388616446656132375521121483332136113447771478674846847657187262432763226355833384184856355247382235136723113142417553285471375265677351331532433278265473177685234126658767872716681837846773315366138573431527856841732178315548328766121248585276731844545286677655133714663277531231552261715567761247524418323143217321862287862656564122844827237826173817755521867446282388612262576433317831634434154841722647483246474847617221386447581632277558764837715584323867424456272884747341672316638683232564882246532135184881634283216831338243863665845132164574862552584125267442735315222666653576713274487317477688311576821877555743843374283162888524315363725465431654743748685657157352343446176627262523278724576122216256522281617835714672716564755132454678711218751735625338774474238364314482137116377727485411731456754353265843662228655315455487773278282655173751436853257367223181626848226118253724231633544424555817438716728161558233554116223724253243872788415425741711533471483423762156587716341432152368428326614865382173413446357554153884332787127332263277778681716166516645256648823246582222318115363816438283672665121313133881233484286173157274453278453423233572852338531125421345351317322546347162681382811814211836758568313116876823768831451148622347268546844312675348371885833657561435285235152675321375547713261371565757154283482235678231524228865421334428427247712434443564527761868812524234874624734187528885858551677682245327312716528527771645378258833522452288857761355378526587177118255432136771563111637347743554565778847336451356421824688551877233626526732757566357674246315134883625414551126648167282823182572823251675773227182721663677836688621478834843347586523582442677328137521171822766538575685464253755324182254342151128244757743138257636542863745723734816651151543415661534814285538536357461135433616338635211421171326223282782268782332822654758781418488668452482321472347424458218745663224434252366516325322342826553442874816244752283685886145317322576667487544638615384568765517435263578131214272677214777418257435383713528514642438614254146548765623865832456368231223326146624286158353455773463284423787526513227848255631576882311378182457648143624247862552457473153815636516575166454676422366571561741267725173635764426621145182743458216712642338371512325782165877587845211313881152771151824272187472163168458232178152652748518154251224131613716473434567138681223834314165826665514121831468571741841354755223371743513548154238834825371588834568725738642235724723412261221273135368341534775864372487216781261317888842371673161261547837115715514465661434682714538333731171237644771521156237357351241347457782341182686476718514638458362146841846776222518438863715482563356457282514361711716756383151153384174885488278236512816323877224338735134813586844184782771262361251731281226517877356212225323147177166884515483285515624726227533318685256356545715434525734354584534715442113373583513253388617137218744621118134172367583454863753714262243715821246866828125357637625815876177258536224222457277158216684168485144336725651535816577225428847448878251782515112431853152155761437351386547727652654666862127251643472286837463345362858236652773686813566823824451623336888744613454777266268571322344611242528864113836648257258441816681758315773775428442767463431286837768824388781412374281143728413375876372357167213273383334374268725253145822688626823345641754515177878261111877348571712563824577366881152656472415256323611658553727823677833131346848868612553715586531421484535388743713555815232481513558672267752113465633345185215266281817781567572144145551737354631432716834477558563724814681723756644413442855722711851486435471642658151856514675666412625223884265742744484827182788632241348633316247574545442382354245266715143436855311822156883167672863544756342768552336123125754627867428644511523355124823565636131538561831648571773342368782462135853152676614488484527584482514286182346867317846464733263133218725118456884485683242534434444432518544811346425636558113414516467187578573221454228685633154762262636551573688166646115377755648527244887334712572743447381465483876376716256172265271176234631637426764488184272416214784826886738115441226534442653242533822562462673451124238412376135185142255134836148537244868578787483278477472183523186584428415314288737565442313528237346256644764653177422558516581122616242575621634136357825635314272852771418178583878746161516631486672472386225521155658775115255888136853544762867141588211725872874236582668536387156876658856111534248126538265642348812484265724818716561154627827515451747388475456271852381642581133223822456168453147366142356861248546758136132345238541435238854464628628822726116166671881743841322851753635846611177733724618612563528578771121125488447725756563832458437415276733346137663876876182112513236568713572848817612327587418328136523562733334785633457718437311563836268418587126153728458281326215573281148727521562124188632127666573687336255263171571521638585821376726237625534348482234178347135317826755127458168742726741224752221865474881753347526761578562388456661156612643265757566531335361817611142825233324272712535268838666462553743165181841283376868416248385366344748543221527712452166666868584147518522544182236111774471146412867836256235328621617116226457552124736428621673358261542884626728857511577216533226237233381843745365181826631658863655672776637355564225575341344578714857671113636617864587288644682686525333652883586813432113133212468888835182141617611867271457314311211478571331687775261325716344121138144136712341864866554844343425326688146377865437643637268471678324828526171521454434747755434155524433741588584683274531248345583616851115835862341418583486646823678375835282333874781218864333351284474853283556646656421513737514557154141365185337668636566186443324478225785488263885253762523521868882137647231471613578317556653648528148462471211455155522253284726622654567248352427176718235616847161224148531473752512221641444822631631354318381411328354154226475125242673222238852754768382585266782626134724426583546572417535374252425664112732786222453823426588612874472535421788682878731546227875471644752512562636515331157546254885347267125244762465146888571661811786585678233471554851877625323482757336811245862163152531223162844733224315513611173842624886766741243264381356835275144114751532215238237251848237338646772415325415827433484477871422286316435165646276233642488211436626446541274562272542487378177356681325331346561415642448117743518511781435753818543654654117455873153713355343286237663161575744256484338834251474316321348833145645275137251387387126121674874228383863488425724323124752226337237285531138321352551615527246631128368442863117331161628181731742435341544841444246718775557518653786517882116221867415856477323217558315575783548851243752673613564485828215528222333527446614556163362277781412514732366647161466568654584582422764682462747752415276586853714152287834714388418624364636873175254856834158866587632652451454841483752857822541121786187631281836273465736647756432711561341311127832474748381831122747838838117587615746472562644434337882782346176357616731182144234873738561377671542831816616736285268736432218864624765443222742135865627715788861417852234475285783824761411313144716676285424558452514515612613283467246655716658518831452338517552363687265546554557354183113567382531154565332346268247428733368432234342844677152173584266561478687133776251666771611134471277124823812384456615762444757566148247534353465232375436873616111182442843886168287746232162678458281172436143663117787685733435154668863567841827684433625638242617665678148731366678847221212368712131835477515863864673463266723826676224645732774328255548281258826215371838627718732843763547486227452412173731418664626862422111445343427481417344423128737888848241572427238834165364324723374367876285817567664317411477675718567886154521377765565318144335258648821463416371414615371618814835737865773277228275623471871464613266324533322848477773876681662675426848777832575324378118172351468153116481527756351252766157214626676433455847533325513218875156632161185576815847555765331813375458554728171371736371571372561173618756755758541847816132355134314278552117123717514874721374621785757637516577815164542341677464816678216725322728241164112545183667357181538411485418528441841774625225747675485635643374347133454163253688347426642671175674831184175444378176752628636782851868164578163642376258177467561536248564261482531842521327732755245782275825248711157151541785811256464163244734731313866813261285512575715878427158443711127614254122368856468361872753734282577655678542877762551715175264118875214157342788852813277655765758448442843778672842338115358711415126811275224375227775822757858561257833455441862716114781673318121864776837131271441838565785416551647341641724768828875133678385328724884566841543416621844871273251221366637688686164638783822884122645328647674872452342688478557428816872326464616416346282716545526862118726744485228515655127645832718741235645223241316674424574764645735486527513641815416864311472135244783621674341777532632731641734823352826351137556728163684666164151347841821375654436686734146223214685657456628152482144145767657784325161638583442326627861413772314576621346586427656251851244132281722546265513377161155778358537271432717355351267243487838843761421587181326411771221523524551518335131133768447528542561825645365744856881714354377245214468663257628175136258577162447582428412874547251446462775671535747668853824788544356144618328811446382381741482476186224256623756453388433137266543265547828264516515415628213857234458257644762523251382327263856488175825118251243278166784271586211653853747552465473257643363673724676832476334747751285588754616262834633453517451578737661641434283663615163467586465813877676716733111663121545753441314748588768141676145611885886137278137614675323187337333533383611578156272724128723625675614842561272511772741733765143511662588513463516682742628373311166285623166827656536765314584387877255123724556778556744218385154535143325446134646132117137611654737246441728384563344217648712255645341432127574517118443171713136562664876681757227738736474676143216365531673114576426264548844832668788836233382541826141132534757347211771278841532316316256613233841587663536685525726238758667138678243475111322811328782438382366782135313444384386873222122818684417644845472871274263442332252667148213747816681267262312487652132852833788457532858276335656766632831726722345541125657371633316156217586722135747328714544765246737373855637818317855418852166428347611743338361162622267472183184452415617335117235153567647146258316746375443365777734657128434161722148688176331121145554167272233343878744267838814236534148232162125666183744711824646647632445624872686672632721251525474335866835182628588747753475681231674176242424171824656115372352186511225134538571153634728155234772864276535554336558642623736372447555725137552274758686661365278814353566382277253188453546665363654612316284816875831243818242176544342161237735128718156641744565661836846788187544521272865488655757228757634185517636781188562644522187831145616235864561587467771181451224684117665728547371768735471583537145567611351658733463871511554444552433227388873726274344187287523463684274247136624218325782523551785171185867645736334764885147187383462665281638468825174375252587815767373156664555754872467633478656451733488512174268175454768482147726735676452868776138262122382643433652316261115414822788825781283168216573383811368148111686366673268437764721746752633463785434322861444425561343575522417112413318328667324845863422328235346364215742634184671688722411115632228383526585151788747578655725616513462122334323854778414173541811846225325413418786737233467454555833434873323763242535842384416568813166365323544767122847444111667632138661581146548618144522457227132855624737248721782824158447351123684144537516545737731454276887254635177517363812345377465262674126682453885743177373131316562841311523717457653281418241456652351422318114851335843856818642567578415124175267463658128153226144645343657745677812523228211812465857171761134715126345352153755127426461561821538833225421363864424231287881828472784313141384443726815481148186373468743438761657417857658567863776721753416473374275552175568453284776724558847833544452515131441875366637678173386788126538468227655877443421656133685338862844768464878222854333683282185388436148584223177416743753138534237542212581714315155432311221614257375215855473547287187126247254157645731167333227824432216638715331721477327388752261187737418648326435733553515383488342753623252885477711756385312213177121432627762522654381582422788317841263856625842147116755181631132218151433583787265556626756855232647752727754571233562754258633864421618175413273141336647377332674414327725734717716247562185233544642133663151412725548755868231384464447443551742166818516285722338343177111151857324264754432632565541147153144546861422555485522672475276157513818522774828432216414628484225263235868837831237767886786824242524677671464256888475235587817226355638646652122166256765232724411661544776175748262748868251662437448536884548523617382213348158851828278641353388135856346852727426412872177317876568261555484813343541645245544387772783142513443756587118354458334474375512555487256567511545545843177214426666542315625776436582856476875552215183664842552817261717166628418625873144385283571527484653313832536531536213551228828162387382241861621411723545114161786582726568642652484745122427214434663328881125864145547756363725773172661733338711855712435663852236118278178628622853112335637521722686664316278444422342711522611546261611187842143774132183131674462547547287163151423338582366673514134741617178787727677515254264276567315164643585358716388316474747377752283212317375611511856381725317483724654452688756547247821517857386658762841573336156515635221626353836181728247421271623332184781788468252132574588431731148185762675311264437557482162236715478237754572571436346251461612826545822336485345838324327187851511217112421542145633765531125143731541742813666248522672754127112162743613841551273156882464871646537784177711785766266871164218857444528181246671416782514835882482754758441178735465323622377127318342385164543251378652575387684625525228243555354336242776255684346425141163568667373122743162463775476173111866752761524828732618254837837582847122148286761812583885745384575856267157734482652527252482516112374251818158821272867764575272171565255232128213116573632726132177381828682372357813866628127275572541518314238686171423821718364537548245338718574326525355882312233656377865473822238665321552634516841713852241164116335451224642145122427617372352675271818144248357585333261365438657655358663218525255147174387853777811843333785167572386672473722328811383348545383238414522861782758885821744134154584832727714651618287242645726263365457315676647334125888146754272483823482222642124578273736325151143158837782861337313363854266341553246833788528121356628733456278551243477131138634165844255771445525434344417377475661173332472581741861471828723388164364267337122125223322754178652678785385613511173411656632356582171316776234813211845314441161764815358148435726721142442528213658285685318742488281845256774148638365785441248767858142428781753658215415486174566237371365417378166226736531554767512338745374847568818332377735282482845561634476147861765328415644814562244358164837122548288331732748131162677667138351275717857248713478514271881486461657223834561425166472246385841172884756821852565722815635835518758245533688523282372525675832727742852337858368164232458558742572477327273216678262115661611768626225833741287264162545216353222533682543352648746161277723782545472633165388871546365143483344552635617734783547864145451772247471511181538581875178582441551467275854177686772386825151723835444846414873622427128382134383734884585571528431238734837836326362777113164866676351621223742277323134386454738552284815355461862865462777351273153458875282358552665743348453468364361781175517735176421823355283326313372612452651383184371866218515711661576723828224343481176547788562626868761747273273252822462337456823716541438347638482635725331523568221323754234244113352745864722743735672212685663185276443725158118367254374546426611312588752463466777376337146313414238215428352138737257157388685678615816448542585876453387724483153324155825735834648665527836838251236727467567682368776641134846148477774616476611267882685156466315651221538866888458625782285883157241881476742776315882671268443326113127712841372536615487138831647816786651355514842151854456587158484158784122566672434765285886713318755853271727551887524774234422114316524355126776317642755716677114633757836664815441683241817378447674276514111245221434285873534458746187288373412425831188152154888377284623638772432217173175542478857326581247377167875771185238285127643767263548133376486576585756337375157823583722527845512157577412577175484476215811267843687187353136366672182358342145162871773645478126786123647857135331367643771753532718274536411533638488744538448331224373874514766484137482115838511634638271237836331275875544115746318883813466686474568231317872578167135162311855213785725571488362745358171742458637876212347745175667573367464444888328411882181637442765273283673271237876283222566711388227553462251858367341584842161553414422637683536167677772574611656218337717737284838616462513534842544482772687782628432388222686447877765532366445358285175344687452284447372176328314522146172524613224652721258146467661147816874866437376118613321284765625828426738557355235257743836467667568848864466855277533823238152428111866164731144787755165541687385358665745715885636831455181626223748128566255488778882161738527482161637314523112856163756764521487556387645626877285547835154283845574826387543463884477583862863472554778384632681236582748612146868823853385265355515756636517381243548448152357817444674344731822865426173214685211675778823572767116611812367575223687346214376777255215118837448474878288584878484172388252513222568285224318255324111886223431387776458576567181287883575587624512827763171868585372618738686227168513712587453657875568485213678331577437848321778433872451387826845355758647735438673888835437278324716542381841568837582131428127564728124675712382212872631582114583182538178815286154823848741361665788417165554735827822863868883242278545266258722311164321878213137853261852814632444746785425785672514686756881131471731878257783553678361128638437576564186836257225658727481431754512627461656264441388748548584152881644428233373373363727347421271254363243266512787736537178114788822715123748174567887686263547236373882246125247137586274245855354643824586621588845633727371512863865472721438431851342638488553856211873826536523613473477144418675771178432158371535733344642328887862812624643762323353787835522874265116477351558471758228461568143341658184216755742438465288781781856752848675235878882212677656757231832881474668337547616448784564664853667244646557125736666733271543511381464776688738563246231754172111823112637372247428683475783661653668518337227666616512151434456334354354665537757525682434441271375311644364151668388488843667786134167282616668558118111346723523818425545228245656224225516555843452115374387531853372412257428731832238525268264158815187548272262354326531516678268678548127842266367587548877785441351832635528813753274263528758755444677848831862861474315272227362416217761534432465562276354757688375263873135748485261816442227756368327537217617232232533354281433452874382238543642581836412145177245372484158388258357557768374167283413715415426822464812715262687134125533672143375463553746515125576716134244133478482775413611358688313476861264714578688168152632257463758546176543418812577327233176123146344654665553467318133186788664814141514225263854864343173845146546353365858855447778246217777187384627874878134867858261817776516175874332742328661684375733271455858143334125853187276658674371772785275374541728337811544863652716184328674436851326337732654545224346371423115646141771656116687188476528538251564523384512336115644466375862825144163428353833584836335723671784382511582482421771218557486575112737547783814653468322232778856716252647687163116615728163638165662532382667535815487852322828452514611534457557263667511688235456586356653427784267127674677821561882536735324487368114132831847584656211618745267247357511262822157764414145268641573883116875271525632246433484412616677872561323786876325222563481237633845867824277416628845282214674634232678686223772766855133216331623547274485771657428683678412448414222337826558382827275186832848166861757263118862676385685858453228881717275672511246313857818882776854433117358148675837788474222874434482224628653856782636728116215555766845777773257387868736247763126727865458362261554517288843745574341575528685557865482145386555841615856786118466672774174618251831422767248286454688763231625775487672565444686733478783732178528353416112256536775722682588456152868631425265528151836643285851754787438543114171738484728375167426858774251335314221613516221632324368445267617621756674455224156278134542467846582351665887111388387458565126675677325872478577117841763164418664515758814722688184147825265148451646333482622627688287614875587622852881223141521115873441568437283488271482221232726126673386123153172786615787845517373613174486361216476853456177775223221526823134672154486185541662871618482355731635134411665638436564111236478448523134286661578835135125451865833736712547563535735114641746885838226447864286476673224284553216735431334423761148457746388378658363162414447557264854341747411417361276322246823815115171537644177165713176445415823282252625678486673841375885276416287328884514268233337726411717233864521166553166316755155246528823144647364367664326732423645433687738562618163284744152136535515447862187614881275582781424871285648457325475583727584613768554127534463612227288625845223764243666663848732526288741438326786668336582272383628354384285432717717537652452738755772267427585165738664521653315574466227637242671654112247147613611432852665544615173853667214532541436654827148623518566154426347451176574378811366884586615138772871237333388876662782552265713512582125824812348438652834415732681768162468384816763566174526653741443558485776231483781241575735561733742126348454644424463125668452615414145642225564671583238132852113524278852524543618527281443653672155652723844814533352163415763548215453456724374511473433876241752857861643746267826356314824166853758471435142518732522524177673825563665277817887241317466244216758773162768257148675583223318575521526468452256781411687637683825864327233445735745562845721767132251843387767122378571137675577711865312755256472835117773137575662252136523857121582148848716331526326648632434258334834412235854585851733642654686651211181572511213843726653228881572586322573368651812347556243362186737155178811162885357648166775538141315365333288335165163621264745562188613522542655322581373427875742622643587461863287733272845421658533778323421488878753856565318252245244553288243638175412133824788123237443434616615753635884144852864475424752582764114352365656521828267641465628778875122554825167684125153674531427181226224782326428131166288217163155474753584346716511235746324688286573518638178646436177611668658373333783487137731417364827873577871866813612152253656157856861668435722658861746163774541816841773132283658731147173444234588574576453617676487355211628267633146773153487233137648376884433637173345385775684525214888843363771775472551135256634774474677823661715866836552882338474548412737525628473114858153186157865718321788636614688684654435838425347473832383637664136241434342873382574428682237647428568614758747563522552464844446164531173557424345587315355716213333431653181535742572617884671523853587714524118236167464783524716762628761377261736271538747817371223181224617677115635371141874186813585635261867241778443137514782121681716811324467813823638228336155143783432838435427457448863645828365315567427125438733731752354851572638236815217181478125347643652531421171512877672683774657571441442528345243872747186527173774787651655775233124883255131418757331453546731217367388557518152574386522382178575311856674348414581352257126865163257883126634184788872573261476668257466788215541217355648453721683235715482556664211442177428184114352782626184572325531337716314738675826532648577737732327118258624225545721434324166887665382754342565124757258635485863557441742188361613435168667831776677762136561331641326848333127746288883625345126127462365373124643348371825423782687715134185436751674345784231481841521521733168714347833126223827136644686611282525474352174362732416842313427546752287452567647555225146855726252347654811441316487188384743257353227215251347886453388443654256237656367188754251458313345632145871226883544851815813736461272631447724167454222712152468486338861442825637251886213456866585258812213443257227544841643868555556643677868452223526357524268775128444742777651188424245368814123137272836718477376416688281518768656441737635231771416435283146862326456738143181738442637843611837364854835234114855728583423176511112284674645241671535577455726786613732216776555274748554233462237572418646468587668684766124814757664548343812775612658161467524376612335583461187234747581312716246376585742627412876343461321835628378761532162336561767715588251657382454257257811687447184666748347483476252648614537114232563487313326843717645164531854712657284426276424857152275341427254868177316125161543762382334255213772527875483457482532732713131418236125631643173212184245255352775553625741758641855336557174838574853217248614386588222186188157111426711742867534226476186757244376853116812631253557734216831434721787288337113855747258418522881641558182752754318271737671545521535442386268611287872626662338388518688126174163552733261318817735465374843155422564572577545184342568834746474587656872485565118253746786134571155428528273383775155484117233235466488114388346528267338617831234763348468364636218638261153666221424457855174315844752764747125157261132281637832464251511322585417177817647436244326876674544154533128783213883825324677248524143845875215251523251225636648748244633828142264145766316162513523553444125347613375625187758167183414526156574773422522253136445476544818267643154275387362825221472863888451763246446873261443282374544246888874688376381415624558173113763651278726543341773715314371654886575166477418554484132158732872535112451787653263233418842245885566422267813885718158844734184647356163854713484115866116425576462677141232131246711212848467761845648428533253883673764777255328581582442363638887842176888472316356252155327374747142632346446168452256685281574145226811344527261356623747866131328828611138542647811781454653755343814674528444211856682164418511851136557217338425644847157525572474615135854763136282884352878124172685857444617426373375534235211466822663633242746774486715186138782635814328268756786544748123758833228652574226813336316327354357566512435544245434665464888132755276425631752855487614111621565671187522683788845716876617632711718666486773344832578746368435416148788264417757122586831543251455114677135572143378568683518622238386766482586531276223271642532437724451681818837316684665578633271284353324363711441463182531548667181832125363416221478643766634118158862467674183112673828378355362264162445522873651112546533266858426257778637813663534357231832743235814547334212262656141618888862568134426844166313567317263766124683135486881686551871467311178145157364854578212865618421277283665282543617588475844755743368315782826876716641812387542565112441512316874324125224667573688834554472248542613232667223153843165224315835786726843452736787715376374846426717563725617344721358684247751247854713463884346462116481743853358418645682186611567216851853357388738415372623668556753524855445835876271343228732584446512746146681818144863853762273813784117667734738222174451245234513571454746381878283288823533841818825415115783667156647617153628622737435571727631455872657636358142852428412831133532466886523423378171186886151178825662831748266642641116668676665883682636558834665465213646124568445378814663636278551435233658361787665682155478312145565511233713366745822256756152275615424715237778171252746218134515746334414353256863123414126544128427535861846641518826137777756368233685456776447116618574136764674621765423264664345851364142276518283711776251644336168538314862551437476212245365548112138286448282811526411684328735115175326233183722128288677267734183385175354336548534258672432717636332436836377786823547771632412782144416232572371684471213854144215355735883776726152132384465455887536183172733535338565612227424747546752685817242685233445857342662154371772615562155316882373158831158137264727523151428624826488584514871833772764713434883242182217363465312287664827474787664472877324825634518661215544372326424823471644761637444885484233544533541525163235576146642162375415766824481461835538883756855113348837447554547166633118654862285788611556677152724121856121246732312124772286437436288552565715142353417583836445735776114285766868816465624134626782583527265422123655887181428818155414381713621853412816628568272388427555483277575335614622386185843455814283627242472521646426511826563153121715851662623154622673848355354334576651782784352481484136222552726143217477711128158258771616545251131847375377351845731566322413423266615341173646825672461221237525273777443626425683836515335247462718254536738417456224727312645886878487172677424713274664525112465114778156758815723856317575483881178841386846425321627543673142126572626862314415573186364265246711532335222563771171774861272437582481813225584318854352161311138764654576283384886432314832184557124267554883178737527126726873681677543138147826748551818666582668184164868737112134631566333251231246641273584453433588787214837527372356325422762171138521811462266162611848785812665626474587325587758538418665748177436742641818652274222758811867617883234224651777816158656614265132114473558247684116842272615274844143485875455553224343218373477772787876483145164468355372625161328214554727185438864568487814842823134423373433481423353144244416616745244153453114431742826463784465151432437647752413685847376632886531741674566326343434262812181451135163228827347652175845122266266653672333254638883487615772415747225354331781351685253611521282823124547386422157641822643451522788324758182867783551724756724661663617624621166133674756414532664842473412228772158242852425242613746844165851736747833771185835875531144318377623473431546135333856626146642424437662425285637771153736257165118852181371828457468617184881567153838134685631143124581885622574575277556676482751818568236455563177811347186273238286728121677643244247647833843832571178223147457432363755651841754863481665516121316558224775541187334111526337128374354418163232535832584376758453855883788772832484651755441873847587774457322437561645255851324734578622521424272815582783782364483132878187526313833618674872186868234734552851253588134578375172661241266452173188812136155251483264282586662667334137613826525848457224552685428828668652324574486817161788446886833714613657166754331821521821521456526588462114586385847148757413233487434512122441842622354615625864766783855786571627544111343746873533587267723555425584627568253576445858417754163378342764681115358522563455533761762548627685837871717651313556283457326753142786746318336342662173472766137814554385784438686455764556338626743238424764783245483555755486236221752315654675882847588147437121756176223647844235545455855736727176464518388462136548281344132516254364761724126466353387456316187175262843325558344648152772457336553647635881782726432616752655816346621316145337872618381226323114675472173623166817746735263261514153152388613353147486664877147421423222248442455261537186451312818236112645787171113517244731632324835156343146156164884847177216388865365548841527674267642253758353578183874623272585168272257158313813262648637777841838641526116485772623685461832132562374581831478421378583356426538456775875684285331885831348853718284452887127217267456242244474861413513111532415827643463762864115435313462318582336538876671247652873788187547761181657135221855711786465226581568344244722526767747571763428446476581568786463327762447751685883648313372688186461324256885285226136422682281814843128624884513223564631826176137448377776887871233363355838643474163816363221731756258457388316721167484673455247424156853783171646556532746126565672334611578351165434575856324877622242366713561171285681422461347168863623836615325851868226712374377646611141378465462151616445843464145726744472184818536371734772353531275331481581211837887843747651745378187154764754321121484231814518117823851146237348355437485556426225572582722616317542442663315684217866725173428243174851747127435882378877726611625267853761271661518554843374452568155818126254212727227456452624376576455761257438717628365484882346152238821631312143776383352573377266158737828184167317548666852478254644535282358286516571345281166216235722647624175788781116164452174636886438444874553638336442526648818642586151176155855358211735636387224475584755351855863623855272658117654635262823268437783177844844475445137821237747684612465457565116675567287143413741146688445523851467384667815868564781414863728865452537185572218354385457748313528762342716183628228335766416635268484271858327215717375876315833572816853575363813746314612255221416263137351522483288228422633641427431253374231546438176318671782331426424846857511274715474428323422164258521342158416142151683635812423845138832542823178257432572388658823523734676182813425531361815567835865483683858267482525273648218385715272234721568377513743423358846134824885513517164815357371834514183252728631483884185824824174251465214276736273382844382366572685826334623117337427525752416335486276357657442881442824134754113687321742366125256355637761868144743737654362577278633276173874335678142247483877821748413411513232613736346331723864475682448738551713583736525562876225168818431472432771448582461148542213143852111778881446688464325542423417575653357318548575564687516744382767783681644367425554124658255112757786737734664286384431813411385265525387432741441878571482436644852587441282316165178137841622627863374413611116275274648412543136832477327325633727343381425475778523425853473462815332133241675346355416725763868257332343172563887448221654621543445336635483643286165727278818728143766372256563741122415455844847382521742258111167828221422772321473223415123181877461518377515653542573274444238175683381642264287352646641662335462682752648668412335511643563128385147313348856278646471447726326726654557553262743557618171717261786342217281362376247632413225215581476782888187718342478712437554582867266646284728564524624278615512475728445477144486568153624241178551262771574674817778747222331253845228734853151487477211481125878266246543547577122813842821275282725546816325734122872743557167735441716435678746812175117862352866646156681265536612877465662868511716273318758288857712848233653684127344886866538161262744626653734524121766286283771825183465617761348385672481477141356681332725746746175282836641463718833711852685151348433764577757426384481538745736748736274836348174581543224476152632316466782616735846255563367247445152438565258443138582788468871475485358844775157664838566224261318531475558131517661624835427128677723838517668282851121563145628481781321284663865667681615266673727521635163426871325473865644872743413115817563315851226741788643671671377715733375366641781364348327113888268267665816676778821548121375818873428826385533572343245244731388631388884247263386627212542371241876845351777117475255171217831184477184662541877211617788388858454358635558614122188548234736363685635881557838245688578663385262615852864636326876542528417182268434522552363152476614242121344246365137334586745162186857188171767171874111744117323528475153211824673673663634266584248624185643711635618843455775885763833156444227774675622365555137472384187176824158537334878258567486763471138245258587153138582432775133736757433873484757324424383765724266878364321452781342668823215622371814312347537557472344521278177665685888452774638753885161867411866436348233355227113311366713581341644234451662277565563828366156222644156723847785458341846558362182287861834361572416467723725585764637372425463428736525853227615735633462878226886527671882468142361224478867654366744814756637525643271777518116656714785527376412788564324822656137426138524264141616115264481781687112524817212278855273672667437384455553334258614332387134764314626862283317248677574357612737268725612848464187843177724587471333564434876376747242583148576576513846342636421282451432376615152416617572221216317842245475877787535874783771172873157382851348762466516744552646627147381132827752272753877728181815715514763627432367666218224222457527182333745133515873484522637586816285446641566725265334566425172487613364387671357776731447646855723728325683728254847852633187336524215772758345636587332681234482818586331364434251888758462711667674116143273268334218243881636581882662647664586173654554536843148875246813838386638274314668838827112688658575827716834881454423224158685523112542832387243584523876845116174385588684518537656154328536841361885432847567334618241681484186143386557464267537247887834833317644865613278513184874443783134585852427413321331424757717112537123832362664713752317775683525874766171743834375572166513754818383681645135133382254764226216245222345428183127711386767488174482523765744643233238815745423458672654218248258252118383812755473548636251766757668585555711315331888574567723676583154511382434223162234875841511872312412552668146755354544565658751661582454337121312366731853818572212344476344135333512667125573751682145446851273141374676231226343154665357143153771258578661183367432124887254442534287124728125568647236118423373652461512424147622182463362688632745786644728276483338255483135218765118272716422341363568763851516216132818221352445762718115153374653511438532366823783358533761212258112821227418345377342534222146844713724352886125825637758121611741182234121687878523114616643437517427526565154173874125386638245157516258752828374655781421145627177688372561455532676788514733541371314557664284163642368343513631467581323743328271176112862215818354356617588424472777145332578112216834384212251145716118826734855315645722817517285766458247611711342524664235622218842425353333136248676716137825468618314334543867784241443315757428321341462464321385346666712651352152188735333423856284844676722574488468568822326646681738516435771474312368457737186271787186372878321217223883612186132542238434135746227223444358832273465175477653862453717731683677882288416238133347224187644613452547574817477412731316731386348464828366774322515242885635155163122158617236347567337756158665846248775288781314746283888522622416144531275215546865332784665873343366174561785588783878315568814811515853118337216581482555215386143618566418328675774611337556767188656366865533166217887643186816432738123565548338628458558215758782311667728712644385311732374854682727316273427424845174873168225484235541848381772851428633251481778884155584632734566188881136171171146512665727861577266378854632716236181543146211834528275554415175485248251737782841737154582661228344155285844748788684621847868861862272743226762432863857722465132256182824262411664636268813466687166355442388365717524182138675177721835755688348157236437355561328423187264165646556868663828842451621243351584341846573761733677621644146785226876515588342661442273357534745441762486181357868776778242523734826632431223628564142565727761868512445234482427488542281647435352286726733165761435522676578675812341533735373126275423167616864158722115614613182543516474661143172882137255455525566364647427486573382767324545217785836367276532431615446462677437621424343652714565166428374186565317487633571646253562485815322457284624132116377335554112231475862441514764412313427634757853226821877355482388531864415817771572546142571376386473484641238773117612526554851585484835547536516844286523817523261553227647157652777538578342358171368781685232425274638321523122754414474187786474743775887366228351784761341854815381551453644671726363364128421125677671651227866581574186615364547476158277664173247516834231585481715623486482772512882315132361352771726563317437384582615838654442531843261821451865645218761225144735723511523316847437112283383345826764585733576381781871766216755148588748266565242818683871656336343834711136657858577872856356542731367872656528174433684176641431524422654162666628185264738557516525751827242423478615275611557826562631115256365742151386428827675514575162457142324843655624272617253361475886775741273424738568142475483658133277863212242717318426153377847363658641734812438371642176542165437312144215345874825274817611321722873283387783884468431717885166735642142536572578538575145518358531645554223177636555258328822764814421412425278744326858541684141273283131658341443135648315671765674157281724724134558281465422876157867828111271516583238476545752625477174762432777162511361526777185761247181835733883686654113718145136543215778645162316716654358832676816281752435236713248572144313564888172772415643134852156584552647326565412866775242426743387238857614742615373864175466752344831667713868464422581744476611281233814817425867726517515266883865136423862537816323774317653526221533536648216447476423255227818123173617375585134372366755555224527558844413173427641185552663282817413758724265886115636412476667128161553176546743463778827655263736783786151312644633582466588533322251762513344714763866332245266887645882733824356351871265678877442617857821312637482427543416352128572463151383133331782132734613266311323353322352131211173248265766854356258171248831147838842585887173665561654657328722663582177855838473428841472453376546722566758464626371387233137772433341883541178667786316328264126442117462475423768286787412728524431247152364511535275623511438533624188323344156644763631763733652761768113418731327281334376623485463343351833835621441777118158663864815855855486232278686682234281277744348755568666232562641768774657658344887431721166782874838352727648738248831184674532681675567418343834436535861184763812455882785778238753128728263253167554644328838772654343838342247184235526276651883886285771512476581123481663458727237773444558315476373851383272655431474845476874323675415478541754418763416762811837444578211343384246244537777577872445433156485476282251818426212853556767224732111333388831612514851514323665576665512584632573865675174122275413161221358514516165341713531272257346842588825628823151324317233523327264635364365337451466371218531314677874327521423168784474334165411818846458411717443486531834144782652417814152486415255848328488565775666742857687871464813843816251474657854481847885185356324538567144516822616552157353844414422383344182862574486228273531638727757734127345384173882321873735512181583374873186376277243523741558665818467463267475851377353315373441146553836661166655576524612823834558542775873345464273554422712746752625313214747865286247475666848776314634768253442255664831382768515834422144357473118118187872732435544745261674175653233627762872235215488456532756271248835783866184331243815782578281158637625482524648116385123118674546125524672716764113621677325368676285338526784362238863755388766273775437274511332337614784676812258788366683736535452531518265176136661841384856268372418885214877341435461533845744174843261537862112225865368741345311324446734611883181526261362787886811671156216126175613488275134434488265855564772427326242324756863878135387645444876362488542218483266312236777735467367228141856831661573227612754642233244718213245784775643434717587862358868853548536752152117566334261133685118658484311462335157472151228681362812838676565137745657738668466354557122465848783158438465418614156437343713642147641587785636718458873863217417243858417667827863437722742548134338831484285158152741174748712212784542556738785675644734475365155265437716655274724764322727831254683231786471723811338261663454731243333572633631433457122166551632632885638618453757266474115748512667312878522766352686166212662885435374243376678447142553638585115634624513871734314456726343513162413864728718838142774274435448381343725362235745173111224728444445427632824157663834652213645758317677778885427722874164188575213641485371583371265542852475686866125524634568643287153861436724482128243216746233538722535374328286762758418722264123843472461155733625525414527681174188213227787656878475414371358465373565122884542186347732867511715133232381425222822315567875122684624724552771543778136831241468512843115254228486166668548573433384515771363778286738774488418435855241247235644137862177628263755161254543227327672541428435627382824147355254682746474424656143214618142633782546882384726187477548123856735185372226558835674585417554243443157765582545728238646412576877758536283316475118164381248884378343652553362767443762582147445476628564516754388543457563477623351327345181537187184751758227251248174383426782651612487476788724788224223712637617854452117886135824136373446883444481356223486174577873237573587846638422761175481877367633147448723724662465575671264613867722611648175823471515633658156715642713671872226877416473155642823151488276455651161465761812783264223737234665672437675442522517185175755233667577445585754515461165351841276635546665317765162748365155243523166343844326774168166363474745118433783735261676251846783863443483338622888864445411778166177186488327226671775485431414718517826815337162746883416246284225623364817471355621831542837451522825476781873144747868733667485357782441518824485752745167414631426332452121221615555728361731748172284115126757323565587367322786675173554346768782142745534423271485652755518278371264487711788434166322532451455147577865614553656347512323125638246848111522576278685736717437352143628362586815765135326858675556477423362168226425856347366427666368513368356517661481386585168485122355842557134141268588113122221452645767672776768425833285276238418656584468612651241241657138145117326353334255241364816426321527448672165257472468568821528541442125388475223466184573314235861133352318822864531685835147642624521747418553625752354735386427878631471113175356443432156665163613751531834151764624526254656687131683743327851183114635162542315371331558112276177231614857675774576617315483752564344716245731287527345751236154285266851131628567118351441716325417283863845518878872625766454515182178333581457145374452754275474677672116152563751366142438654128774154428573855642323233787881745227358274268631522514771666411687423117481154173883877121637687216327166268274533537831183538351672588863586611834726486746343426335738147718877351618344178881621813724362851745723424777466115252248335537513254183441854664741131151323261455521835536184244757431552876587151714166732743338777784677346717787882242126455881761715515373737637447651862261844535685374567486712633631424567837513612254561221154173632188552368648452577586662661114228764162842754112557725157665756638786586743313528117264646227752431256846244156663251225844778538345816377784166153174368317361882253587437432246424616247531336528577327737857368386121574313835883382672546338868541265515568125154732843365323847852472737411862451325247746232536342574822678484523647272862781124378447515424543873412367444426541474832541114362368582112454167785375241217314542187367521887766162645623553566774261122627554757832264425778223541522551313458727184142371288128177883688882573848158347824435441218165135373247141144533576276817525188574887478443513761558845613773346683341845262558361755482468311141341182328534137221321264714816816515737657756347341863453511256727417743325845441146457418124763374134163324768871225636244632156131546535122161758428644276148652473645354522213715665153424151315275417828646133216773775377177382843332365565552348687786264151342272377512167218735565857164655831134844227844873146513166247637632783314665723134554761275824757533821386835245382744567636212541833137472162617443515147755578678157586361517423678873758476152656563818856467615611173682316267475672344171522287866232438742381734635181752537424117827782127256381586542415744354726582413285574331185285461762343868711785454587383772135123824871858548272316633122884252453521666531125825675554643768171132268488217458887244524767675445632372818745781375347722558711843242147587734763413745867514515878688248622268115486651112552221755761618823483648364171243322186561342881218261167262276275355118718885175682364142336645776857845411867534631242144668844516186516611251583377577622363624181642463455475723247765882834448514717753357518531363433636662687738521526167126621153186764543123144263578847375357667314344343656741184688524228672473474818231524374758417778414357665123646664273357765328261213148622873326744636224645338126386858624115356736154485635637136738366767154313817456185635138477314657254351542454633156566214112276562687658755237233556374341535282122556142232122167352783726432221436646866737111446276534237156258733585278548651464737316723435178137523267213758318181767771345844766181412683383388846671473866414624352487436433473626435627438566683728337867725254886465885742427465387255543257624328527288316644341226371363735337288517485268561543872167456846633278638242768883276854485741273411368881763333527863177558674574376343326648661164863488433777716511717443116673276426838264142363121724722481777226868565136364265226316542218637375842122747832453783117324386625266177268553455611611183527386574743635387681751887667636522246322554788638622466744213755648367284274717665563353373625888583363786876621867258554536122677575555223541533825862171653526345886128463176478142241865384638775586288217423133224822226388847414773681243146434786624351844351637764847758568627871472162577556183277661676515414157235173714574587162238551157268852238221634654551761483217822824136624454738255888637815416357667816442525411615265635363857482882615854164682378757441746256323273644756286424816622782374875281231513332543634472231454443833125763155375556654776572133383264447651878514266225761631638155256833121837155764122652631333547311618463247422871656488538788631757781174533472554863723418472134473557662826132127466417323283541553428377872254611127741765286842271118814671126778331126682376282368836312878636331337517735252355847564468317131754524464575721874447872572852137256363632261868128874783585715282527876764831448113573513178667438824567821662242515726782428267856873674427512468121351483125762566441853423656234361178347885718458224552587717341817818417158562583815234625125226677525187641766757447776884565831753837483545282633577773311881536718345286786651875458671436588746431156345117662217243853527268713578813474846244637524742655616521517425521211534182145327447116737671238855118177382581342728582358142843521188538457587338288385886752268358317253567412177876273734647573214671814421628474788652226144451525573534553561551535614827428267675645111327141718138437738743572742328427833518513445337778284875226638488448386522712385365364842315221755682428361185683725318516638712847755772452171368566476756486656432176827236721766574265822247557422224634322365624217456642486745126576575422158261122446583766175784523162244767745671388543857244656628414587332818135851823743768112122266111781561233832265548455236121787874631743735828164876266578637485854514847145142126633182831348585853447827123331664161728824864138141483312214361434126865323433813643861781224837135633335265165445783867556158453182385572185238775763688311843858258666572165144327557254858342823771235442613132556337781471263357337478348528462762621638456677562326226745478325574523257513156355546332746668824852334775686478513333176421363334264623788584254444427766851854477848834454435546588462767721267628568674124347817822284536628177112878157472378731825148762476276372886644548228776482137776565861158781821433427266836724146613328857811651152565268817128758276672243728875218622378642673567833253241636716445563244163388788164375425715441864757252272166834268381767468252546163377251824387833126533458524837233154243343142414154488121221813777358373587718772282281812568826353247284134527616486444317851682675415565583424138464862657383527235377434775888783885727554575357553413751145885751431843411616252457714517764158262263164131355567117458815317274256451564515738638272162362251265572335756145575584466664558263587637874345818435573841855578835375173564654577282176773147812238613531883121516725181384652762418352427331141638238235482244872723135724538557572161661455541638142371643365271186231766432484165281834866555535847182631446554644617781443115386685835146782762332622453733153638388753232377277148753285217462161115825224682213755135255168772543232413448355631784325483176236126254267213733522544258456776177768386666145186227544241884518875862247528135746372683452712666354245887861222855635866224181684217665233742186366531342612776754382772762832364826557778664426545384566631524176747576243551215445558288851355818757178484222732176166562684754716222631248883211567824651243271883162253228118253551186716735782785876868866453624773231811488245631183876532571567577637644357777587856576484456872745378612556115767232442854353487622263327885273552716162184413762678826476161136817564371482437686255811576348131454553687781356643833857573246882356586446278823213217133357843768588814228761682817422313163446116683672657427525133764771285763242228372274583116183467254412675416141227677555234567153488527668178162535187671615516513534112816473313527876726343551814472268724224465361847332287355483227266577834232872675814486815333111654227616485643288335836235215747358676433856846836581778386871313871681153746218858587234782838734868665818238272717222616416175243275633355841121423344881355576454124441644313354377644341884341428824874371626711642175742766767751755253882363416372552644482837611782782124125323564645244143864851745814473514532165571552847111771437445716358425671716887464443156886476278737312242417345756652857683171551356562622223387134736583881853657312241162417861143618188151436834147222852447443478375852661351631212314217528754458125377173125113343651212757861868456352331511811843838275677465371673813533683777146165213141274853321261548576857654242225231386534222362286582434545367847876316387422381126828461663154737228457865182764456861886318672564125512767145457741711212266483564772168761172753514634757464771858625378846238451823114721255847771814718277234785783344161352111711257266856386676861464166266843668443747544262568263648862656671534775246363571114137582754283243372775417732513813432574814774128366424367527465318537684663272277528113434831267671258586512388217768177472257633745464722151637424173786673455446854443515265873182442211436666438463484877546752686864676841353316513511431675822268533837851851667838647612361286621118563657325215748516414538261871534718342758833851372681277375115475175257622114718837156741821536734426287156236131582246848667842443662544727536286367632515188213166886448258567872645862472157165762266282115513464837146858666818726413374584647282166337262762551266552521572467562854772834746763285317463328242837412362646184828521837268241344752178228525124636738553267367323577168637316361143668552155783812628353243778542775441246782248127813787765476565115786275861867635824387546353431121634832174457148575348142185186736335184548851465166562666243586721488441142658356611444238587846875476587733355185146451866451624863677127851538233545512224885377326778572534414458876767364568386635378413821163832368762327724577676623675777641847534453244658136315674227188654266318538665568318874863433467585223145618253153617711254451816285468638252434785275387311482721327257773635112688838665675423242636475747155274274716341483724877685776573167385633436273422871611884648636153683686414653721552226372821633552827537651127733525241142762287886728582353285257648428513423727481125227287728254185122154342257838416336667683612874276576413285113415273557825778786422258265446776185126725354313655846733476722437631378824815877137772235567426271374835336531814773162377126712418888288442548687564487868541651341838771532562334334221771726527216744815752651274566241873541167643713486552366678364468483255886877826548363642635642641833522171763273221481354734155658177275832251268377371468535217163757852247861785284881513728383638534425222857546812653512247562584543224426747418362228443766825148432531824724347536437325614327827772573824155778472823451777341785848342414653262451415241145734888578786853278382388824875224323777427224117137834822871457571534373112222174474565768472386841448458546412521864247783123626532435185486648346757336535764226231635765536162426226576661173415435673843616425287445277283131338767757788131621262341235285328265627486161242728651373812181877246856361374233118614164868134528265582536621127867362427422763481516466247846343246387786643148611444127413244435134821574558275881352211124267647738854375884578225115176581864654315413188127186613712221374326623354231212517347335424243342524818338458376161581782373317565836566267115673417587425423265737154737337862723562171522785445357481281677831874652621561761155462571325274768344175718755567175711533641284624288468322564443883145876665134253116618756816365547735218673785262712457655478613476654332577681842156532736616122457776515171162346568543221582637273713112274365132686865634814328365663452578148824672744812118833561815628234733251812117228778215752334824183365166273864558438624514112171117614888356418322774835882268276624713645475864253242347532241562853823527725231222143865776744615687121787177688884841235575515273844683282167833177616322573286152581526623163441817318456346157717858376354515686183148641145832684633157575652161431115178368418837731358421624367435833555276668513514256228352165225547765447155126512833555637851465757462847446157326363442386314586313286637411733558411681136246773762232643636658566215815688843328518474624178643333521678571818521457888184137121368446162127661673148655127821524457731883756535416162578132151566855625117326837244388812677782156538715344887722717765143428522845583123528151247674247156125375444423734736556125586113322718151562845888341848255436764525287244815465188751343876258676885616767424871536521877252138478826684212587316865523146228754355685115832353615367377851445847416674367268146561164851812153813672765253756521576678438342532865148555811357376652664287352215728442882184583865187527128311757487284264523575685514815512346656566188127465112222528741164746164778681513761883222715768824522616533253586386577455818661133858328612532351574121387255334331258786128225733343142556158242334721422118273377557614316332224363372252776115561437555257836151455532421237374186848552125431473616844636462861364827188533347324515147474242335424783525421257375871785328228637217456678361287783733451832811422235588485225611154855158816144836173873512132233238781471152544818214261444226216283247813164255745258258547868377568456463754337551176117765381226633336312615561265842378725814267261767138352178531458421561184417254137668866586543154221876137823336768456263827733822171671162262727768256548888376154783786814753618684345844448224383268837821341816416587612528628613685154157745446266836775724374511723727317818685877333864112433564753281687526125547715812755168225281256127778811452648822188826216238886445133147813762162538841338335838238514815852155878571523143615528531136232417582541552532762431841624314414861172234857744644445513113254611728518165555888844512472784754816566261625775748856114854346713558863182375461123733228353511865528885673836847277316718768833484141528812363752578835728412652763834482675567673346828761113878278374153665211445234276257516221728821857265328417723217127317845847538143531272838326625223616212521531441555457151678811262857611438274381713314843731524328151761674724714281384544666184161746472864321311436587824631717758284482578521333577341411286833528834643362451325221837544384245214248273888121318452326625647825441125324283831765664315561167578242638228118153678776411113857572625636344225481148371386663427358488781713128273127724552468812542581377385814873755372137174845165713512288387631264836715816514281421336365685722222563763571586617347141221657576613155864632383633287225371145715776144216312242551172561641888433746254851264836185258883678583876317384472561246433333366236174474211314157743575865762544258386674415821685651317754618781726354615253181555653118271665727441511113212224751751644321858413431247457631272757822821776673625446257632311585144312878557876237753632838674287275464485844567321388552521815534177186642718211746768621672881468274718656266827584462216116213677165616321122442754772477158126531681483454615551137763647527861146143188228674747382556125773573857353245721352681526885443686652254278761456212358648783738462677115848652877764735374354711135743114548314281541675711251851242113554254564387853538515462472687612636244374745155126223137763611773587682163377846535538122143231446825788123514347767368574784518751818877838361716644362426764441521217152684672343638572835366377185762636785636861574776873622277334114743113315854418666185713616713284254281483583456735326346684514886475221578533275723117446884881517726744484472838317642412451527156611726355225245871186743551326186775562774355453223763138252537812525684771332341687816583442742164338725414348165435252113354131254282318711424837214421615228231211142173722324142243821282622718821788242368441534523633561457448435311214728432581831747583334144544322313244118658744583412815835127355348646328351661526476868272164567212548562518352888652376251527315268723878812167534438242811611226768753751127847151635736756874531224268246637483556245482776811188412885358717221432141375676772378548742322738748824123571834728648324445225216267541465157281164182235757345858463228632252735214134616281355311522552464553144243378618642868876743175181462455781751382584453713127376331265422586333447754735283827621444145282524737623683872761611344417824243276644571748635455486836415478787428677632511256463125723461425737786268135727464675837262374836416184553835342475677212381358181456473433867765441821256757766568874727121467618662453138572817885347646754332718114324748848735128551816436576274276267162625884828626356575854348665548611816357821325871566817774137815683387151177346483741588687548614841752536462671622741426332713316158262564642474558682481262567861754511172888442177786824661223868321484281284818777546813582878721521646626776461324862882281148761582231468722741117367443224182727581347728161266583814885465313163664453131647354352756463684117161475747427224226163711746213676625861317281322178156646434652434677327747845744348521328485614743542835725851372823615652278363577671827523228416477813782724173521272131152553386154144825481323131811863138828385785744451572472562668638531238625811315461278333265738658363311587338532646271513773418345345462714454228744551718246176322827168214534274531622312571217456834454674152422251142385886733486437883168876218363158657317313656423421327884827884566166767731542572563168237877334837374667687846164147856344154224848173842413676271532833147266537245481336214778418682186518232843282775512171581556435673566437653532187863132644347512865378121464341146315376671242415631512618731715226441178884711364184322813153272822188575665657267351246423436528488324871146831325131747682411158877445216518517717453332538544218123544251772368214244356822312311534621465612588613115586334265287638363714533484474131434846463885538768288245283352484475282542681644334255761665512656335558485551554645273256476658388511251763787863472463122453148811122665824712655413722633835872551426827158832472421373355714158111468374864172881888231471476454281635277583372462851167125427816676254173827222827171782111862235822388377218417775562742587727868117613284281875247382451888785463843358447286626413627424153661552883787614172433651218615632784558818331417547473381236616543817884587537158716736455776512767337773646223158643854241861626555884334845812873745365133662473663166536727613854187651133731217262484266134188465247811284364782847465745712457672433557575635535348723164215571474446312544687332278175153677436846534677757676454158332611148414126252646162723828743171152182118775151456235583577573257136734778354381681248564138825624184243175572251845863163821582667273286315587382844742144261133522786534754573377752633628428671836241625244247581434616317273835651388768874743776823553276141612381257243384373542866874555622422516182826422375432126372728152777546445146272775887383461436221845376582828167535354657667886652351116385812461862887434783465511366556154851824774624253218336333175452843615283221636826846245554761562838415386456158423687321717551351361411244825554534835125432534532372183255617156251637377282324412372284464246863545431225446747636456711372178188348831562323776432718517772442363255813112475185843413857682735727425335538788353561553323272654256685315275727744786787113844351688871465653236573262638824436585244752334346162188222221333558263348578821383557271868153425812346862531235582365167164273674874262181214428536638526831855343436215323434346611563732827117457178562721845666433473544352286112128861634218722751124246436713862735757878731676354475275553726188545111673427153267782447685355876286752783555578327557886588757436122881856421323735331651632464145782574332133376516642314517618857126416616614862515732842718615263524252573576643876677858585673132226375338561738216888427173355467785838843136556213754358574182871271745115766157333458314721577383363574131735365661312348417834832286368323545773761614325124167283526425446121167138561638715331343182213465568343385835716415241216426764886821756128516317737547356181158752514315762263522476318678784646583884277312363461752636215648115465558175378525362214732463848276412326814733161341431337582486737565336476673474587627134343885427111455184838487725225656825123834638837882716388427648381413763312882482543837576351356114152848238464615588457151775252666732642278328865577353117521776265111287686351417314212163622185582577126748781381412575843148315534343677364358111854245526554276276545877174174641262474285523211822126824178554276185115553841612823562671682776575675817363338237254138164842565241437334337846663762638188853246876675268651323386236115662882386534747414413348152638365162256878864711742172854727411874118457454482575381553684132281566523854114223457578755868648616455322727211243566518112646327621252832732443788221186231868631313216348288235154721144781638468786182616626882334445734417824688368138457254457482535743541616684566228635136742615376212367184422783456531322583787477322677288447771144773882776534123781626251688714878247833655764228242863631671675381753135327638624466511565211785562474122751478735553315585542288314413657486346512717466631841546157378628351561657564246817658325223672374332167771365662237166247223411841147483571646521884628417658313473722146171441248667568141847746785618474585225272588211351245735312846865276664534241246827551656817514678452761882672474216762232148126658726872741155145688723624635187546714175756352836577441778175881271585631466235873727465168636344161634447661364313728333855576683726727684387788162661836482737165357174521458826773575281164746478857325421473137873557362425151145443875681653551476321552736436847346572557561524823837167421722512831252515534635185463212843211361175213436815211746664868746873547267122662887633416488174337653266178723662445642852855385231453236665842772826222315512624636615443813752158472377738816146614825815352454112288663338833361633221455357665854532552435457282274278422358725365222331452862285264712814475873452382317284871466517488843417423358545362538573383748331342254285626251463136326661388331415425683418423322151486176118726368514842453745657684412168652354815368412756177857884767613735385528461322828472237314174134633872785426375823112583867177211254313752245614514751226682462174475736541272538672661138335241577236777516466384267241661844818488766634346566641464211382453862745515618455621634754541776173867588138162311173158121287463766336881764584568832541566124467181476134581623326431554855357266862372687368586216322627823636173812747564231556358581877822286554437285375136633677343281128342774661817117771615515485586282375713568861725473114543768277312553468463224368638651834522858265523256447871514575345687588476135817252825176114385834478333616267871278753234531773722725783478767552487726748727256117677822468222427865318886663148866338472111223575216683136132127747356563545513788567471771552133865522843161848862478254321131336545316663334887145657746551558821441275218357162314785552264752816671257654527457417158846823228444238811853665575146142484322336341811113475844427778888336225841541317645816327713612214523277737568381872273553731621278156731387374173251526586564342257817746235618535646113636757151421382672712752835383333815321332426271362227326516538781438467261588383474823544886576525223118738465723361284581844363845213786333712288225334334736722383367812887664253656255217876225118888655527141325581271677156536224288352732761321418153858277881876868642835134635346682228175773531512462834367512237121684363683343546618743553443744523146876376382833523735748131272243747235755725663616282761778654114827111642727258845622715377357748656682548464125387135361215856878337478185266616475613638322178823422371585335543214163682751727636735582174337227375552484443716551675784277115584756585186446653436865181767186548714161672147156754158213578313783211344455721182284765138628818335125131663777684172255227227627278788535464131445661878367741535222132348443286631338335126748851631832776183426455848526252754484576752131437664865576363145481728282461164842314453241221361412117244342432538174165687781837717522623466376254367843333372223842713126452146261624153377461725813874226471154236337223168712367555674172184274466255262118335257473781656272584871483214283377226185262556665238768255565863474751464285853135128514157625551635748867421784153813426354411471134676535571686654683387736452221288513162716272617816476288311336377352117733684454711328216846342134745688854811457478161422743855111538232338845771656418374545743565545444347824858266782722113466882282635286578265545684412754424213463182426333874224562444845362378644585288544635772183476511718331778315831853547316554172757687433438623375385136457535417846676888857875175557811633843736262761736572778345713772776728236478538747526526787642885577217423165126778111476757617352648441454856615265871335183425688614628272747132521623723762317265216785645548767488647631551347765524677343278626261884158278635247525146334163678755731315375851377573873378427353635766811563251175174328351756626854354466483462165216188261547241573671126433318831348753577117132481118628111653353885344644536763561147115772674163687668182438473154834518476771221573557752386213565776632116178643617544671116333517842218527442623234663368153171865755614115373216633535247526571655172483876314544587122831557588714841817585858415273863685125185256213163537245623171156657334556277282525335584863844311281346832351517612257621565115675416266312858425518141787357485643338828675334844457434231676742234186134353627751368753521811121286718832261126641685817514313133763323546627873828221846177376651583524352146188821664368664131156125451332187855632725683263745246658487287881553432867874737323655315124478542442618484444865812532111228761824254751264367865126886168653622686768555683248757456721675524683147888258473155461748866438864867657664277244686361254563528576447762851764811516338753215738464837223266356317626282578652666658566453258876327544757431363838483215521164716266222122647142646867188153234726214426382162333578384861872448651763487385184323822477273326358445451277456484676584822351855886112285831376624461463654755122682421171767415523665512674853222438544587138656588728884188467522263682483827547221275361317236153128327226642468254371472861565574465877657464141575683551524737272741262115221845425431188163856111737615324817526628434847281571424784473471383564264664154227321318447753882725832358764752644474384761635866161363211382236562561624373541254856776473682818133761368321116152646181326224783171266755766163816313815686663171664141583266256554451871327622458558677665377118142215747675521473416874178848551642333652323827835521637573235818288562358322211333386754134332841763655686464517516278353775876631685824632657527883738264437257283472815172538438777355485812681148386565335364712647344534611462851517741334725685181421571374471212172723255482886617653482815833632578712111266536163178768438768536513674451211774773466178825737285524668476235521423121128363787321473187717836877371152878724556365364711613367253367223665227821114175243246652855436463582148241657848234586757856564533437428284145637674335722547817351768677858123582681362226876477562216652538885654687868565814421336888123112245621476131581818618485167345361737746556575343813528726351876531412136651855823844823555611363171241573347746781883214764567842636455688241721518781844317758883637716726465433163754751643543566353682418158333317672625165828222581512263165383722858223712414551576483456152834685616155285347865662616363562542278544134264161387437752678848726642744337341431864726171574533866157241172784577858225343453358134415573352418852571164117343712853461466526268126631781681862763261217536823725285275811117841357148568251212427812113278563515411856837858787647455434381321857554344248634458162512841142734688681162544155658721872685448515244222373458622654622547252618834356251283754886157822684535224526842636813817514463387752833485146811567558426533438362564561745233758525564784736663585118181314271213335414757282142342327424438521454661756365466317588887442463565542674321434251566266817214522172347648482466284416217524846715648473877272581642328777342623244787785661581652461415388267443537324541686438243343738453767126527878645178118384347778135583245613336842742437762226188348631262185485638461353564843764736824621768433176162385478766226567631674233237745644873836254871341168452472235785884857578536637482117842164511211352625648117527427712825146233738116362748661118876745325685878548363144871681345838431686351264717178174123747316826675327315472851864872853353141628847378737623676744136363377328368717686455481274377875818616314374651463873686222678776427144233615443611646438284248471851444662325253327126645726664465561516735131157431254413161263786446781353455215887137342137464115754586583771366671471274681257614723568427242765773512846633261512566577887145634852725275512533575281858754384458541765173225261376332117114548161726132428535561313211672113111163365276146363158176245815313375518787217734741445135326444672818847657218648474556177738267167852484814848744888217647635237581731717857513882873454286418855185675241111386254286585335276486832445525342137544713333521251548663372525485311372624833157628252351478627325343422565736357871115753775313747256113553347783414155114235576462168181325752218375876116235762648227316588676614868565257342573412813257136664751364851382555556626838432164126244311341162627875548478352454247235358835784283723637233465756361863525283527566515337262727222217131646578182643345762141422538443174617624777778365265227147173177457888344723715323511421277274886782323714772474334133251678145374576764712126158523434588263786725587878772453174334441366613185512468154751267356612744262261337445446588266688435518683811611541652111127354286424488448426231215825184538825266672626337812188582766821868485731157672247447366221527562172361366214835768663152613526635432565755328583436487555527876431354445136576585714631272566376118423133757166657736824777213828732614156734256548341477815254234475446778215436466215662877117415556835725168372168685554352282424124663846464677513768864151888361784787585654472727324428415423253647486658164726647786416845731782282864531822356183633183345421246481724523647127157367312411281831178131362744341144461326446216714674717552576351364312612422118266224831788521257357435633513476717358347857648472824453713727264611582454228756825831317346664234371272564446737182677528385665711478645155418314173514581756414423873167618385764134273835363364538542123618285315388373815843163636715766385582121158425821874344684772426675755551163632436827356642588323567132744776625317611474233725243642483861338836386414734713186137846211834876523333372753138448233524526812333255458635685216126477431786881312526486753473152615225782581377181445187883857234426115252858458561765635832321722132324476138145738453523654486615527632344718458384325587187365573145238626323822144618178772146346561517216587483424137675848543886823413157654866176711485126116657668841513816371652767865372827482855163134762884731584133322731822288562544314774584113332464163343718121256232671657176284367663558422216536652486282877165732683612482741573472267122728363238265812283811225433384473178153861237453611432641831147453457623415747174286857151155566413341372535341628171873557765422726842684884833411555821484546775448215682754184755417153214753854671211482462444155436747381385651742477684515121353817447476718784618447785166258221165478731775746786343751532254227453112141334811335526331523544446447623645713733182474533786887512131385545584768817151415662423335332553612287285812618865274116316252232317736474252748826484735217326227166465487647536746386417786528172438645418838611418125415624583432486817516167174675383562581531776133584287565148335377116256732215561576814477226312222787247358715531222548127445556713337133121363452525277628272838357161148662617835321673516466353735836714672442661737655118684666866513676882754744661871756874366837782551336427842818641448465225162236131477268131864118852271647741341374767762757335787113146832652358743688472874164542745218132263724254662856133186267755358243532816173735437434127564618271443511867352411342621536514232343363468851181782538553311638851286188672457537381353644326368345625341475215615446667115413143662786512287657852336187344328672432688767311215188667118232256316262238651646346773353373167467655867531264588344276265548375751324763756325826314632846742123725788242763122622781582875144125511274837811148827677762376448815674776566241218666444347883548114278713236827774285628288113774288741128422765875424483818357343826838546628824456513451485788277746411773744886544578585674683144774838863352623137176654781664143542538734613575354186262238614564773333718157583662845255685618257272457424771214117571758427113471333244338321326255386885385541373354476374123717336686223447542566822221522882382756145476832675244352374241865727132631481268478575671754757218828278877171625543727783845755456842711364136551548387653785437288348136535782643543167154687474417371534228171414312714374187135423246265278228356237552531411858364687215284226815357277837683586656444161158618112831338254224876322387318741712651683278687752444578166156117261888326853335568536531836517884171573338362775745267867675174258326511144883544127522178555671567878683288143225167273718363188777757733644765348727217611111157881364617752382334755222883884444577828481388588861551358628761275166573623268266878824842487423876315563551443647531622831467636156628132776156871548412415858552783764142324172643278176643285472447718641128278213217843763367117858721873461377658243475473388771428576423257873714723466356831133851283514388346637531356556621615734752752473645265317863512372722854148356537752448242263386278135446362682143377262455442166638774562437222516331345556663486471717547331271571512666438448674754324227233851168842542255133478427848638534682573414528287282744514546185562481436755344251434485418725348257287561115271282636747326827743233675783312121248881483174728712178635862741431131138414742438534257322585218318128558514743463857686423133633285156624768223418845683566886223488237524283511165311557846265522485853448358466563328124447685815187312317812257587465565345833238838738621533177782347873242222112154523346242136232786116828236482521725141728518477758217131336247326581273218127468371748478113613362176863845382385161128826856741158355648855674371153642313677653285726472126425221471366545361386845283455166274283821641877674347553417865384673643326462836831675183581181237288131444587787762132457463156533533366686172538648575488411163326251876384544177543642383366568881645344455723644825741264411355136557513152126178638443781585155467334511777273625656146182364722642767725644825587352637534626547685266682788127511744554632173712828657514472848173215577753118817834382416517476454112544724721674711651376784436714658717276324752434532861461252574264658357484643112867515686713785351253183137334281647224662551143767244146746825181577812166747625515516357518115733524486141528641386688441127551578625481242226743277278271516664313813527748221147736612462714812382534814884584147775533461551657511687256222633161574521573317165685416727657851178242766784666246453732667161248223168658273766223483621583523434442473152348126163142161823333776582887138582368561676475665853377566146853288616631475812417312737548715221172722758321327625718628318721885677731432251523268742643622772115555684571518525586662611544754116236672612231476728858624655723546822158872886275241717344836271578674232487725311886432474662786754844284832233272532675753612344438725865287476635411145423344446135232642255788145241458653187457877227834573183617418374341775641432831348227585813841462151674384276317281545716181714816545674113388178641171686436527248716714718776351155771434642265113451531567211175551658734826327533576334252258472257136588226641618337424316725137447757646171247647558676137212812484735434527873618434134855625535117557578464545178582144273716867431357814355734681652776727424834851347771434568242871658167552626647283383321331538251237871127453872367618343482824187583264121375162883736742531111426743841637215355315878713778532265265835415647868424485343316181316866126681574233548171162376317152663413231341515278375121727321457765677463581627515724585384131776851785254286543285252751751788284861442831272562657833674653242338331283317521756225173525818138633657557826158642355614364834714736558147453487531767254357417547363364176176515278812413244615112884462631186215263323515632248848442325171717125326343566781341782181568328127556881247573527314461536457121542247338677615432578587811713456347241118471181314234625663878323237814558254255647211373542443523824461873457833314147418223332523636781636575476787484822845264544873853617855315111113364582622611113831633351422538865872744124771164613845847717364568744212241324482785181737264626287567483432561628775537351373118756665628733812451613485534534426154375865722836683618243583114325654846438588827858863788151288661252851471378734421516462271154748882141647582141756164383165448145215871646516343151476443554254645333864682125482215716763784358857822171278774585743421415717483354257873722147272481437128435622644237578371217127131888433164745267873622617266878638342558731826775244864481175125551772422123762142148247853432687345544656618764664688272281351171312766244281554574417326428124134377688117231688618236877476558657436334724753684224877733458225864267416788238242618258584475668152483777657573421335842488622287116171826672521523117224773163768277338154722841812683777774662675478144136126117347382161543412826771884655863466285418223531382866163488656883378885514556655458253168145315241218658721545781463776471677212772654533356845658637343111886764846116332173347377712182671424527285734633834362111868743545814778362432785737717452843387474533436361548688468822715212821131143671782461374843231441518367373551286313441582774885545441367383128611121776165254675821823752751427481564842453521778772623685614153261554466375453182861846566872355122234763468648543546383857774453275667615541182425642116582816235767634758535476547728165835355718338675637743214142625818234771314272312286513577758446361414584828751145353622483144647374714813757558175156856256381735266363557164848441733428755537225423734641614225887211783322244472335756586617214175662884264328443687314865452826283457763361872241677145246147636662215418486661434315431131563836744444388635475766425185253242783247244676822518817516127188778751562618111266724575854623317773816667335158742258441473418267255787322437467554165714152147451618537751284741216786858133867848558334128584272731226738183573148848146156175755547226686542542216676443222384748337856377448635314144435522613582867383147827557533132354422441636563867438241611514618752813636188453755746517235516287144427634635822253871313831256161568137482151845734761733854256374777634516551233276858821336131527847185641734728115686636811127572172523616744624874343143622468474386334817358444578751727632541136758226623363627268822772812615851837661556825418461215115334435288123177436877872612268463712126678876686185548616774781646545313767517813166184778727458214312677117515713278233215622537625741256724365371213578751561413546561342647873853712753516616562835836782255412488244265815358252424181726427564274612762157171722877668427744758386233447812581757535133726868764477437888244281623826265562227533435822786275846236551673884324626815685373537127673357613715246587263661634483331363738176581356731266836876378163342858528322882827312161384882286478142668868627557724451528638146826674646315162418542513233134485734387588282843814231454434848523858777487588851143155287382344545174824351343816822447366256517213364611331532831644266772218886228488178118867832855382272672164118674252247517561268877723835183661655866784547624328682652222554536723588523353744728645864628742424468387331524662546783231224826131651553222577717287161278676851123637156722253177575351235521582755621117334288153378458821166852581367266686262586283184762464371414331658373287877254332444573311688755488625563488528434758778537564128657315321763613654518452828487153744342125153335656662561268862826821238334623257532457435138221418283135254471138264677757765573213462676282212178223118442156167325241851146252773743354568336634848582563857183174811433336668251711636823483457854587836263745885855324338375162531871616682271442841164852535377433264883617448313326378582135448752722843754372378826763836571123311265142445363234571841255867355442642455878363726571686288572775551755151686865583358834883137483448642472734464488383548723662672323452245642271786747676528444645156272452531316546472648654187261857688843748181618568515674212266133834777474524467485558666583863323611228641684213438413158125447625737352437424764312274285631187347174874435578566785211743718334112256551727345822238268521241551433277836451552662587511231753566755644341813276812728417583846527658744544732238371322241244453317253517851771677711585515657574468326623461447285851172323776274865544552312787444557351334627163386458275435366383784586854432661163187681784521418555222324187265131761548167175731327151566148523218331844722852854455222723735753756546687774648152568457311883738251725461441156274726554323663378836434245347835124676627652875535878464585378586822681235328543237134184688244546672684884854866441826875461822258185285247641475247483845615722781426642413216682236187357716556467137835256872662431863724578775355248631828252315158341755418645356278272787884251182744174157541257245122477814673764738332755748623832746534863825488188274465387356541881457325835535414556173725238335162513156615826863341338712715427265246774266731155784775126234146262828133675482877455524836317124272772128654423254476768511168453311228145587521824512237233745145756737186415217525447837222725317641555816126545181571362221346272237784412756332176171882884312522861127258562466144718158488317515313188113755526816573228651566714768431623362137455464346113641733736518713866427155258756781441721577237582733615331813558313182128738357582537231822737765764143685527847787611687572137522622871288183468831816762572133862158775445453443544877745855317424168514748184114458843144632443556476427484512657542552175281212556818718738182742584753147148882577235127676761686243444847444562175553382634413126121512123476672846246811456668147785666125351415285576223755461216673442563621718457841283488425654657775756714721261851281617368745281645133562357453163648246722446472681624741355328561574863674482237858411435657571218613636173365161611621273612678358283886234486267836821842176867586456246246868458631722588353212853234828575178857635755477658421741833841458151721165311163585348432323437811648653874647116546541378283653734368634618428741555288178152381636351736345878815221738634534563865524348743784872152582145188153524155688665133337487452537534483567187862434724341175837457584757357121733872115121373735572666488257711765175354342325848625152144535323786122523755826887214175587631578387251483651325213316736685354853664371346347568456148478874466313716537232657381815821727822558586857636713332431522668232156673467237878723622372417127384552755345184662843762872451376442384787167432685668734671775426355711316121355423886132118522223454582363887516563865243165853388328415461137654541254546732137168571287886622173765838618573455323188474223187365824542518445173143887375645277746312427163246542487715431655186723635538458271821666821653732414746156513526678426215846228466741226566535363314582776587542386174642212335326772668875718835313647554456875221474173623673763216658161458671785281257573468781223736442326155375866725763717488438178876683887175733875853663372856744271538834274142634116115881532158763333446751684711271665388582147362313858188475281326552572683288471373383716126125467675521731447273567855324635247126237377133451777538262532642221744362762124762232717527658861121127812771254146334783537584356437834713885311688764187423858358752248287687334212672138472177858641521186571811145827833611253233255751128126882474836266373313677331442128618823816384688638854476187388866824275622652621376782211686588841335563647466515251447217733427527645178823641865665455237236687533131888823866234675365778554476371845747285528553158644586184683484147737176832843826163443522726831773372845636184717212158212814673166261334623168771143134284357265847147118426111762165254257674365741651353538316471183277846841521575677542568726873256852356368484622272385873342557828242847446478383513287423347646662422363621341667656218483867511323226587588326182777334677114245237773312244421357787225533126545134324544655482866658818222542242564687131368452276764653716621744263676673385413757323564733824312335863883111485284521564522128752115464365172286625642714665547457852288356273741115755822243857454638265478433431126265186452883136813257181114212585185611786215565447354354442381866436176463828264165117543662368168744171448133441111851787131537568877688383643323368127521651167155484324554883386887456572588381511848114254473148574233458855165631636243257122178488411886468143616487661573376383818118343327685111467585734133424484135434783361117753412422421861838163528555533828825267426168123116158862234485184571177682211471742648428835134457235655572585561531473133515537441175231458876136142145366535836144354465333685316477564834487187482584186156654812738827357764671481868563387384537135552414448474461287184423546448862777822761774851428767732443881747636561554656658343223126173726651116138452237627816317523785231237511225385667537225666622212131751533752385647235653823743113155767251841272581236287478447453511472246864222814531137177481751468384156237825177172456316847155682156641233746312554851225126686753476266421747161555536745512743152475286877642763876361577753138876285851434562761583551413476334651816855262855512744544887282353454626834228377437778837653588812343835124142484878738312651357452622323684583677361267434255817738862886426485277814744861226881553728167713882753247681378665432663375233523655178425223186635468464176885862441147531545864562427872272766876587121762334772583141335227466185517672474868184488288666524283441278437721386716322348866353457472185744663358687778475776178487683846314316362121834267462472851343134252755656326683246455216847311326467834353683624425646142762861316288385252423532285586341516533728718134246158365482736446666154884713877683376586475121386662162257523878877317542211246873676567421775368288554465456714778445353382434414436561676327413343445744684235575812166368718111155518667772816416464111177647751361814678578836564571345718352345835164883872217233334412136337482184274138358743145473385875634513122182824518773887224473142163432342181556184451777385556433673566373888617724718635847572525832366636287675235755841765584157851523813377866243614376716218614333684683248751721225865256724354583138143187166887444131427748367347242417874561124284235666668288864672461884655672254427674611586662774441715173288312166586523885633744734412487127882552861835468451741851761368768181757747444185648712777524487163147583317313874524617426536138441288278526871343318222771284184173688651118183331343137214223687664515366876878161171861378327151577114462256734813885671527874132728255247782342216365474373373434126637476317187434648137363675677417725423828638813725628876212843485646135568558746177135356527857127477142817558333186432643215616452856123534457436138214284652163258836855452282715423413575343665538724421348271388386541775143563411523254238757487128786487351562674615187842471257637134865117846814573146771863442253518776661366785661145712643824245723476271826488254341212464787148177486558785771214822138474277853318655542778816155867765862756684656776135573748332278465547823455141713161355278463821235834836417488782483127525873816266321861425352211468387572748225757722528244152267616232412384575133355276348436314676734664132332637742276288786365624271558778618453577283742247616684746482158815838425681811742276552861176144246277754552683521243438214877812336262633588747867267887356246175663585554515888676565366672346521738172232721685318546314215536518577386465242743764482478142388826346654375265412447556421646517318575164276487637584732763574824848515534373715632614857216614767678348443324584724211637364741375268211213667141237212817477216683361482455831641446517812783453456565417167638463288851238142187624862647476321315252875751626157142316651853171616481845517273183374526622671642387443611187164463721553472423347653871686253288257361515426617174447166478618322754572123744657652538863814523365728887873124746666624172114131278248813812156438252358531581317233688148352584478312331871822781665341345452511217831688386243276722722137744455325385832312621168716161752314416132231332211823864667343431541241831634852548845862763773737518412475541765655858282268523171822736886133215466885273214118157741416761776384181318288685362152762427283838117135624271674585438552161121121581722746522836561485568371458265847782558343168218335341372868461346452186388866517732736634241862576673172175786566327876312187746221475671338646467763563642222411557783725751464846211135754184126585874528236227884187271345727173667178162471245342236252413717274688562516282723116623423711637784321531156288568286148188138764263386187624261246456456155513181488685137521235847554856524584213768448281871535852154676643123115818738534647244116444614823374475434144415235336842112211518843152366324717487757858736576448454642168526833417368353861425336466264276545886671362567676768215838127778137666611757682478115568267622525452722864314228226443861632881185843681282628382836288862227784377654443562286486626611572367656287233151371625356624663565447626231445233782336665243211411277882115285535435713486463114137834612121541284432671124125185858835237758547172225824383582154543236577532111722461766275172423782158878778757612457132636447377581247725667288342614845675274131625584766646276347442676314664715861844327615331752625843376457624775224174324868786477675437786345556825443446135644278672267817431733334375175328634562458845458587482835218632381624538478632571431274784733538386648654386422431558515675817744575212632161223848488554154814353773613411487742682254531626223117135475172866283124477221888818678726435377667838144852522413141838348544311263777731187745248848568484732514548483152845438121634373333478544544751512224732555573822821872845477144236568432158321513352452666167556374723837538656553455582885621144483356775457713155674544116667274526754161757738364427835213171118675252744376274635584622178288124248131554343676883164263747421842524266666634174351764715356417528645863632246262825886438235877557715168853366227727167641218661542725361314826757364135736483424315833558157614131211784534743343482357321171481227853323463657586738332388115224621127324641116471328428138327476458846472173787425366846867473237687436311571188532885548487366616516747563362282381542251874354665355672115725124645751525551126228456627715364417854662234782574225847337832162736854173453671668354154523621511755831246572327221376347678485477666651115786324413646462111325672426274664112448761226377175551482671257224134672611418714338364213384616776255425533111418113534433851338154263476654362363682114486571153265524846874177344554658477251176685786545553184125242286662675115382815237413424138815547466676363168373183441541232352268433731216235111354165275822184647137127437638741747453152732883485366676546181775377558433588445143411732442228346262712737663246254286247358781274155834767188414784274116546652137327684261267524642742516848122541366483416338364558625861572432438265275866718355783451125258417874488676137131561526374761416265322356151468286244543631467284333258732847853257662141177553186818458523465681164877656418764263728371577727582858721162627212473316331773232326268842111572626543843122314233425325383441278743744242332442384585785136745686676681881785132452637811372722175752522682882216175746565616422184355272862148447187345773224181483661864248244528153316535132241124211581565586413433282452662444752577635754255118184341114357414252882263688716413816674125726848617522856844572748226274736227658227313756272163841268628111843462263445124726278713372282346388515528182271857715643767663817855477176762854485868826778678562728574861253363735426655684327486154552347631573735567716837347858475515138287467674132774625111154322575262824443552611732348125413367575643257218448133833735143378844467683261265774136121325528413717376388376552831343161238246287823353851312465218573312785222574765767487612238746636875213336314557487834114858638827214436737388635587615162634583313723585882862572127524483512728756676843236454226845471742688235813316586237341514258284138153341346685368761532843533633517538563838436113766536851821347782614183123321353122426178213847625785264182137411617326813717641325512122232133781583383571324153673841763146873143862386887464637673726737575551744144741346676251513273812553346617752776225737887866333158378156832776217457253646341645263145684573258685226477272216371654784358344371788537322288737763853175828126282212543453313158141355716477764175316343531415416412158417874158645361381341771482357764228625288773423446582316133775887861155684845355665785214152642215216466767364581237354466582412687335128822861654478572342158328753364822128771885554758555556531766725186563662324658323447782744233682458433321766484685274865347624538568482247473823482574228552812527534458783282581428817423371448863417856373418242282843868574566764561357568483318164127875338613236353271685673588187785184665177671684664832367866613277641755384351486486633126474762216388584181136476726724168416687133558157631135763145558566786556523474827636264578682344133758477382771213836442172723273535238667753871848273477261258172515567134177162556815788415173741854737812365232888247184253213815458715143655522535812176317364821561171123375587174383681236577315878186124664248648874184423848417176775858161884482866427318328786465536531531546441277678217183416831344453427737715541252566873646771773735375156321416251557828356815355553135367167651425874765263468822885487815342378847881516541218415824715848744788287325661682237688236731612251741532215834624288222452518684765488275735784874852717835884146246662324481758715185557214214888353444852146537113337248335724456652757827366777721612234413844371162544332126484234856184355441157317642414721244615112286442543174824235514327655825215745611115183465633152583175686247774441646884256167334648867278133147212852344552271512487873472786573765658124888655752628864741467451876555655527764835582173181532688345826435373372412625682341211712353613311385442371848148756736633861816686847146237612674837611567325682143757437314161533351123525771185176781521634674661447681845841244484525375458783746625368861542181527716318757213461166621375282748636327263144887181733462177723482121716872871646725767133475424672343131724558881473343286644163316376334751646471472317147245543346576132655361465312165886212483752451633738876213476172782612157711434776642168814513758188782637377466711667565633867736423645271124614732254623821468772126332241516858735716265773751832332446213767717885612386233816131142652814475344821716421411671684526626232333674752263221776722863512171813242384512588367856651171745883377174532651376148421478268465751368728844868343342481874531222317886747111812846742441713581772376662168238884668728766725864152725687516215638226763455617724163213623441671553246552631227675862344378146153173788637656574647832126837313367624374725433564336238587338333764283231768786226518465318813275662585268217526776781486147165687726131821641834378488281866283571341133763453581418125172457425426528485717254764763142856685746487414674255642285586352622262721321655772823712457654822637876525351785686576778354323283171318844684223577326358481621574675548667186154856277274352816435655532117678734458347668726531683325532861843445348763724547516718127821512826226284175588821667378742888151372152466636688455251734874881834211117776525457631624273267237327485763284486861837825837627225855218477687371344142332264875347754618568883186162311587555776252387354222526824122761586731456386188271317781213155722465361616116835635512318215486518236866367567282423543261676134124761287152742143864886654465746323138815156726774378645158583831882882253744283676547723653643733837614855274143764646672142875365113167676186831314848748147531712177843347612647243683684426284362735156724578261488667261475573352536865481413453185863672336262431737147175111416163131731447357436832316826654332635424528351684454274746228547717845467883138144463824335781667238735532815815122471714154187516271644511667371228361632612162741872843161867685578328571653747516716664431786424843882554718638315843172767478543887648136818515161134827632285175826821576213776778332664871587655447163754632326318243631341123334287234517345642365588621482631221834155756322244764386313235323176277653142732317617814737438417725546542335523181852141751786567783454674716623764568351881654533574518651187344687373373854364678741423422825152771678671727346282841247348844178756671668283818683367217768847521847874711757783781222155655176167563621666243582618573647255538485754711272431382821272616851765147487513315413684367437781436147746363584241161564177553566871423158178588366321787241587252884368773683336838664477117581651174622887821588256554432771552226588457216863754471571738475686453354775268422568337461375554356253381724436671228856682243338124843612244473111166432523856425726756537875853868318531872221467144616562756128556468237128256656184426258562583246731232723285765864681353163453245735627134676844361382317514534274745245213864881881236657626785338554242245544611378145473262665337443324777814813874133446573883433665651552623511828821245284437762843155736176745643427846471737183388877255816132371774578368667867523845285865663646255772655528131835451546224457774458385447421221355426217224187238238371672483535164754275352642325348826236286461515631823186337728427212571286244417256565865424155773181625111526812564722123437613873621327141682544183285417878273524353153783614111181682586114136558532826877358467237874652764276148317885781487866665787874188361351625262811687432617265361314488467654742581411347154387134464176742883152262786368687252614677133338545427614131865742578644557441464626453555528864782653265521634655477331853545535366644213843328524156113164624756582678663152563847358352781265882628382354477742376828184272437511248362471235458742427842144862885588637421562523655148321777833282632234776135461542164112865241188218356657251825187415353444243733637481724822181517283147437712764371138136315156875356688545373477142151672854547733268121627653267133217884125765773784723354647451441386385572268414583785351163763563383427531542587847571356241517784245885611868734558372112722517887257635628388424147225486327164888433664381218524133567861474748752124254362874374317184738223657867483575471776216572132811776443247183331475153427671831525228234141371184381547363126774386811872176655172742348512878478176774142376572633556574663312875561661567826256518856488426274731564631538844564126433462188243388358472363386418742155234148145677525423527268141845437513414642461828861776657328852423431754186187172625257888872721138625625482356137644433487266238261643377163646516826355148458475526414227278548211883266628553165616784323363881141826387211576127474716714758731723247635774456884442728285747886726381867474648254132627283673834661333762812886816268157174867111144427275464754547411817315622476535823425817133533532437615824264335577244127861184216634223611731357148221824172282535644871564556132153752831126268431728872144747823855147241734674636381282532383385711424187133565754861184883832572571656268425582155135134484342565231844452617574247456852876613333174535616552645177443632468412676731476713864273833883281616835615351831877382352556533513856277721578564864718832384621176412853511534832818562617745523768135372145284452425356117558543545744634751285114538716633283414658122184171371741431153177335782753637646642485434211427856533378622283436663275686617211834267686573725278516735563173132154884347531728665328563731741653222226166148613314737222863834812234581212768766851338525484875164224842185163754487316522516774385476685358212316244555776264561718274766353584265622361574181642355688134478816545363136183264888538113247215528253123432425711731441435342764475757187848181261721833154311655311776266275853842182116484566656785127715317362242317657771553883112878276124814685567145151458351225134713788338452253658464156777357437474363228414646653755143545444883828347254338854216426741873432631332656275738258566342115345565258331825517481147747557758465177527621241148151885727683218467328287312813877674325145162818442131751557826471773454651722723535576318751285373287521317241414537337714781335324846864475583545345736373172573167422566275436637226421627876853662488116326171768221258144435463612288521836161657764348788335354248182881254238163517146646343353833727714833581846727288773775178157818162122623451866755781417371266134815664828666357547575374116771761184553221753326232636244572564361785717841277552485275234856152211671262386712652235748844328431415233337878742661323266318818851531441347888763881277524225277817622442211776243352761883166854685735626712225517475471484746265628381567758161715828535118676345744517348346187276218611348541124241675671345763551487272643422416564132635328264878667537776126641111844245258354881644237716266347343666848762851882125762278814615677833876663768566723117888136264154823681534581278271146726433545136363136443237253737418728673243546848251264858333641333356372315856543665131631152282187722853355678843243822677864163752126117563236247111265662665557638111527711122872867235368832685365127457566355228133235227344542648285612444566436428137538843227146377128543753554454864768257168456864428764128532828114138882417184543471577212164672144181241156116125141821733211362472266832548327822674654641547652875568481132781655887333174728724346746846682764328253136478156147732223783836868842251867533347182821386251554247838183746767647535322826667188558558443776557861568332885461125132872851672245882724671216224724683474522336822771745753271538687843155885254433273468374417464235582787423523711743677787332651361151857811251842376155588321427221775663678443561833588121238657615863317742767857876785568442362565755311483875761228666326124346787828637132365376824253731855284163536386228424215287261333448825867677365317634823437451462333726381676377716868328662617412484128287482338636557471257167226575262577712674185814136541337756161837675758855226676136138814327112531182174666132614377845377244184613877324675745848634337623723858344142561155345375374225464358871455572354754178576185312484488485631556882465324688778128135162211356523628847363352821583286187278741773473377373142212527873382343821265351148853741557446676562761556678741316387423257882518455416772326454658481783372218144254838167418455413452445366237624774351117114344565618833353185161465263143467582632335657534711726341322665274354583625277554385636457581118211326557173517837266718325183163785451365225174417754556155433618825147231644755616122437531562463834757478841167441671444282144814155462122237642616721816617215311823625835668536377168445735353124386876118163661264167641876777876341552558872617172716552241645168234386845765378431276366842544254558224781825537553841524464546617685662434574418451472485848225144617821875482837636845186828238656528213423665444718318166681363874512813266372752387765512337523578761647475227327712462584823371823887733124753314142267338524315315745127268481882774217236227747121282817523378124532824635476875514662283227138243342314613367835263373362131645678726844872642857253278853184652381581648578662256432137136567457173257615678565225427787542476885216677813768856455844458564853141414382245711423626233658722675436823747325836255848874453331764236416787487218663322446666721733531228635215148437362645376168473112631257432445368133637344743758823714556482177157122725818275254134551885111466345137534523784784828518265878364873345764713888377247631388826362612848381375314135465254645143218464813881327686883578851255433178265135254611366624378182525728346826538655683334427427375727757221538412132354466815783172733315155615775677184472822828767268345513657325182538687746423316882447423245421563227561213318888744543564665733612567587528475868181344622354333158775437843515211335663888188314873482873233358443826865572467563812781671825851828575741657421762617775773245787655886168461253824762826831571323528872738442741376245744583334255144333244325323637262637551863276666671278376621114866782485413145411288624453133486235874423386817123652714177136711365564711461848864142228127485182318386481454347422631513117574775312641686786544464432332286334865136765242753881441531428158252335117232467734464587511225187831137856761614156213833142311614623275552323385116165361467234366554218138364532288432448868486122118713316656845785641584541712128168188365521765446265371352261136682685826514254741468154267746223343735586667247844751874438246572435651336717663728723836841355517674664122847321768267733555113876124432685227865473335372788153764774143331127333555774531446471838881733811333355734857117323163858842817612836526673141572487651522413261134453271182746853437258486478473725613478558325535351816545471438615643565584157353341152366371246617634271653187187284821645331616161565232516315674273714447167772787427267765144227518111427815255556441736412438378841883488162237533672183735731772576485158377632861768648837566622432637652582357144575567132464523476728138234848113621228455474788471141164535112433152654218578586312114233643743727674714738644845613725256286547126213243117267648637228518221183418634112437368848631276168768666641627761457327342858635327785456187862174415118215638751615852366751827835436153373268888552387661633533746157475658228732131517566581775186734161153513666436754563541621418572547567742444626173184736763427342168548651723186416588743242576754374826164871677333826887243888884182367753831434622122713768767744176533783735814213151346878634237842826716816484385386675625614558342638331135135332186238718335236185134617367516413136874563185315867345773213841341518655832557145578734144138138251125327541815431423527127581525584783316417652768137535385844264323551862646424186728415615188221446233463275572863564131346255361584536825133336271644474156581316336127582521715761814371615736165764583422212655342741721851366851371377414348764157685457485277375811426741737718345872731115713858682376335723456145884855245117167883285747673454548115676886761356573726682684654665881648886177343574321271523175344315875273113332461247711175661667355448756751666677237843468143747383835577644828713383541111182581571217568667628547557538345281745735383236184837471314814421412875211583718352786827818112227426514221511216142744312778682418721742868178351582522361336143124618882868552661738635354538831417864121742868823545177541481237884383846234282146324764871683248565538252237148671724872157162885445336221632665357416327124711111611412262315741342868661736745565676583481871565663316388648266532252281285342775715411442467777854764858153317778135738843481876331323234224168868258213427216586638527146243711622318552447787236787582823313142363884115545367846766664684115882786856417815416143376745823218845647175845573787185736187314818464378444182367743186685286683616685338615548171378125344511846672815533157652451332555123664142332572857671533535577758186516338284478825567886245881411726421135544282655115736825666414253256776886723484866634317558664156314181748177145315715631587868311765541424327555115668485757774532286718247151666814443138574137243883426883556326767736375477268468477736188422767517316742368363776551338262454865686141864867755511644362563621286866662137423861114217852884628366633736574547628738582382658646121181625765536126636562414447158765586674334143326878726222186668288564184268586782748566336111688356733228768245878883336816842574853244171812186156345133386255656837446213328574285458785572643343247464755721818525181617733763254517858237334345452527162428432547344837666167373235847248748514485878323685433743814524566133577633354271733763633782215527732665886125155112343327217655535462832331743158853252862444164211454277838234725731887138515825657146438323482865162844752123375251713414341546621774836247446152187148443584853811113484237518676571234241643514662621631286735453263284327545513344114188472824837853371215325555566636544433785572526613235387822671145155344663472742265411883137788364765837856232314452517516444371427128724233424565686154758253385713352374673788165431423837337464761887132372875228861251158413841546128326262684376868645682646317821512135284328176651228454273144615474111232281762854585774145173221631641526211465532116267775217866187758266224466344162715483778275831647335778113578336835224648312363716441357313245888577548541444724138625253544284727372283846375455124345365675624517437688176387811312437163641152582431318648435236176874724881146351877413123645851515656153236822576424425656847578242556766224143655787333124742365571734443827853433765764227152311183414763558563756831322883124628635713235172126326325215573555527715624283464763285472531855264144323748653718185234484588666277668611673858858172582857424718563283821226768674884755264644257476438526781465455816223556641457717638128123365755444461231276623156164646863545258615385171313628325375173114526247543111242213182236735133265776516577682577877687447627834218436274551417366713243124727887547256672428323553874876434734344161614556255522468854216645667274823144461872228675662183668454512415852821738663848628872586124252526677466311351332286142623715854533166466417286476672828811585128183636843463261745536537554225631654325367584348718257173462612666766113738863423445713716166214557238213115123354514585218826158842558436647841361421616265571544356381562435232871812338743563118785552762344237388427163838318886428382486871616328283575226773424328564823158357366583711548481778415884766413386622888124858614615812144481686167325233388335766833147274323885577617814534171763644267556525264631281541557682666688525273451781511332486823151626377765228867685338534823337861514452143535455187521668183556226662735785382517825183658165687851214381588318117374548243772564645642681632387285521242528343764444574353181775447122374717682715224345422168678482675666213473112114345542461125243776216414471681122345278842462411127337776522381484128163725626488733616825252782363231267646446828856358831121313386811444274453348661528337337354814855131265465138152675474818456422882118223726632566624174621438587458176428257115676284353182121836442288615563146432557734843686112786764132813645787332482632843638475574674815282625732154858888786352778845465634776882144148528321458144657781365532746811767458515576843332425675835573365222248686457487316474864283426645758488782531857615768284216861423437117222827445832517137472131343713682441285454615465824123126114833277763318435673232543823378473351744244177653645786754153151185278581668241274762123535411411687327355875884136317327764822851687124377774853244166543812286736635763326662186468621171281848323755783421378683654633458414412375551862611668813145186617614843185158838653321534283758331774751866738482733785872737757713877142424851211446634827411881275758587654761875558621532536322784421375361427851833676486277134475174677326272374347684363733247455483822541647778224347231512346465457518644178517643462273324661312638684768331111823282133215883766713241174742418788168876335528886361344485246126683357877218285423554653277656385326615572212611653287426877566688435684512772744133672868772552165631251835276658124211655862777817184773117633334722446114778341228257254887237315521832176827888425382482222118532321127418268227417256144243165264875623416874722243546627834226514773773477521642882654124235855341377386247718167811128438625325324743156844512162261773641338731812324675136838715771751854516314485728483685673832814116224741358417447776141184855462674135226667527856536436723835261363455288511483125455717616873816828187154681663365846476172148732622223353425423176625181264254185763218447888757335412587818477155163876633328148385424812828475878246511518218618321617866814261154722432828881528551146614721786344177351845616537683861127287787854488443521878718662664281635532836732783577457134362386866585378633472411246156444373846655871721258418181412226541514241334423215213623463341185715886531648858531777184138285346535354837881711547354736416531781475874464221265617251751121215214467861872118546457114723431122134581688855471185886147387366175585654256765771331642131534847467183125782168168738613466757612462773337285162622683645427857783837821646321173858738447313777142434264855834836528438326314265874312414867437175624226814827226526456831463741468882642111428177781253385278383377123873132548474411386821541845413312262335334441461133884847175426348478663623736841881342751468213726671648182743832566758516473455638761768641813156412467113115374232877448438712453388766273362782848783343333447444831514842737133862813282516851348161535424274172837354565737568546266417786361164586113356618531846574148365438557755242422142135472755777187844336512628523683847233361241832134682753472752725535763846115218377231578332574744336281552248674557663313432415844233378263636283821827252162223343642257237513415556878243334368688472781611151266561272475827446485571611416483751568474563486283321447274714746861417862267556775581318748831576237681815431725461417153642761584158721833111247355261112384423475435127177268515178758585183117316725284612638714381325524532423165684732652513147671312452584861416488353473457233253487324617418124656665817436322537158235846428851626874373125777344764424165831167425754756311735828326424877644573738222518353541443272341615751238126845771735846832165736822582514355743536772444547287478345515517243212776681742532361762427645421431375844636845148735833467875828627878447643256286656183451628357745671524546826687357361132166747874115268462786588136136818341248545133675554324873573843467572113676551716314318337577735551466784256247535632552121868134741581113684244363538447434143577633418438528546861514323674632465463476337848642388486655788812257486785271612811548372762333544154643822888271744431323225136543873865635644684747445664376687185448523174224285841273266846442646617873484471571357575848271151677245142588524348154357873574628514717834855878555186545418847887845738274442317513337465431376671338244558481227241684234723481281622246283874317433523815322182661784561737264564826376474344511285343373768885384173637762273262783727655544771878827682716783637115532186232826477344281778643428168847247436174578885848561423116187522322125564231381347456666143881633582228337856157714247852711848815126616418214655178731627322813574855563441825128668742548746183277414755716125688638444137483677235667857526783722736245675634544662456325675154746537153625745223338667215362453712524443584272514232157355481441358611138556474887611482148153778325487121457744311851221635671222722323864628118712784864512238412381283632213773168553573715422512336668751137145557725766314235155777763436317454823558756878572161513843343255243568125628367251772266166173366671382433136847136718523332235864651714773267137324836336248612767727782218178466861351874512678566146364732378162787755363212134788123463281163858731137344527666664577814571575525688134253828345761521875648852572451473664515743564238783385514318157482427153828112677623334632346142881666834514378257272222356637827844244354782774552378512774572146237564841884318126167826372245855612765752388861646534738153248678736128215282236576668535856432425783421886278483656678845377485635673678453863115671644268677817166141843316217465416588423724681882155143663576726466178366736833617813246284743246545177452122177845851266621114458836678556352726317135664735367221558214816777475384561541737226342758816374188377611435415727222464335151165651532634741183722628152227781466575315456455414365877155442287423621825568778273766243757873482353414667543231467287264837866168311446357561277663586848743258256781226141758233277743774685361656775155782362585465324748874648384555242868284312848874868141845182372575154585345343426827872257385213615234368761712561834148548755723385732378455373865446311885434764444342774477665861517663716853154478234367212788525843881585587683375373711156567762127147363648834263224275733325287162758738482715233252615643253565422182831772181425556621113161372577347336116245451733428723451665261181671151266321262211552385812867842627642433255143165884471347118861611524846412477167472573153846674646736547455368614533837888557182372143478165613763153522437816744115148813264542424735845735128571754442735241188463567217725441185236361884681617532353682383412121727473541671434235112312252328157815851884637627334255336168642587671471718371164575128783367276152751741464572581212157154737218475238766882251267141752885675684366851521335257533624764348778716287321424515467436863864822418125523335675882442635687148885764836356884254185764114727614352451273742837133526627285643138871855316288563531318775428688377144534341267121227682384833837632774375152734555882226221513345121225721684725122334152668164363164522388431642742716141616141316438624534285445585866137747848372721733353413132325138768624547431471415633635564163528572816416124152384357761747188153313651832147347468816887417178376417412612215842883388115564512818728858161531481726384852467238217653656378138266516888112885512466713417126833351156556425872225556766274844878544366628824783445682826467733777774523214571473852741554136312688721237342481672533388682888165656466311216342214584421325882534377864685376483813125644338253577335414547357545516777262783241544172242837787858614422261572333717628823368262782241166771821852634672825537626812814573644736668147885158726564462488451511267242617314752278633747474231354248118886873761431664578588382715463357526783543676744461468545773674546775246275735837864788144318468227438614353746631278781737671652152133167323876165612684568231413516821452625828248378413823164432773424253451335834561823738838166815182343443545688652181671586875554485688133388264434412437833458584132814733655688716658447448385465525518532261642324827353858586127374284112746574146543747484265611188586432286286842785342628875651326131848348131778411243711346465148711634384377887518786581884268148728845841688356232551551167558281652255235721181346167662284114278311581632442466774327536835843541565348474587843864676141382255878513227277138333362142662863257165176711364364512313271136447825428616543131141376212374525264675352813365341175463581627835363585782685381884231456278878272537674823143217537648857556432354228571882818432355357218423557631385154742681873267876784226688488882173732525783377634216763722467573735574733267632123688647575888348553646651484686543216852222752377613465424554714232586675521744614812421545536125262445866642728876175741381652244185652176255753432112642714517664348147431875885185236114434317687318653726415872114763275323758651632518311764671127146344536582224172163628773885756187546763155224336368846843278757318883364746845672233824318775372867265626872545738727827763111384172313811162614373731527577323422523514326256272455584123714253874335334825331556672171421486381781184155675637115878571631136176275251475638535684358482252538723138654226746473417314286341822222783222856261411822481182674713653171733551262368268348114564531484276588525322335238631153213748837674333761684873816578815356251677622565612755156475363864651675223175523488864312515487831564176144662812817814755382774516122686764165752342634333467535384253788365447348527616624143668155342334575828731687131244517473524417735474464211113626734547565113755184417574554723216236883581745121232878435524881213862837868171283357851228267355613582158856673575442428846468148155261726271245648782755213163668352414738843124161226316324357871232571435444846525255553578167276814127222313634256713166174458151522114242215676167362145247151778171111826255852445216521383472348826875311852783174633448746837831578225822757266516441484747336155546285862774114625332415735542182477675721822158682443183543411324273634423228257488457327435467876728821348254661266615447152718276148768675747565285446322468173476133867258163352886384232188144716714585563788655374487564564524382621336376842446875448755324623885587376566422111351286425757743363716234566664615785233788361667557336683136414853143422418476338623487481216558863822233141768612557187177541487686718173756477518315773233343118655234215541362818476466781717634337325861116764778236566343274373114262247535663643385587612181367482525444617662867236854254756686754867435782645464721813187724466853352846712825464264431723328672827667444343558863113161183856624282513134176144842227324366844468388611618478574665213231782818734555533171835168278567543713456713123386158353266783354514846386585585256783176425746216367113438877261748754185541826351722221185712856587514237721233312224233478532851617281648652652774763616661552383177142875747675732113746558675674587452513361841656611126181668174471646144787761217318528342216654385118444882812682651374265437537734338787877727658644726831788368618377643475826577631334168886833557338644815351283822838885248482831765235667643645714488824434624716886138764734374321322464486764268872534817113215336161228554546584344711327687787582228772246863167157256575364771518544468622887411322548243321477182435167264614612556541433566373233738323671621843653416651157376536225451438283157488132187522842321755465344356256665745384554376438162566618482754447534881124666331554885444326737582186785247632454814427547221578654411881424558646658563855611273671448571616337814537823274318347357223844644144286845261357278565183357472783217568176767586514128354788647825472456634583722223724881824476122226886143134212254628672725237321675378578866773744773632344672346844518463752132276121215348271775283718282852776544535661675438128381878664558261384761585147648645311247388873813355175256631382578563863556823218773818532366225173448382588861528815738663481584417187854727868456611366562587644524115184741773143148485625276617678387647476677882817268444112575172455263537384254866562543487156217635675474518863321571578482112542168574634682538654623322277448612356671746811536165366185516276467146737585357622255532773411614578358174326778151371568765543111616222643486881677744332556753834212473372646625588688544781278561764167243821546265136426215768416721314563673861568387817244682148161413737134772771567352427522525335578172566411267118817668487127546152817554671147637465175574417124212663182762632577645811341722243165442238388523157347448422313516712132562478485225856567715633424574616425164376542218655238236642628332814333874782333852575711167867658283151236331533446133686554431316322131634453314117446783283383525425468514545112725282272472434673388841311517755142258166711874264257754522156627743716553352475751316765861313273231756243886478218573245775752674721534434747638383564758435668752465864845477176114585445662643851144518624432738748458533764251732378722361114185582554887474267383342434545622262883158816123728743865486554732537544414213252246118417161211453274624714731111427127882528522548162123263833142744331142114364742141146331334577667678851844437218363663383711364648584388687428126873377528216576516583253162568233261123813337174413678573441331616724174116872327356321322844122651737845683584136624756841148372365655382222621178422175846445647711111322158767725884278833256544625654531526857223511118175446578151461187784273484211275788243127632742526684544832656286717178558783822272343715672382648146617577831224355313861666481312162518418172273714151734244161245485142618437768244384627722715155525686635223146236365114384566128654184622873315688218285652131562862148317585665643563214116134387187178845222643816876374657646553362825433214261758554525358675877161361251667641265324751787885767485477244678612734326356725487817113836352872262388882563778668171361766825712637637785263218726551586775136288653417182872558814131428127317371287667453625623775484385283637717341186354583737376773163182733356363667724684517843245455318585838262611777787382513224354371731326557632472211137347478563626648414774122318123523867724255831431525584785483615117586162334864676346685741227387713461683756335556885171787584474622457784277641881517274111147476637574183423523541825185186445174588867816335378142556255766161281183871373717423237758416661686615662658646544767328856233388548263817878613755576548267254224742613287127118627473165752363724184821783218232645548234852311418767513734416542712674276176137671231571522845173357445221733267341418167357536438243455414487323138542134744454347341781811788668638833124526821724811667327374253716174233832874132288831328611777155575537782285474864865515271685811463248435533136483614887856257282272182655634448416716658874481575484636288313341877323227327373787852277167188756548861688286146888116571888732575248775654155454455674768323452665341725832566818576131653867744165126628763161885657324571162165547211744656756372271218813228661267713275866262471561267448123245836725167784848666358284115176345833231161532417638658126382625885215373436543173144623328172636754372382542428721777268273816687786175736877526211137513511235624478633186548268338778615688367472444324164156671235286445363776872228536887323445522255458437286117136386137338582776323363653351723548727352321457286271455786478781473225453188864683638865628565314583237223117543573268317222453777758561562882326538258148784147534541564361582222784758344625277638376478245126286643266618734666362871812218885261144712482434231188245866853548244382516446768577553658142365881826146472734788314376871623322811672815277636527625314173361337353253647567321752477475478513115421485352141735831475683641512124251445226386558663743713864165256287421226768416651832824187224831778556312347623773545642563633476343178264112876312473548478427152136121471345165724144682634415415616622755358587512676726736134512864128321367177753531874683754152423121716575167481275515882884113112152516728527343854528315475352436344123845465437548547175277431725234588612854765721287416325187526132518711877538515155374543814667585542586155666238433777277222662882222423171468473651445836253853231172456114112374135587264235127123357655766854153518186418122533825452834586613631548256754673863217862487125877513287871347612637475334282651527517882886434584113542657783522463237184733853363274458715757662844454584888272216513288772347413827867363842268881776321545483642238635126348787833264238465485575448652342331771157571224361577233254855244833117823612614663282267664775374285644114345428638815463457155572652123224455484375588442347555337531722866415511728761652516745388347434742818151637364432765482183716877145111271577686874281458648114727378353121786541568665386716845643245257843584621374863224825478464188471418877622168482453867512171635646332168366872176143411577347522351157151344543827855873427261362164841534155147531787231654651564124247324734357343756428854577686261653613238531812351326661246728545825836788556788821254345824878141631878532371767571674375631341374477112788573412478714144767863366736526571522628366331723311586266538256874113148648322647464257712484783364364388837168525187748685771176211211281567438638474153546325135123743856618678687681521343543725185882557283133582523657867846426512634354563723172116761355866334167583656135818121767484161358466785752462152864621556533325368847534346423626274811558572714615535851312578764354871815676754416163781515552674277837116758785468417464581755748682287544423136867461538272432351576482748713166761531524356273386616541577785448117138562375372152766424381415325737754578224186363574611622328718444518576885578836114265814854784345751525273633313726824378464855141153537817347376875324822114524321354114415834382881452258212611632713248713247147143834755682354444436367272153454413788137251661763461885761613124411113485437525532327754532844351357287611538682581476516481772567384232245122846581841571524447874356267346112751741885524637522127432233848672666433551834486317617731782651787236153726826253674464213348484714571833322546814127535468167525861633625778446557167522178531284234285674485146524433341311186261581264363745516526542342816634373166553886154673436227128777376388844384615141378662263127516235738725855538334261474455225718878567258672615182616143354812518252564513741846276481773873181526761232175775451116275143413561714424382778125233717322332357185446864622683863721528658541148551854383168126418127883724525572364663675587284783553514653361484831714461758835257515662555612652743875862822246664286453534716841845518352575843333137887134688771316743867552841744313115275721827618585356221355686163371563334154821453264866445717236851273358346357642738443683263865643847568715645828731681617161582485813851134686665742423775815251647613713272525256314383541632666234214488221783184488441414641134442551548328678137642758721773883147762681658237883734326362651522488337484874463323652187224873182835432528833854331135826112371273482554246118532312413271867583542754245555475366424382375245415377768371828445154283332722158263648564436337511838757811773468613336765158511563145813856718768668445657565323234432387174657334238452327816731848177443764616186613811488148233286642828375664834884681512474461234376872425775864143751867124184588773684243745726782755654733743687136231262743428364536866351386611383111241553141518886587577354483468484515521341836273142746253288215236784778562886281342667684362485144288746833558444276613648775458478451721242646132413766352883512153212773154436576854286152423237215184388683452724214566717186524173528248252333428566254623472458767372786881842768581553861123658484661348131273782855842618865521874877576365625576171747715354152426842664786142655531327514175827512344784288331574673411577166584637773363865138254112728536882422868262458632317474556576772631777412624547474773348667313275333768612223856145336883381527621664634456618413813283488552828683253264835463431756265171841528482727266374333825687873636675334463786585677171246134366643365418675314468347868338635268485533557158216286553483462848577847254635245435277286138383322622287261752312526313626553845676563378834731678378642863724887342538588572656654375137321428848168628544765416434634445444844541528173526156411831374528678243862475437118746481487826485366433561711527267714854323653755487425283822687278635666138375532433658656776611563746456854474387223285474714467412253415523842664641254245542183874322474438363436423734158364353442378788375525336471783378774628724488337581281737567715743822463428422377886141587344588577485443385278148728465361626342271475681815871422367552383134222856285376435173371645875874366267876562775183471132678763361573437755811518717521747382687343353137284242283621452881225627543842467552667818642881668341164825727673741316877266744765737831522376631452726534324457812411422356888612571243332474235845174361535583422412532365756341547145614834333473232465141642613264331733856252275428881655572787338322364681865227663744883643343242378424572181457717354338528543647578636812854485276616268223456372755223427823142413285114151748681813211563866713183218312453822622888155828586655572523635874755122676374214868287446775844326585664182578846852316644245337687224238177832274475155246741365147161164567783332413184347861545353136473857242888355681186217744616354616222876723478184765355685837157766865323667366721842572741556131486625158772254825261344166648444723478334525517732433838268714385331734276514376138373368346446666758744255551368817284735438716478368775842144134424553266246572177163234137487848814382663122386788772255682456123252885387136663647864113325526548417134836361334172587571612463128423873268287666583447178835887746281177513431758151757356846386663662537742533587344176736266814377482272812332252261551374534522452245413585472618351455414866778584732152688426152254312757543262642456573235747623121286626833757868337618283851833827256826882688427858764636771177514385885731338724687731518573144531185364467446773665436852363326185288636231476623323527421628425644563756682363554573324183684235588844214336358716615222572654778734351353675626187375481556642684621722788427176525252777258377755484578227886344738674488887471581157536436167126774281251685654625278728175584233358174743164143651218267433516718426717712375547444322631672133162453811135361661158732868148146358218871413168242635877563464258676634364347237417686243456463886631164188572483227732734471676148145522178328236171854382831631515724132631251857151156348817138226681554578672457253754422325714573338684338474856748281478531154477124446182577868447573545247656258364178714351215531872266847331866831826443264326172385655458445747811612825127432336783445858434324155824423723125454665251713812366537566725686338465842538835738543116658837321356827762634814857835666255187731182865218311363222347864531123622875215183735614848716831887866735442622882238538261468468823515246327274357377315847851553774488687512117715683786643715253657236177255546265451735863487321243827333886271486575268268512633174876343667726164357335782562745384678552883666758253388555715485534475572527851875725777127637742376512633238226465511418842626522268312324213551277228718842388113813235356677355144524574364375572565186435756462733856474523636881461273365163222276835373344138146661666362254162421625156126181364481287163446378452824235734866176263566511388831783223713266564842217865555458245536513786448544632224746382873235452481142156231828114618567777173833643828588351357334371634413413364655272627414816332185425452458722111347155145478545653315512281317132817578123647723711461571377171837455365685147438162285833637482236568618311623231426818848787877284231657681128657458121518853673756888667431163775347417861337371868413322826884515842437437856821762753121621637312542151846235382164136185738568678575561851485387682167552114843561284771588635562467823131582425534872182561186881683653567621261635584357434724878732775526341368778824433875861523386837558352381287317355728477424116837451658335236668211757586816266628674424814261151233653321616365243372348665647468744762712248631626541474128563416871232152881763424268642284545881674775645422651666617433774161237272716147261844365127283516676114351152548241646255632888526234236848254175148432682742661441564334248343424237383547421125177471854585814324621644275285668526521665326427786762346563111152471113614846782275378115822174882818241431671818433413612868355253146641727814424465713858685867247488462838472884174341865238642281117356762852436531324517567354364656433684817261368425248644161243763133284826511257743626281812857227547535853875751788225273467181811361866334726555267662818414465488282874432187662237888836841551465263666552487617467127422566574767245486315763678152513636142228883118646373227124371321124233173154534328241128146765836356332686655754774746726214454688388258482176231612854645677256683668227183425554758724882714173426318715754168411188188835441377167628381687315412421871525258166538424281122238367156277661666126538145724586233846321256223582841822158428733284435512281255121618874833863883815553342134535312861138376673563785186888428855743845744267482467656843855446137878534551156364618411455817376273185557221824174581636826322131348552374345644758733572823185781742841341571566526765624888567223414118757871332875244513426837845425357645445641752262274874465813518831274644421613531877132233548413137217656377631477857271182183115733684332762716387125635884712344371671556387834485164221467563686464571826375634817136133751788443862551858427578477187144223734186858814456312718625588517572851643634745276456485625363282886637662755361623428681724283887337114878223772174518356663638122883376858813177245162514767776835831686284262875253374766212764454284418736171616635667157245357766777756462582822485782666887641428814317434326532126354541174733678771384633345454251275243323257213832384688842324142532554546166351451578568467773585727863636432477116621357245485646241223756861441768714228735351674653634886641375355774334731484531868168634538155231668622337487144146176181865176728676678227538641314624361875234768536418168833534162418264476864473231787757726724634221638182441431521153714573822131184684517641368162412456327371486756824345142155256818617436235877376617723184261867784517822471114332221171214311656277861777575878761865586874648433231878684883738533277573554256576534264558543452361785146453216731847164624831754811414226134777548846117562354624452743513651414465662588422453884245163437275282758174535376336426534736642266828527847242862378838123456231833571174765668456426435631143213452456513236673334164286312377334436754744412642814884572421318448185268528751517186225463184815814287155681656153745178358425576183487866618422755161855567222582737521872838665267831584816755147766835674257445837154424616816653416541166811164565877128716542553723878246313366832343374818654682881522212588887137426466148218464222338558127826635142443158565144877888781358687213124326373557842312157743617388581878577588881282856731677513252726732281286313118353126746268846381428314535883435636178785356855614584154313356785384243365831267686168211415785385715638383116776153164123382481567246145146625331686765151881657538243726245774424766342147273583227465751335373451154834622672151483148638264516372665714672583538513266253271714647887466222542517872267273361314214141338273411857275613886136223524326232242334243668566838347365667857172811372218243733524342814361174832638851544784213346484532216686761422266323313537333483313848372334547831267231534868211265211413423813181713552528545638745545754755222767724873836261721462626262454547428524763246837532688466317432341857812386678417377372573482485472347467633343146532681546775174877672552783666428655315151358346222847674851318834432116743664153314773347875837177258848873187188474618513186582176177545821721467444851336556662136581673732537848445575231467671886165855665561265378718525441248816157635757865414352721422142688112732126561716312171782813672547632718235313641818557715678734363131143344614662226667735675723232786222558675887631414648227216486715831785182754854138657447177434824661278332674756327228683235334682715414238612328782662145577124752112284253341331253364483851423323447524427527534526163848541867778637148582121463736721372368726686267236835147881678317511178337144436236382287255253514328247628252532361271862257565513584862844717581675368254622278485852716284841677862887325231745312172412762746344488281722756473282438265455646285665453587813222124848554735414542183128518787881151865145652126782283248738585287864566717168657444758717323543846461641524148884436873315631121324355816322877422668116678347171565263565368266844425248644458276458616743731522668271724366741476157712774713668554532735111257731317456614561582525787318822464582327647782421663818718317442562413246626437282288131661275347555448217521146856838583611742656311877418268862524271412382437724778321237771188224235121361612788737426365165553173545337368558237575373446812865221643541483865481125325522768386332472477644883752884222488324136832646572841826672283187587156328274732886684862747714663435166675255325874446332712745257332118222653327633133773664248673773464546567187182345612286762145372416268648155286767646131284733161347373778114657182712431878853177576435443765375432372878844848584717827255474537735531584654511172473368867837466636675616767743681673241843476248764845677138484453776746755436113264682215142254117458244356834141411377452264574426387438112516213882634552875274424234234454672161881443211488737821141445521636483437755814454316826622361311548883345432544835333685878678641386381818764236456623867815546563818861513535867315518188313166824527537887282833453458181154726874687284814763117121535237661857184413861846314166738457275242641187141741132518778422316881621486881842144865558417288757531641336186712355412127844788327172772142732624265146437874776381537718582424746321652248687334154715752683164463547621376775772337564314367414635257373526211311254374372133215427225164474575566182231483628862641826462571117474586335514567448482734883654457477111437871684281464761712744663474226662716836134226756147474422711274154743426534221572488847788563865828832572663332262132521237432188673416631563646526674767376145111327651614678312875423811624833132786567843448616815216765137837166421772782622428688473845435313642436215467275255751234467868788612373586112686243222655218687635854763171245531742673354221683245583516587241832165182521376561786756525318188255462373417135724486614814511583645863771373432536317717858567818465454548857122423288852475866463175231683555686513264872545282216671328532161427415711154534451225816461546655483673655225231317786241714236776622677855478266623316383413757531454351885478641842646657643562527143788416377173713548323261187518888585881785646686688872682442117823212257683153787356522333218852368551135318347763482322542547342867867367213575584436642564814282655443838845514644477385382777618221473177585158264658755143461472481415764346851123818478425424634472838164431538788344376838157263335347377111846571868367731644876261815676437285753475858188474762858213416285776725427874582167721337678387445224425821368246628453226126561252264453556561213744666445612724611753617352142324781285666555675331617213113845381471623375413146663574455746165161632166516661326632677252757135215372148313414147112784871451667366237665163246544633277883866458168445118324545825884773646373885846214233256758827383337636532723534824831572274671873456178356311662122171388636485646824511347812214178178827357587388421444884272276275646548888674626636136214133747322666533287666331511282312276167811233243816686456443343466631482224335385832567877268123743552473463883556711267672358544761115142442764115177523347388645652256267114412871482636553487538752244845173247786656878278613285418861138421218562766754472611847581514115223745638314412573333688716777416342821717247163816842828367264818681767253136334627576423311761436273855857551838475284234761811327621216633782446826345423571513142228482347583855558217426274554336773626533835541167871387321744488666131431545627412412838661271726431238783135763178878856144126435425415317853737776648348427757468168316712671428184585233126723621322887753885561888128472758187721675236576631788417425287266126652264883353412118757163756557733826425427655536262575831555145443142373225664852215687323526237282331318745347258685233585864444574375256451333718383627772326471427814556341637624555414235734873641762216775324668378388848137168126234422641177112542515415767668158417263347658878635846181837838831654648571147677267574546835887631612228371757342185521724428843528747436477712877511272371244583176876585476345162171815538648833322147542265447526377447418172411214665758153872611224552558451447521683517586723445587621336162773528748684836877134575517272156827782427877543153462638426328671256165858473775222882713282128742147381347323782677734744853716617444537155382351113474568725276837341715145247848256621252776268861642823446832724242867225737482253344254847685171866657717327533733857418748426411265655557817341312243686538868553284411811382322283562814458821311721412487388226533683835487587266366173723544287236576725544157674153312555641451778257622786262644645887132747835447276426748624154214623787251482225827253222286574642887724423642781616585612148411668546688823768731556637787447575415262731216756573342632542181516733625614151717682562625525546886354572886834314551478647368557848117857526647168724775367281655332226545311613372435851646662884163436836654188733474424182871154464166488857847753285661568261676188415382753337523751713636415771722127313243565847628868316551543425743226278474243718416152213224415677115141161426866532758747347526383567572373168633575565451828215562188224222754728142655446153526625314732877165661812415612638417618147213628843548641377151161537433823842786756637726538315465774133437377858383132454182387775378688226577567472686263382748154674553227664428655132367423134583628516461528445858742554563872841471227368874445326573546814786714772614283613845654874241676136425343738668161283357672421233562653515568243762787533675457371446467622615847724676852154782843348717845288162111782517853724157635288618673873633571343324676556766444327363635681675576145467142445773326646823847215461613174338414742266867233618256876382324862423341183573443464123413642245157377454413657811463424375551155551865413667434242474868422184321816526781314734147215615722323821632827625718278158621218181358873752623214737613445132137754728614736254383644177381251643774754244531136481414881673744123485576148722452268355133316615622271752433645522224626824354886112753583836275154436885326465673737777141455832441638757565741223111475227326232261753671234743211857131868372417558824616181467451863821824662287755326882635437424773475827244585227463345755617643651857438787465823246412867413678462872766364753244784656567532245443588823416621166112734287118628648336677316371687541838736465438853626214412277837631361174526278417688716824473245768547815373872651231887313376831585352858847621411186876222514331556327363741571258747236353475512748666827642656317782433767487372845617167814612582311284114782583228536424455664465481557816766747687416442878173382154754417772557157618764473662567611121587623538488146471624546417471436218222137632366118168761317122617631411364467737442328126824682524361457462244678587481677224445578574187773357816326172861874432156236114316754585711654642152836646153254531876133285551763865311562886416112415785321184852557225222538218456886187714386223812221138858582357667457544262238351324875842677541352613731613544243332786131475261117446117158273413252752868152768564174886765713787671747424617534631225562128318744838567517332582564627885583476846414851658518633782251717625467277261716764436673484541122335144427467154255433448718862884184543881762357487442338385145155566462445331261574714683864478686848263783771547175222124533558754476723267732316425236346363317353142328263858367851385827248675645844831783438371328472363236362862334121333857858586683873327414316424517718564224561534855663711152213641566185447261556781731842668131687183515472414754746587434344311728146645453818888314147242648326336652864354723651252845771412111473646663242276218464657688561314347822783811687335386235148746866625514765584324851548724488152784842427637766723573535661246475478687452814676642854227342841185655167767313133235317237178787351434227147821848441221687264161723244815487177682471448866441472415562767573123261813818341357465678765321633828176364867681213432377526678847525257624241767217486254821574836428847153725533173664753771368672673158431651867884376655658327152366866543516183231783135824335568325166133683813658653324344816887255765285283537511488534831326233778868145317725832845814633356381254657355743145286787822253573654131826162462182737228142415332612451167721185338157668765484235161247835115617211633521626248353437837287657245318526658861862375634553825438136587824427464358783857226756438144543881317411441632253815548541661856156566267312437424168581357321183348666557661218673512384135732136818352187716361682737811271343643234444874527377136774882583756776876145484827437225562432773137436231446745345133356588334616558748573864218672616433153581213757776278586231162621626673763158537722447226224185234517772756476754117581313677862827786838376858161728516445332238175347875332345384845686871661664268623356276426716143786464216573545541255566254535765527537356662823615262546616254475345766484356527611855685177425615788518112458781883437636465613887728488532572241141823336457644535264184813686512568858614168487112472572747187852516463546486867176231162877444282515858658142728213871275878165222676318811258241437113616523782835366854166557581462638456436688383577652116443471328835675111111335756864317623325375448841121611886558675514843131372363341122611336811532675858676711715863741872242881258424372638378776757825116885177826825845773737218817274841217516368453142174462433727367378846543588588354711811882337233274547756422154585355822122514888844736237141265657856265435574575834317178785132526241648884422662188866843126865645321376687555465333674685357823512248868432147241465542646514725648383243116731547288833683135618335528526261781576471448753381721348887562351378183237721218787587487721146144653633424285772531145424584267283263475784163282883232581866756773222666744254118838145243785243162888673164232722736317354767742837483668857736876527114456837182737165662214818531137268863432572458882713863735517422164314263168834215157846517818715813485383843433535431256824482158887533724237277737444215352426423773735314723655166483687546848383543743232154362877826737227727243127486368715161562312634516181887414132172387314242425543247747374657753642448563472882876666482537111345256228256333222777284157825558674353375674186342767378132256131366264632212445628444814138413585728853774834255756754264262132473365553612787441635247635744577575116467324658682826445571644562778573114545424665816535216353247152453424155578746568671173186762174125432676232747713471686831718377871624136362648653422722868486242774383671422477488667551551872268565434573787536253674731787515227662736165885517576156185842263511788466625843481155362533621176123668317562727584827172448226888263768523664231628433344256845438415354682722444454677211452164511116543382546547826413445618666774288515655821763223264785662146565175547715853765777236668564286715135726477765841458685648757518617381617571644346326757731351282621751265335668262453286337326185736524644377384118335525124738123644215544338781331553162422423484714128427157787724636878181135472884483318255837817465332845543617757745751821677424614817128158542485667466214823154512173878531748863765482651865122381384824554252215721676648747646432773845431347788826381243873625514885147761528577813636834256413558231823675233821343843134342317322873347566538654624834137267656724755267882527578138447834786448581124523762528288611583638344754865884361481818545385255158545587786271888656321718432546451871455744714778117158652723455223235421817145853434311272284423416157754558721754354448238666127423267321767854476427442878656585572311187783887517443517173482841246715682686517327238543843743737518745561382173563434788764726234214362361265283546182868111334442848742855244417766131631643774164557614328635222572255835364447483331437852271488324723121554361314313718123623545887315156454274675552534583857124512113728246365437651118852463773881363356674737553321326161148124217413767326743664766171645553164774766668143316453226282453331675267884415613157341631532862845222177225655167452235777172845424322714371843788613287662865264516757872545884852842375577755323657443267766828774628363228446423223246183352318367314573287735627138735736636664452576785375856736365728273815152261451685246538223765788671343568272857473282714782836812136353877233846365413573472272342837832645541833241518413627822275564618828528483551481438222188653788642288248481216211237837858747663558463178716586516476862743475642558564241561887535287178327843267631722868555328484313811712678227888256713314851442348185364782652666324524678424325284772767138783285523882538667256342527887863783324378538413378623841481254548472828433478467316281841535878834172634648573164651741513762662746578641584562844888145823255816564237354612562822522771116363688618512643468662571758735228587268775158866548386433822244253548224785673143877372244464756771483762416671645561684717254437577562328153776341328756342485243886634535874328326163686832155122672222768811747515464637814215151232378366156867472551411488184226125643814662161322351218178456767388281656533255157135634341823523417261424415627532285325874335245758717258581358545764358453644826884386246863533268262226281582842376162438687562587671185225115714512652371643758686412673771461832663787567721451167335321357426374338673544341456746447574885621611678818144656447672511688736857123673344428128784144771368665234467413541423188461817645527717254564525536533476244165284865751727361581824832343758438835167255557377368332256547447112315172544432835467674114528325216415235646488842771247688381771277317848278774127713548465228337755521545238282143486318521521186627638757777643588276748556552221654585471815764658138585346235281621864835422454456123216725445267751124552417718277488771422818482583525723554272881765674744778585856515752845644437882865421466838358742585268367636732168766436422812222644632252824636564823535632814774316121372341167455375724174452748337325146754551785846445557413332223487278585371845576782532462554581117847263336452231341257478544613516121823664446277281818568138341528516544874383728888713412413134855618664263243647387238446645711372724711872223813733466617378413355412486365666818725256884712183384218846411167148352556834713733251715555223877521735585865845831112523745111567512732825271678456575558136771511774543152786637155627372861121765228182261511426577466563532324785415387348346615458173816634288418535436131687831717167348627337176588283832722463861711348272576885821814153118316843674367483173641437813711716267246561175181325834722768856363154576275781771173432328362885861374113357133612654543268435522556137123583853135281124126575412211578537824884478276288816526314168122571668174553377275587884211178836884653125324617367634241715718584867865457537331163277367745354422274781648178255568855446848282371368184163584227224435788315583535232518557648426836465116556576111836848314853642357528842588866565351251353223328257742562255822444236222441743454218455372433443453244354447451747641874287138172386433543177863317312722381868187717132318883733233412216383218571141842517776211217827624184858631625565324711721268142241613365313767168448276214277388125343571866661371888676714611223756615662185181278747424545533768545118875484563126555616761213767475833448863274586737121132224828112456821347654116717477318781387514815116437437778537127864681522577277482313271718612217534385443837473463652642668485328645855828663516863616561571227248612884732783576756221238851432458358642571735477755848815647554478321264224438225726716362736871573281678232154515883581678833677817563473654775362531354757273643116412347723828242237328614168175373527186384215187571236634588286558827324412826732554227344264885754375426277852213685186221268721225454172546324651838651634325117643127768262533286127752243451372353636544464673454315581546265151131655712241273274783824336433233278658541257543533871314154134342374837851464723672768871444575464754325153285561316812615253488742874578758172173761841436433426612668622228436462563572825237555638286478477732575813262675281454878633232175841437714878267224378843253427622752213616271118186171873235853717835852668341346822528717864842414885123136657441262248625616843818527522886716423314233468631122143582647384643163263461443512625561712521674187114357162423272415276317476842448575487688624724148666272746571548775522248532635658167223871132576735848568637854867458643413331811265222642444511346766774217865877258834245585385548836314716365177677162321426141531361447134348717574673421775747441572155558536852178482566121465581713325877344448188715577632772532764328853864761651815747623742187287178135578225823456735216375814378253462473871826315576372742861852288847815114312868354417682486666341137315715817883143878175723143753673231421876271365844472686877823315147632421514658214334688481681882461518336613373626746686732531637487422157486434218468728868182542178255615317775733471346723167762757424525184544572566857262628812611242742865373541783376557245326411571434863884673618434257745155671774346645173141854875726123386175178711115476242538771573578247342183181587312135124748683677122327584323211114373357783252838767683124184263351582172454257741268536543125842166871176413883876531881863564432125784515581757116265752175227386775315452116524381576444863452646336547325166452418754346543423723136864442646855541632383314543756248354485771815167764181225561241776773331427184567846865422516574868262821721834337135644555321464151323352145474856587813232245541643648741155456863633646767373123377832834178763716262514348312616411351635328568873133233124885683375358746463352231513522671846235636577325617436556515743533826476714685836376182628363276577883544661263587354433138444268634857125117454851351563214677551145553724366622457424732861685666827881824655481748888175142377848435534868115256645628734127773436171133644238711133872184842251725437718783771578747854147351183515173162116122685581882483453624127382287761831276843177434465464363178535685314517523333768823111475345664215233674824261758226734138586574786165234521383272734836555713258563772233868746886471142388315332225416658314163617477276264417588736462488765715211134452887627456611518453833224227338425353658136277223123434423845557151185615323782713122261522767541358771472357438311383345522146268726725627567268787287626581813472233482324181676183834553258584376323521821657454654668682616742241182281866378711247723551332515325542384832418584376312842153655815135587435475878361261473428516778385717343517284211815823761447243684274412821387188341533545125155461571662467273177736262634335472436463326232418873685858853486386144142625863562532184145855384165166818255428568644618315431517271861773122677527688526736886324367426438653124884823585242574677488738685614118251416687722851368848578145155167768285544711486182845728182664521237458848558854628387317144455345141812453348721326724524661882455226857353783884275284662456258741143875855222388527642773268744855823425513413321775531847888872433445862212244273445546185151254285783874754278234454231432427547273147483872781843825555716536342322161427267328621746434647447271483215138531488244473857358777774712164827633647675647263257613781886448717242571725648635155141146441887722145737157826283386467118717686561744245114623158466274235881616482413164443424152455837484225861612175186137511652345151263765716562741451262836237314422364844662454588275375657555117744815138871336324557182546126557547151555678377333817133611156517871145661364164854753783515823621722855142427874835862223325573332437188716354724111383224448778132417155681738236832351455134133241645224867481251385417622122135161548636442257256457328186286464577147653865751263555162746584512413748243375188425637778584554482746426355452368538376285552666547841645757682641247754176723374165218455822142266628274566781264775481678788176314283641836151588644413358356557866812551332342825153347341585858355272214418656852253644668365716425522658582844731212548532728267388562177372335142263626858862417324238834266467344523315768111518533532617122445867885547218256728647815376427674244654575281443316784382641478883138556163226127754353234273748242757152441618284576558643836422684281111242156272714468732564318488415276158763614126888723224251661888511547715274873562858135218815533674162358626641745428636683845271553678517862622853433182173356412746366764885782232121824856654538235818167644534615314485762382325463178511821341547587242871277335583241812816652517183282768667887717868268511437336243185623212587485467837837451741221452668438378873472844686672751485362372321778123866433161815852175874215258637624164332388544458154464656381168263665415336362844371413242815838255763882385581874635825716888412657627744458147577168611861827288851412427438786668686684353742714512654254143326846673718188838171223338781732182721187666555564355555185267843225285852274712833257636251615834513765688241811223656137288387625653732743538527783216873528151586768621874516355563731273174743281758824364615833273381255516836618581884155354562467271742234512451131583737242287526661752812114226873255641566428152847118211288846753484151758365526336814583456238275371436158312821367637843336221655467174622573318248531533745876434387351524442435185118884272882381723762823135681357256335232321113156247426683377211714126325872286817421748147855812171372766165453255836412784355251257432217411685875333422824136252662747648628874216424326486777845736361288757245474872232768663813535625367142256524743681533521541168382166277711851831643112652738755832346287751843817774651881735137338815381472473236687487442542134135234268463386625431332282365734857172178374643885678784181364738214868766842336782447727842175115268126721611185311282552761337555436725846523244223375552352266376167328871381628624248372465784467888587684755323737435548677282852527876328722282632855733618565626222551513483256447532552515246555771436736152366728871712423747325165715467564843411552451644233446174222147413754575322183275226784213824735616725456623831248787878761351436218611173136757686554447264323848561675555836613157263166187458113766833175753155573785164516476451128437518575111886463531248571683312633677848144652675718354484371553537838511646514152654268317131148718768738241643478855853353457185872531415236472164338531562842535348188313626771724346481551724127534255123752811844641316454455827331518582673476712417211355844443254113846282467678251272442776758751655434276112627346571734161853834236255532684435141728286888252542853226373483817656543833715568432743177187485722272434475848578724737647243784518723866232775634717647158147554116188672526781347112577487721382187132874534357125271675164213378642836358772373467535248536451384284531264363616155346358562612782854567184835537238831777125384158213828412663155857713515111216826277286151866232612138511336825314773585557272147851877561363813452416833726522424217835658826822658123184656854844747821872531466478644221462766116467452362428754327781443681386183515442653385637224264214748518561162843363586814382717788611353131222427764155454332277128242222284313745252617736615526187328415516772466213683134273583881846256785832322557851845284181244755515615437358712786123232213386816446186437417454126445363682348853357566474228687143335581385351273845674173623573413153287674318268747823851817838332547166563481441847744842444343417271537734537583133584634627135453572132472811721261288362245387355427333433215387814841632351173385727166454584152452234426522727888463228645612753645284513354141156244167645482756142482637117724587815546155332535473613173562122528661445868788413334543555757175558683276726724156567434166544118164358141473885323132418653264636738613427767815317128181463416775756755643143331248625722233521263428848321251361212384577536348282155677411484475624748382823832614142778585833462525545713166144448384743333671718458511876347782376762712136727631651345648485333166846121788238252883466476515823673175735447133238445873541118846322884115528818423117122288271772647248487154815262864858567523756662377683278366534526548182346171217673852885617666831836652838116471466632753686488278852254625133276421613643357876868152283683622458285158185883346357437417465277156663378764718182814612245663448723612685146153743371415837843531812237647114855873181254154827514784237115182586855677143511867114487887264833675854624535382287316113578872847513564186236122743228567435387217162442762261122133846485614475378481346151232332386533213356645551675857131734553824214145711855188382154716838321311712852627283628531871661262882648742813478622561667415533483353346144172152277822768377326253447757236238354246173877711282542837721531253543242218847563724174465288812223413284785322652128533722418527537857833562437216258581432858622566167174233523335854154751422647122721218261451543615251218831432668488163727748726333818512552788634482678234113412363221173322282642568572558785132124138851277812154673435374553724784678463261143511751158472453512831577811114365126228736848388263827677446848151548138733428382381137563237241855467126355752671751676661141736348741245481565641774211725555781742755185252483147527616233727453647825417344354226844636577434655254384288232623324647165725851165272658362434432763668827473276614636553413443681536528426332167242754784245461233752453683751332226556561774886842147113455288361125378164428211175455767384332883237732773751765172358257547314386266415387141347561142566813342135736862343474216822248735766148323876722256546345255618876557581554315227748233314871565737554328625834467357258623461151823344762465768384121543855551518448873286463353432273147688421361738228752247277185316635667464554235626512186783188653388645767252421176886546555427727482637453253267556361522144823322572176112885626144283166535756572748146842473774363366128262588663375545754833368353835548787422458821565528812547711132862414655313336787448658248323271337458881388147488425835837842542477844643626263164264736327572676472853774581764886461782526572781652836486248217842882721567724488383183323343734883775718346755782151153843323472465625241885561643747618546755617378861558773817878321342836264888555662358558444873867166444848582138754426426512567872685656416528111542751567424827157388631382767728661487246235116516461255813752335135518238318728432257457384283615256646546228733144558358465786172656871668212176538534267647145377553325316424767686764515816235156887528866454781466887185625872571488885687773786245655224422566376342562845284765431628131874528713161752371467877616618464772333618675428453821386655282546771711738876828772477243668588333324386842511577436257284151673162116762532656451773568634387315413258328271883631154836836754111333831455454724581848342187188878272824435474844585535715371268756845158613286244664341468553485786112632157638765266328772782347544717818453336414716771531734285566437863853664154488453285311767561133138453567514225235453446361864376888215633754364875236523526142486376521785838327816538471271387825377336538257625437376882181743177772244736384737325522386432448777817171416856648817736548471138538313144446161136721142776751624542526166374447285816172757588821273575273674153341825767536287265221617676742743742338657467852531212635871755736135666411855678716836534228488667334642637313843245755776483858653824776574738641835561816218844732266584147522372547385823766856263733887625544454883572738231714786283532152287347582445855135425782721886213637454317564164622857638735115165477765322338457324277736334511645537131861816347623185785245871138813615753183535741876466124687375325782717251384488135614743677261425315127243352722453543826614726456655146433622837782771556888534886561224246318175833875664587654322113277717463665858486823448866743751212845762164871342285758411476586357815617266212187361821134674875766817782277386784473485853152685386633542341135564774345327277763116467512372835174415616431867375572317235375753884455164162558114815334531225411543721386443111561611253274482553834523364245262847664158287348613754757243468338115267676288225412544167362885812285864378287714628125523668736645218244168816347716455432865645756741754712415886388712185238722285237324425671116844721343874281723222638787564258332332331321157166238725532624344247337868674272752448863744345458843646314788562425378261664818511844362442365216644337354745316356574628512123463886618773461675431767328377531576826782718776175132461485724833621116277222421183835842528173825633346138367846238524643617168338564246771564253772715773541244186472755468485748881365531654638467328856762145142267637468482416737421166367543656286833843243432278855378213135744513486362322485152376353365456466423226847754468564788176338145373365836417442467743722251125321656728228831733574636742551773714482161133726145518251122788166172888153131314564151237316861578775441311442718821684534822146681742573677764433483812861234451544687656418548755623818583138653288652152663528681157816376753737618872718162147713513887673555433177358262143773113113776143342358272165365241422423756437463585273175573783814253115748352667286265628618168275265626348575452667226777642361543724255163378543331615441663384646658333631275275345551574574117478878312838123524261385353732266744665855463784222811143485218883336522665115514652766762388375327831713411651686733416346245763566257264388358642653374817242515887314634446361213232587173831486224387637322112322147625615444133458777321277371284133383584686813451378184783518677867376643111355148555114862586388627153454155631573253325565812741656668662214868242243466654717874211274364357848134161633124567688313781383686685163732111436315835322812271526278153361321121614712688824535824738633362443161421381847368551814576871724727831625421817761766871347126285854626224315683345184285186614868336158241425621825145514342335365837553682833833236653777671317562433758652612834285541328128573385548514434524611365364376831256772317742811372867511837227811658788631522515413728828487887854543275384222453612318228117864375261485867111142267188186553146264828566374147222137614358234827416323127422814714542164886185832264446345116274647445715272632845188771352171112855543651584758354333138214212116527551528884536136131647735832354211737487547321178741231621553843583133784572351232841878632876812215251228411184274348812216486524281828521638124218181811558827386175817661638128628616637325125431886764583465436855337156628838827662626138238835227531318882754387138748453333714367485351233222835565517716687234631725845254156271746277856345728561665257658877532126763214672318465561383358627828253234518788733851175161548486123436553443423718474151222122338638875838346387243557435517637461355848741561854876428175728655487883544657653722454158612344541445368685566528731886764654628628355385418756688778232264635563218784135521256785375212562718228664134583477224423143866116625252662281485864416476461142461585768657787881112321153134262881574148885352423352856828323113736837784476587523625167615575725227686782421873811477744317551142817357556341682448778326772885753654278721841751338337822771852834312853154688783483255343117887374571542827516746733356366752281615351523368121613516338562786557181123146115643113483321568322187768761437613878825857811588717282268268641884556248648468316732145832583558164458371826553845126566422474341475474172387677888626838244244373587585732361766487277763776372381121261416443283627254448643768842567565371688527434744475368323475843567513565315356484181533861261277847354545246783363125178612721371213357442287471788854434623441127454284173582367333463514715524358445721731664456411452412131466167325318845352117113851753866243135533437663441322364341334154127247551834874665518814616618717333148717265648855753873358838768131527444165532273467763653335718562312415135753116748775675335873673531134361546832865214646315563882112238253823676357638128573542418538122461447171523425848761617631348455551164273272372838116748561472687311777656782184585245783511666466442377654733188571236177722458761517441431735441433117578372258825321168212344473463722455542231738442422326662864155717432312342783185324551424721186516736632722721118464566124681441124446687476576231554825184218376327177583746251372344558661564816412822213525321444511563281351686758648517631772382354341363332174628668213287427218343166366245623557578587815676376371824337581825678515385531868584355688245837163123528862635545676226716386614812861434686822176717148465215216461218548831144374255688278481214825848431211635621351278235815364437177157727458475268777335863112726682274828834152635538773273362887716715567841218733326585587554345633775678456481337856226862415644832585217847866733254712528783355272683583856611525156828564488613643518782537388762231677133664635675262381228763645618278515578146351456564211475622631541715628141256411887145213443166746325885862328315178366376573334635721187876774382785223847832355544648237776262132518763355542612243723667872244865522553717675855847264138711366428274224688242332725287768763415188422576152381263658216743181368817665446236341373313557864551547822565377573327647684256212836738842146814886736383364882752211785676363733215442448515677578625883236571757167212732117722654213532278732638528613518387533554766152644864726456373878712753846627457545874581835884734621512833647588286523362721761238358148471841766284477338316435322833532625468144558873873523222162884653156861173162831388277141211372677861645113712832425226816144763356331782762131768157657422765712411155283163748312174876761322257764454421682388586155488531322268674625452251226882137652388525473522657578352846621545371842556567743257283844573317415586722468228285671565681821461836364527118685323476546615348122747866633313884838351622323234165552735263232382237817188873476883776811288428613288858857862532516764783412462481354828426548456233272538666513517111647367874554573435368826746344175863456473882735162821265516124661563327376561663532528161677125748241665482154114365368844715885726544273857465712888888371541137353662664262727177567563526586138465217622764332285153872311821854175547781724114365561681552314627248674763333651876823667588837358327684187331127678653518252686525452452854863611363673568638157683545317384531364538575454861688141341176248346388227451853887518234842662555362884388372331287276567431666351248574273113222518336766813387328763352352531457351634134124555418732636577523128258367661772232172844683122131516418343332441328511141858757725235768152773814532585257131878453636613776774236883518178144648123371238816386672818527477753735758873738338686754713352243485647336578572147483874266186316831751215633584343336724123721183245752485444475625467866828637522213312716852221633486758622173881837787151338813328185837743718488234645768338562532621462412356841321854887822634514521452553147666732827768848458421533377658283745647471142887515327524155664845415724828274532253675181656627868422571157226313662377811643545256814878417137165358651785645231832881836716223718472221385825167866535716587737473584624873448786458616355718554773842488341321832812616877718756252862512531581752527373734726438386143263881165787633115176786725236223522524784333631215585237456665686724812844813184648333647122677831476576674683134624888461335237746552321686658222577234354744337874263842217786824434535611143411827268886465133236588226236266235613317812475485124683322688428658676567676822581558857236734618364681535723733784756545225656251635357846271256313656235767273256653243737741541413126368177468784615187548683733115338347774428581655518468428676821721654686315471182645246225714453487857555683763684327686864171338282517174166146147567332441538248468744342523333151551481144135562243647516785762533533544616868152485752211687546851724355648622732874185731354111781822286725187786362455556667416115331663263657445356413235876574273841233415811435773183341815173364356386857886242146462237436731835562853613183287812182832275767134728251138455813772865253616215657371858882282568433114145363887332836876163325367238684236176828727513871718185575242231848616377715263321226475686421524254743381824815687412562278217623764713882362437247182288728547534874862257117782517486464135478846141253651411566162678878484188713585757888522888264158568167824864228165584473185467334232673266557252472528428165585877653166382277172343255762478536413675122318624714231713611264862818217314862453842528856868133321832438435632672744435188613112252154814446325561678878825733154721318623122645363367226718662253851782811674767714223768746538831571467412588468472435326648232351183713868762786631267782421345355236528116355825812751583624318738157138451823423364124152173632514416848112831826435782616665886834588256358427661325285468127312637353855487262864241676655282155757743158846633223382624233415671122423477657638134886366366712513325631415838847487732155485653684827834437137536818125365486662254647152821363131118333473755841112573342365378458448656638273881647163866514126631515335254113274157852568662334182374766277255227623738763584168817342638445637465445483448725412816271772852467827567778336874762251235121757525177725358626781125617366853465878727421888575354524347748673876858467266182526865161512476472244171763263181684862823637476581867645138347164552321384137657714365445838743888787726836412842336571244634173662421163321511414628413773741227125288231247354326356512786674453532554345131263585822217462566781853146658643618711627422677125726282553287127867146788823585174663475762661566167623222242417744788165843858323255534655585448727432822277726782125587156257238548737623164742853267848264144617542123431512666841635632736384228386336146211565615247121446754453153727115727388578352186678782784245523684584247271151325364251234672127547558144148276374655467746625538845855331717543567225156334747748831523384724172583268488843387386815315774757124482111563812486284784138122838445515363531476253612765474546586124322641385167387141378638157456887628757821611424222752636368824386837688366477516382261557541645835355388517425721547618524274444761186854465617768248257246651786783255568745383213785615847827354371514477173164853521174562367763433747356523625634612755183838248283824246214676627884461451144853214335823181768225362366367438651781452637461183526624117441473267761613528325344612123564677852438416627326841812271244567333576134666214888186875685143543762244577717364748546666347388672556611452277568278856381186552766234278457772411355872781453311823447144582638365833718721711713713517526488425878825763544681562887621165874238121364638257222127541344542564543241618285677546362183414267622113644668344758485251512527356234517575565622536753768622254846387252375447561842385366288543338721547288523327544141456871374725876453475413737388481688776764152784713311683228728787733121532477855755872364745632265547257462854246784827113342468178515823774315544143811734147526567736724312465536887831243864537172358446588228714567373575117866687543788761451824623676254641416236273151156844325354678728756245834346423617116612646627261772144545776123531281161313788544755811454166428215762818257722856444448853551271664532126784641181215711133147771383114781335832153533383364127727627214786181212454451487851732514181461241266178585341186761887186241734556225774877884662337136327381453235778867466781683483784681443633811857684851628635824144785238425417745811868832181565651864775133877467462122232878424518856235533341774856248834773888785215737252816312876566625874868276638412282588756271742141133147416127343468145633377342852332773471872387888432365781575675823837635722511224841536254438881844413675715884477117633762437282533417885254553231863856768578787648414635252164722124356824583334844116577455544442446248584586181482721623876377433247164534838157736568753572134315773216286282642317751268177218757634354661445532126214622588265547141167222333514822351268246317772855766651522668815188124312758651216838581367135235213511676228335528545378742462577535511832724473136262726153776431857841182516861383265736685434228871681526273213226658138547661367484156764252178625425346623625235616374455563512744335116845257437133237682117773272753243668267677882466344123127253264417484868658562282662563887372328637271256661581756871766364183163451543871135677135223525135138342286151724383763444316565777777654331123527581715815363757383168562371517154114312834865385518462381126778381436575133638881713618417286223762286358333277337318258668447681768515235134826744338813444263321331551138122765815865715288532232843655667722118565646336255174238514767615525438811284576184274284377618256761466486515221215621717275688445178487148236827255336715475885454414765454656262781242341735142587635242324887164248173636342266136322458547432713622184485512825644458111541632118777826544785136462163624756534422871634714476271174154415258316214244322331627724828366542147757868187381353711288775446651282155652482277167276162376657344548272377513318634147336617433584162311726127571881481651561421734634316817463138737814631678432782282558112311874645217873725682472647214415481564641548481126265116436863163638711734468242735136648135488332813865418173265435111168266118386281386355547782412115183683488724751575111751661767176324333714371314862826873631235834356547633468525627862815525267281822455382321842345535784361286258152582321364117527783781816687354411342345752274121116184431356466487382764152234831646158142677427843231513425428451255768844655256536356586714751435528211555837652874314844426231682628472864488554581185214427453384837182236753222887267216638858428837158744133382718331153655257257658543613142227742723678885376143163134385223184743276633761562544554854233533623887551846661522864435748163132171713567342884756381842727286185743211584751745562356415784581774252826453146381522833423548236618411216476723772145846217221457385173382161317213667184863627224622552424425343221581174343654183825757281781168237783284156535886568888637645324164158462272472787654327658287365431373262416253628247624588482535631124254578747728571516226875215267554627388272186754235438141634458531861844624885378527233755262271374844476563771483273455677556373643251774758885823737162827343576553646773643731174871248563787553574353586575581148721677664488417731158464633784646712244573224564655383652688263411584127141114561158132312275123248522325135348355724851738847252774872452676217451755585581373556541746171367213355524231757273513644323145766257376758442236276242533444181363716453116886524884757787263811387814872662381488861346734221826723811247843642215345187176737428776587357683514614363777562478157424218647156536824862625523485333621372786426115562414852861261282226163414122538766738186713828622427754235175133476346833875853662144536741421457273442741113138243563856155111875781172642854745762253556136172362335411262353418625637332111833156564341242483431584436584577584326642465362264333373683222876877623455673811381384654843632418861823457447274713345631611711464255462363676264267632617755462773131727183766273653488735472355335826623661844216525218313235737338167134135223734155875815448377355155324445728331478676381825711875427857516145252728254725366455563165776557743835417885238862187185678115558448581158668256433343777657763724674678423344677167443775633714748324735636211867577763415443537426768142467462771663573776236867525531333845134766132418682478847467161455137112721827756165651463278875557155243832777551675488763762826483673165241655388847475733822231287452173615845788644376345457274621874252645382762861684746334713481573623813155842171462214271586344272242426627726833618784843534528443554825586256126116457467831734685156616182661136372788577222387761512716643613342232745664481366384271545573874783577211356341748237878436484761227815636337473455758668118482514161544874627824218732633377485413523516578446757332564488348758717168733367123553378728458314872655315642421433661212754684743824554175833666888821783357413362724382755727427168258142878825287574738817728523318723162561278614176747525247534423471346352882415241617228643775184625127326154347365757737766472553662454266587485842411274583314677533815332172346143732352283631478341843126847228558671768737433464128131422741766342488837467772873853685556531324158122468327423414742186355447454333571262624831114274726422256388524341418812678286544256848648411785843411667647188275558484831661822367312745352236682381451533372278121282326516342472224843242451127686835286776135724815288441413878363757246816158156665576287276111356766434181612365884523482687784467211371342275734382312172856463251878624818183572717615767215581387856426832248136854242828437153558857551442114781871663575157424116427162233618356131887258781767411323246163166348344731726583311832813521577278723253814551552554442761478767645132137574615761872754783741212774577443563115764845134468186234653263186487644117516654351841826818817524877348761242637388377577538476874478326147267656682455867526372776427688513348514635333275518457186865473466334467816382512444853515653186471727375521672575877787431416244883472541577313552447852852645732741882125555822726528625548728183753534255744185344872445184883835888114655124355611841218565568237145112378665312363474137682565138348163111312415713223677714327247722738858715846338584174523814475638282147643165582881417715241474383467382265724123731371752716233245843268612774726745581561251132633818846122154745861624511524473671344543727788863144555276232581684755136573276476512138458575244371758264272486256831562528141267224711275835616118132374355868747787513275443141623827113216282841317635836732861762633651365521222144316876741436556532365874866141271436771728245714137375671384162822581272156344653252431435818786816681816287331545457417687336184354141436358381836446222822321756767877514243716552731632831623461757666747137451344866761838335826451132815457442738222361781858614474635766611481863761846142572176428616334133236473136387552456268235465768757486665115532766271164316781375282464175687762256354382136665851116272421884178762717861614818176414545332345383271147715265263761724424255754767743321783826854846154546182275135856586855656152453576273381453125462737364135867785511736542541654737331344587476617656311222286648163213258153423258585567487622688615637281543825461187843725545273413338183145588518418741162271532431338684741661217247824241753612742461452578376187458831825856786834645511484184546518567734113763817155714373344851677556837372662247685124124221344681484778825736685864865454278628324463334623852545643247653282228536561887884724378314736155764784247717654635264781764446581661152737363616388367442555321374151711533514313836741516284388764445268435835725451226783382737378486416655843558271836325215648685885332722237752554246437588554121323412385131883364676246118277818326142525312348776217724483383872586728126257285416854464653642717256658351266674161426848814751663848841623382615423717615247815265731783278135566544171565353541723767686388423744743815112123184147576813522785871847554356636782548846857244413116758384654383157657454835465475737626688278151533434587611345524343622386718868772387667457576671158877535578166363788345263741843737361578582887267218375361122415717565185371717674223528232338516351868167247576185827536768321623616673413831387588352885583365633861777267167736353227377674814211885373178722524483337715386463258656562521447487481862566761773627162284887613552545463728784245641738227658812733446327864447628613382226624817857576871185566413637711278638131846242311763211243611627657367122642768526536528578527143568377212158817531148566127888744732648524122841615553832421411754585447525418566288473524362314453164785333871616614833158856418316455588884524274347628315112823258474363685661712673311772138154883185334512658876814852755736876273475542677645833487274434123412746882736361731136522154236446387853634461218773545727247553747534577821687676117258141782775615154432582836584828873532726473855167274176645116182825786112464861488767437127474375762248372447574151861342286234476381215148886818656682566286334631411814581851823353476782484524554625742837636122851636742864826455148233182663535285746183185747322732117834877463143418778151752112718662256573854882868872524484672244421677131138226761633172216331733511174176865323185118876526656567663777242644813221218536258825448624417567638146624376862461164143454777341212571817365217275645187445766554613468353474887133638143335851487331356561621434454458388851651184276518632444486838567121285212378811831175285575417811886273312388153136346765112818657373613538414376117654752157524122343383218347117474521782351727853873768711562125244784625614568754617488422281724881863418725467617244182322353428413458312528348751738157258452112344341288684641423435746453531461565272251584236246687131164166724828134241361671428288883368848341828144147623722311881223276726718718773521553653458477366147475364827248881336362765612363712414485878465587281167637562413513158316854271568663513126766187151881343651426151377345132737314368181343175477286832534464782387714817366522331683716711888175565132538841141216346537573282725125267232845632326675184421562768356166831118312168575627641786723286748456484352878457878867626583837541355682476132521424852277262836622347285715653352716582427277758644551611862214442712823432223657764714587328754832783236124485233321468217754824181128672636311338345863645236216815734613344134857252225615183473566633836181453837146374743171144664663133744237637365321635488565518817782314764667268837447182342713583788863135823776636286427687634868563743434378822342588426778846858244444563532456222723468368625685615763783887626785713345864283664827383583151716156382575865882481721241453288785581415882472381338354168874861188231686832656751672655344737746526255745676322157333753886357665482643261812774566758215546824528454662327283548882873484775314318373162887858847112412786124225748256825616518128821278458761855531288451777655554332864721773843622634418244465788673125713764146878126881136673251433818886461655326123773222434573444111613477877355634852765238531646377532281835188552737826547362811631811858264738868432755572478127718464382762434434561728623584172875124867626226373322774711314153652758526118634135274361152566513674313813543816282288312455775653271431451742227346776688266642636676382462344145733287222843715161618825257552212122548781242745426378681423584766636323386237771178144756223558883321526841725533214678867221778262781284745415385451426815871867726433824224651862873363862834466228162574656614713716218868113671356525646117165145623578286435462288434132514115334588578828565352884367124584627274112564426622812417726835314773381246255584784585143633734322217873215725711331412434724225133831747381576568376438572564274133217814537375871583222177452565773341683587643713735548855262356386836342726154434577578166817584386581563377677116564142437357643373138853488268775186715332153141343845341266725122662381166462413783887164745124771121726461261156422235366548837685464661755461718182378143812767175448384747774454583283253387285346865155714341368675581881776872575776456847574248615465113717535624325611438541476874282238152621652823633577282851161848754176128117871315134876158644688214575176741871451555851732317785213727462256362486582662557446864852368271574622371224138844682653858544383752856534837538657734785418837224465238688222186545532262152844157362716678845318552335547713778613478757428818852785316254412132346828661352223187235712327122825524557374162141851522341243811268674477542455517538338311381373312325741673734653575273318116417236772548728854378516784615115535373434823727816753213648341588186281588771362524841864765522431741588544677418481577834585615458525266581142671635188247475831572755275378154774454167563135781636325751435811325628266541725788422663622863862513521835814583212864815118185225534337488444735538121381216724144444273784373486414134724483557112136316481741146556547654818771578875225358161476142513814547363262788875888134417364532653578866612611865445776321744815834777247368352865554883836184676664275873525663385481754158477632746314353781625842876878884436627327443687431121268534283543874666226185837686761631241264458585214523223647135615675752864734122471467413816573647224176526825748785585876211565354367121473823817437623143256387435313347311581413772283168614544671172813537648534413425856471725521777131862582842741433161727171125535382416687572285488247125787346473333153767686743754525612286544743744782231511773715172252723866247634426567513783187273142337518148471746657524821718713882423427836126343261562222288157311518313661312228343264141853478216113161262171671854158721734645155458435381367121483172124558661312222452544156116462264686263851243384218614471776812866554541552551872728856632183755522836588712516347213533637624362134751311557278868833763632655864121111763347235284177121283646254835672816426816171772511542326626874742273831217873118753145474177263356341831725685676182338324237133633735464843217416316837317126151483648614175733168452258637433142363334442572755716683653463666563876326272137567836868213446764767161444653271574861857868515553465171223586654657411886724448372851647517233367725715554857583758771331151156445132356623568751418538315827462865686137175836146567588656483676723436331484254521346713522546838847542376468837662328562485175648563317145688562753776533717462878828781161823768127446634567735334371874643828587882345687432661255853324572216686881156865742534131157473663138738542788443386685417322378542272132372725252431667458676212181271168247423562385241175583318186114687486324551662448685133842327746343145151233367844414667515476771175352864367753853386747442181764181783886737734153447248117254351845834524486768773614325182224377867136433776764784323782621117562161674852547137225465343814337531587151812471252568188446578333487864822765757114668624462465372765734811285863431317645558756134223574661756761752682854745228236555522664321484234178231642265872241313415512884188172115337536346844884525374471354455658378511364761873427535332774328346714717874168877712334217541231521861665768733613726837742452211316148383276247515257883715526524384224282823668885452483155626615284524412447434675824731452738128177588331274317756346148282781717626256344332727528723618884862413635425528481248621651548183283143641813712572451436276143463373617785645714128738444257255488438365731176488172886368872187846564224222837432681884573782256811127411283143762532881235451722421322847312285447536326867611452544647565485588458751514164125241375738444881413487517572171364113343273348371585143561648476573577485788785824285443577232571537374531225664773386325147353113511654643868354654376586188388518372425613317463462637487323844778121357547342488367616215551547515217558454553278856373888528836556178834351365368666822474474716415467563611314766438366374752463526464412187262874777225357465424127234343726815458761285848381668172476765165377254262443367132131345528613331743866171876755635351778458653334371885551316561782546288121121448214451551816854718227181752713674738745532887334256822587574718878833173367112273775615251311386258254287864773736487678616436622387613268527511226674322155333253681117131577318847165337466788657735537356176177444677472261143825146862578853757733361454254425621374538181446826751515822438612438758758763222717824122335265115651533276267325767776165552652386846831547145273866374881163162723125236516725188573863541853185863576716585661528873737538784481718176412867686644834373333777825531241117573247212646661824316526517517155346236861334876473735286854626851331186786884513876263554815567382467756442862831544561856578828266517758156345166473278714715478788575286577282731255782242786336384571838647537321786126863385882118783644286638375873346563232318278223518833461835861634857747633354364255282852458288371125588771216383518782827583432288648333324624662617565835344154188528826184132358616315545642226775374871483377255556266647521887576842857775677331516377118285644317264858286876147442223187653681566558567833217847758738684651673438383745255526413143612264718243647182217531276152328283343354215165253616484165857843277271611364558738465542114788264652637425771751613854634273166143813752818672627123473412468248241133373757888781785213356872765544463455254141286417614357442656783735457757546244114141842276453446848682252875346456227885647673443823218383877388117416141565528777287634178468466283563621868857646225621567272451626758743745221547266781624551583867553716425165558248861323442348182147746851265255158757683823488383147348326832214748524575582422385226657327288574233551718127753165737336125671651675653234621886266656337582537585737151527576881365857714834441823385424872542365721381451514554881212581721643285882637644716213273448181762146646515371462257546542451214128748481884146752366132764551852533462142512854272474237383358213426326147333622856148748264152183785415838761153654347222317413743853552238812834365876727237528475441631221414716165744557175134347861188786856654834141725475718365875532286532822133274377735733486546755428376176451488873555755226858511115473176285771113358566263171756315373568747827258666441428455252458625316187471423727865472667713444164431374883374137676843321664741874578167313565841514514536617486851447844252453278615668411246518543843138241158688362212286543467468462853135884421637527868376781734635837586615448317762461658433782853477248384872624762716445325577725611348633585648788133632888642372323755262433312273545642563482388544721661811285241671517844141814146221726816527355325716312462576754845513834651353513341454363558121342534186782643664776311333734737887467626881854112318832222315161464245514356327547517436656731867162578174626267188582354613661563437385736242826766618768116763165812254865636372827784465147123361445848167516664411556737345568524764442282457865832365115663381744277467223671348466544272117172266864662636451163687265175451664432767646358356632128673835888383246811615542862778326611815412426176247467332416837665333573722421712347161877562114346511853712772813777535888661282517664841225123452275361844538681227682461878375168616457421455277816744547546653571325664668386747288653567838887885253586285776282137141584481278761681115273778188481558557543588268335551517566124145182856875888487144184827328481881653341511145821181157781436575257553274355823523377133773487173587726847188451385768143173757616558811628522357734417666647478142182131653874334661516767626386486355381345475758871666215734431753362156615751745767277637747721126338658242872538444874627181168463335828127341842135467376871827722313812416287381834637186255537634785645352681541873778264434764314777161346182188245127257645263521187228528685315477314264347568347126864544145653581563767522145526771332715861875823385717578142535628711853158326222753221232141573258725277718432667585675441517581472161447487255675818454572131145813656563354873164128164276842543725232467855833385818387778848777311517868558587274224558148187434555113668534112581546457427766388881733773751118733174773366616256848874761747732618757275812587843532628313243323717372548715558563311237212211186575711446818833764553444355831688146671147611177148443845148278743427223853152563463437147865718247866832314151855317613515656347711413333615482838766784331554415123145472632482347126128173273784615813275425528487788764683147227625133362721435815853322273114835218232171124621863761688886458668578586565683481644713418724487126863685855364117475386374774685187827421817167523118344772721175867325476741382368314357516514252688814357377272218241152672767834534556485864272212364113788653612733578745764842748316585121387272248171356427617288514126216882613371416758575164622284862331411648775252176268437527614717755538467171855242772643161251185554217673634357116366544555335442568434367758661153627244436172844747271563586513571351714468253647233385325842386838115223245166578775416686586281267375665273737425835362821546328654381767722668238455324145677311638773235183672577726232665286236762184351524748372811746453745483287371848471167237313555588118124523324237235627528571181661268672678653543125446111761547331286834811835284647157282253675782465453425635168862477663831517424856367582117652461287577318147514211157727371536325241177687548528381163561531758143722551311838457562727577331232211335833625552474226131551543431453125884446354676156718841773835887286617383737244885778864823423248568318452243582641313685144434376887731614864248868215418423511386148771274364228848446185325242753331124146538188614418511225166886864165628534264515265844512717254561118538145463586871187758564577384826527235251745512486811437867338687261783434155884585618482872421844678833487884151571185841153753272274182541642666475536342284572786866182663518243466187823162326664371126377887315674163466567335431482785585483551134372514484633643538245384646328614464873843377316872427748271726751328371615115784613454367128682484322148525662732676171872522737768531572225887253837672843776558122246824223845885653827882214726686358761764131586857344264616475172625763865172466861374454158336218775647746641346132276358282777426556442113116426635121846782683855658536846355125287372637787781336881241846245635531488238675625474415268571153365811784468537145245367326887375476532637652436611744645342238476116248775687358141115618773727288773452621212776783351817751646584548372183362521553511183267476817836743636787551511321513822622212553726466882848137755257885723137321627376167672127638188366641437516884682165367616676211841184811318745853246673417635438488556276256728638164115744454184825513824363213778276467873378337857741844252518237762621657687443384888121232741634866532167727217316265858233863355176873335222658445841551546548256742142363245148313464475731742573466551864475813728334527287326334178143241447735437746533154756752435621362244673254776188245536661342175258386618154763757811644375248765685123588143474775546844268242472571828424323716157623781425654478541277571431282631821128251268773487323362142815663362857874553588181384587445863816282658122177847136482883251151646513275478844627863733125181731571818513217536888363231748483557344865873312887884876837546457283645131861766563857321762126813877541247832374641247825184774778581675274828451134822232276351861115571662573576645825643464537237786731677513877438118843186728355547663231425268268731231778715865732652783476861553665424851147687561626624427433716114111225644566238716825758745246656335716853663221862427887573214547634375358331337231536481362736215534736768818473243787525667145565658345812846722766526783353826453843244185647834656312247285881385316616777546868358273862552347575213587142614611625572784638273664673484352733882428567647635818167176513485672473416872641817774588211251384243244738161751545665656762486521735825773768528285356883743482344783441376245724156725166172316382586634125357761148325833254558715144526248585688536781272286764347711275144668282847655744228553428187517532521425746437541453311311731254322421665317267864261867842167115324472878353725883181581787264465518764766657357637673733217354423458516277621578127466457774332547288476355874853355152548568783518156748317368314761685248137445357618611116633276845161641555247517547517777266727481265221612268823431815487131446553742523685653513661718573233858214163318535585728816435425717488512483325862154122361812148885415642544232124272824115876842482653777767678617716364463156865137175863437487864567615876664746352847881615258376247612168424748812456434625624344675877581642612447757226788778353432377158778684271658347773776138834385271251677341341738767477441461185222845446476531216152455513278486552786231854572844181316235164418545868122138234383384813576533357742348423415532752828234886278663764472782145336225188458747321663622881274314682282214657275212273438127545564781671153531122346371852313866823151733175686587372877125168662836661665211565484588466834856726284752348465112131833683758231726317118845512425575555781311158478858821442671785351786584378224621317322241736362127634133624273728321535225857755388768641735166118728141542175525262233776481761323224844243661284174463662755573412786377545332738242478324578826112411221354414127233245283752457687371473573585175388778761876713347455674638846463457144112443374276324487873688612413773677622611483812716146616844238267586763718188868341811365444467726153444823867587555352784331177481785783751515132666716215874423588677123671371414755175641642167832414467513624681265435461343213144587427655732727857565218571884841653277761512484822437186143247828317671681547688748324538821628518173123773243777675738437455876874256181425711237722421235734227513373822267282561473466645754574568461677563487535442673354728836778827372371141642521456835728114155551788518334543587842481116472634773331728362281182717517325285533563345848168734874642261478618163867257152832181234122236787782157463865135215725336118375722886483477857537621748528254733832332571143755587272713785867237151875645832541364254281656536847142316758521327788825851314565366563848511547477131625323761114626172838688386166738161123671752436628365282517346751552831862724583278615532336112164823521413827336863533665343225317336476345778176185362463354572272728214657553852455352586652768827535111533785112247464736628372142318458417867288583565284737113838732662565154613836226318178168852238143527685147461157865562437626232453828484836513368823736558777683152587151327624365345862556426372218161218541834568735876685883724427488343116438813517363732728857614318278888881741544777635672128441865524564555665654183631833876578212367624741423488662562726172663788657613442572458362554338585745416347582446558186357751666822458774518454176155377233855357463147168162245711148767624356168164867842656884188572424548825728122466617484484457251671263455823268541148485886428456241483655842515316726363625526842156383756614811682888726375646853547583261531351545237533216757623533756888625346826366576838717732174433112332884372846318376126814446624543618737532238723285785236568523854886646465327337814586324272243583837272473372768287576861775212264587433331564453812665744331116532465315353767755823584584611834262752183838415164184241266368783547347617358565145465253871835276617548344787488515227575238453171815788877484354873681874475784851181658288521675114717756884155265281728362441822157531338312827117775423333122776641631336477887363775724223311662385384113412885374432844234817134341611827727123155325686786266586534382144545457848318874212526346373556617751624245281626478261817831681573241561751773131624675577547353367381466525435287665883624256541861174385814131717153235526231834818345586811156562872188673465665255715415121463622431468623848265715853132775217821157685646631762154466252678431213572743565523738243568313256366582472335857837827735662677872381535365832432278163318574872622432135638732656533833571835813642555174637488153415468233378254466552124434436347571553577518656172271683733136881546562323354653777716786168428278436534568182175436272578271615318838182652758118686821538566186656565612784485832583642368857324137367523128323478424547413111171827345617331344272346154452231222623883686427545636142244454546465665814343154337812733875438666381481521786235586745113643378664623332477761136367877328517172518543451384186634528156167442618324566385685838157528226531456375733137654354738672518732577322555855782874436185222762138436688842271378423128387162344754583156265318812778425388428564821875313518481378736326224241338386524865574318882321523133636562173466684275161818651531813335584517264352428526458517217237753711386633875583245765583113548716735315263322313758414722143683373764456375226552268627483752775238334662271813628642561425588777662237153628852823748751861555433516828871855144134168266873423441747686377853863468153711738664644524723615662875577437261247578137178126573741856618586617235214828721475425222788727278818278662521567778417583244853528437182323846635365772185556778483818181482234466815222374132877867444283462517365747675274148745341665578736353817373561875826157774318772464735351527675867348126226112155517731788636288674555864644515735315482154341315341544875336878228634831155153576341687287776367846481482564888528278167443148538868878742812728744611155435158146515156346137168518622722426387645751452162577588266818227456281773487662435345827528132774268713722658417142684213626561844535727151881714648751138473237671838344311347472454533261481225818541166762528461773166712884165128623461523165721226714754261648327354176851432251517173267812818635238834547638776581516316287266646346786641327844114382126518374675362185134574854481383823546112517714373432736845162134185483523481587737121421186816362717168175135528377136183473228866734417172638227627186343234236767827775514286635435766141168523361158366686151451686412124633551632355884265367337534415565781463355741866264854377737852517255546632776288255371134538548361585365213481372516578648263761428622288247745183722456368316854533612635178355687833226757211653834754437433653442434785216233233375325227274485315744162755664163214683262277727182165341774357264318586425287564471812651675568586556367574311457215141625732782224751374322123514114763352217171132151257858326386771713183887581766752354876526361152357316263321555472876238736537351182765286723452245868422664516372468644836232126521137812358587712632132724676815627514486452382132314442511811478718345887277171272325566554358318231485374148263854516833164885575534257353748231252811816316561183415811372781885776877675837136844444238125224483157525674244718858148822531166142758887412753444155856276778481632532162226237333885368557513363585688577262184148346213833856723343887724881162685423665157418641511188157124884432468632472113233248241523627736834714652868243563154273145884377347611586472385616224538684723524171146474224351163483122518532846121624713744842256128346888658332461541585876767561262452434463268881148214471317171336265278563252822842376176482585368586428335223376262561826273666575884836145441727162728234461785484447752452444716658663171758364718282184384375111664143625322458177256383687818676256188526743647131468738535211482281658313337722754417837545374554636366656237371422324754378414837251535345744883185266562212665481141641835181316583826137884188711735886215883558541218687614644734184661861185825516563141415555554187155721823543815818126247612766643725824867734435184327254142715686355348233632718831323726517164461662571524464354153335152535678626572538165157251481665888264615353223175652264224377837541872523532548175857478464336677765684153214772844778786778253821271572663156251315244728335683422246414325117287613755755184333226754882517387738211356725328541823828131835427886822514285621768766776448141531238486476154682378163327382142165662321682262458833351678584757135263732115752744746714761846615733272143535475451141234384525215183384627733468271311388752467874811143585748457454274138733687748751716181184415821133663613487173658355434564136715163414453251133165577132212772455766212234816311568138355544346884512481781532545258171312346135143273332351275482866186236436612836721622448148732442734544212161323884234118683813656766887155286173565673212168434771466842136442658823314226636164778474343687833482773752532237373237323587147386564521661853482471268187888638353424257211225153666676235115187818122412531135118634147354834625384244454456633516111734376425524135246571713163431228514216467737143786777152255763434815547282166343681463648833232333754361536232586214274664886281165268338823732523537161466255838226148116178812362638776167557468743321128878272845883288122464427446455843832233322317311257566111325827866655184234131243658336167621176443147431513633855858262184762516477282842362264738453637115826235821715613736315851271151248532684745315274872464242227848788667757348464532735251147812457335716682215667742134137725631533711431357875368542542484523676623766558427852515335572534867341583348851613528653376416414387357348831661873855288888541665262815485563232224318388328884511667874586528617738658577373681466222271738468348275611235415447721837687635336854585315725855717567146876178365771827558652313756561754522555684485317874174121676437841252782736137823382454187647232827156316128416415322422282675463275575744655412533765652831164158676857383414356611866138713715744186825233368615688463123881564574243533756326853818762761725371464626168382154824561346235631666118472428274573538361653223248821564716384447668213267258471443288645864125748631153748487488477318513712153836888343343758616237767744848848514218583478315188433216361851771887747772422177631822517311857656417272431687167158268666662244574318527247144756344821656561825823835758554616311618374137681877341726448716537365213673247243537625128516821354844268271861334663335363854686671764773745848312345732184324887575121812555183383563472811861785154254865272571717753821176665842323321845158216588871854387872674113766178668327273865485241477485642146813842438723158541347687337432288241383832384257242127441351248751785785875367673544355157163555382871565162816767863567142164514652415177248532328343743146466448676885768327521444325686384547473738316845783416545274511135571754755125252518834518668638877141473554265123125236151634588183647153148348626781263333653323283158331362783573318588861753278273722815155121316836778665884678561727324582233885244217416732677455754874283252475465313585734236628277584878724331852826556568847836353621687121673744555223874666188351188857534827844532521853352354161125574563466485344318342544611673836484686813546846567487738656556353427275138781214528188634176472621218618354332483168833117645577685266682234438616355666116664284311878768718448745368668413582828824551546457132667685313552714712237878685417332167387541781737121824553151571486282153113273585553118172611646165347647536772414474888225781414637258818284115543618322861577146423174811476537817786673412212824733781587257125864648678786157287173143535137525658523153634244648828342542361735353655638728874773467338555518711276716378366422668217131376267352612316234573721386768784477871146876666781233738415142561154138733166725835768628884751433835775777438628366715714846588778153312742471876557745881558217771261142278274518141548362277635443244332826344848863588374256457367362268853827724734463754251584482524216487241331664518684441878611226724645467111462411545248726484746222725235347478211324352617283871623243464878418517514762571448517583416882747718251286422566174833771541322257271216545457136186175288787614527315825252152662145562241527848436837523426358164387162131481444783555566218776812628588647457734746364652638831787657277674563844632716536528285736552171433414847174447166553735247355165113483862415228444727318744111677537724132311754333643624771528367151238121185235568587576687525487166678688867522242885364186383161437363831348563358853157456631671224166762777721476678424757582561176453582141777112621616555772775187144725753361283268885133867474844436888875682878847241287612116527776761841215118723518461371138726181252873478447467415133213671456443231445458386213323611575672385625461872567857886853866545344812217712868724313885783523146213324784686665765752311358563844245675652125562253353148812352476844221828442556558733431236464735217816441663125668162682344477118465778553531184852781632141517421688611568665231878648758511822177825573525185774758311822821785347812868548226568268252121218711277465125887321236738632757418236831242638137251413474528158642432245175887663424437748442425328434618387122164473264718126615525686522184317422717285784264483653872782372633864453683175224546515671868648115157387315483827367443518264642353152548184145773227544252535437613526433837572561375487627827684846355525168883631246614113733834636357532421778463784811354254577213633774758762742312134258576854836211383248131221184415153428422748875868777861565875257451112853721316382647412866572884811786277775264445783148767554134714488766484585142456183528882468567152487844238331841388787611257633878362754676777566422742864436485427514532826663472355428853687231156461563216214338577563813423274722545535256251727662132161377436682242433148236661564466162511341222361575155772815817324172275885122775387546413884783817285472553637334777434424561751241454518843442731331678785747568611262723667816631664551214661587571351383674454127241232687414732637666532143242636621775383646518833386456747112463227413776114613843355838718822834662628126487752676266624315555588751458154516664157388326548187144745352417142213813544717774648688335133844752223463723387753432321584588562483686648678432631833183118133267246862745488552625571587461347267525615114836755121741573377681523651351424188357312126354781842377371422486423251452664244735124557586615144136148315475765447413258588111124787324763126652553875532418521856387442453234451345885616655417116527354573687738375825286484282543445464441878874146265515672842846583536585578653438686765856751461431181325276521256534136427534267843834238547643386316145457872373646735771514514841512724563417642831565686653754871653261212842745518138362643181232158146887243688317214838315837214724514427354744661234624224114185522521443786768543824143424838141818113853685621523623831871854652527821876217368237287276873347216667623341736425334128427628235758332222312554144235264545234671318182328274558877255576288336354834153631282758363731527147434533518768448674322312123786541653823555511448441336438625138615883828266376787521324852425285352654337853312161113264426886233484537471612578586468876665458315724523351527264472378653358755134456483454337376572143145581284646845286371624847128121548638658354548364816186567546212235767463436421871246811424744624782518857551324318861177458581166837778512338766433416843762745234673214144172621621473458314734353371671758887656764168616746343371315482841423158463113474178316114318514512417121431765843871251671617728161472532364568823844173751583468114834737384776247316377347554232385768567653137767586437741833263646563135348132641151432435423474211274627387423227867176237573851668111535447635123771511124478543451124655187688644414426724575571688631218175511546155417522161736761881555772446228458771655747285272787172336527451415272636242438518823215566428226635864278382848416787451752361144337616342186644434865112847852171727117327583615257468524175888661452341216176353766725723373846182823113477221216745386684585364163331478757767528657187544741226556652336124446417824335628711232786171388741147518848516184766152421556211272812585223527865567718432248733883618831278135383131671584444433764663757332856866642686712854287364311213815352682757516617787624722442788882761146564314174523184745185652747848373763347616163254638785178441177355355715563774356742411351337761366553261157443734164666718272375531827821432725728855533256142512383152785833122567737613424374561545321574872218588461377612758774825161134325275272728657831767835233246644262648537283872835728448321575112746718535581484133133635681262156314833572536581553726183175851281381547456123768222587483158275714824351743126735654181415178538572174267241771345452462635658327283518178267267364226341513231528776785367755588111412123343484878524221186252238865264267274367211522477664576148523136514848758576422357312115634117758823764378122223543721184554816485442476478566522761541853153768414352111523362224378845357314212547715464467556184555247837158371731344377284768824515858751478437352686265558542867253115251763658884522776737581323484815153425115436624854411427756854558462878538851123431272126477781447315324211777731715814342182245172264652448328188551882217373487374741651648245212811771678884437868545365281776844622688355387745765188525653456728655341745335773177841473427266737868841271425673544252483868228625376384143572533827266521243214412237317535475677281713524782813123413365874222536677636773163342572525764775647375125484611884723872537823274622384831851826118484256627685254188242234886516526548376156343447358248538356667338854238833734666242161566331133124447186171213824632787271284163573843656466426785842751531843261562486241578268768812655626643758568378117522454122377521271123678273241612424836152513386818866482466436375737114832251822514824162412615348151251346415363754732577758474856667663178526858443211152185452124582711538225136844658724458231686543685564743447418352454374123674148366342652112113748337648576647665316148356133426411731787268133331634261743281532275332747426615768382846862172218312456885565728618561863161357287443733355534564282277582327117858813815265532112836445664245517587458565234185754488623236354174825443152257613258731121456764723467331253884818558356453715857751374366535883547271883264438214848143615364328244833226658246331814262767886561851848575215785585178725512335177763782817487844222184331554732516555646252553832742761883865783454188412366338421286385558647181268166214586244734558765448815832588376385866451562528151642314461158677845652315536212363481513627553157378426541251177484125484818761388316151666672277551765253141731761432318864758625752174354437172684822565551588634547864224877256347465832141821144842858827784435832431315153156457318317146286371483533688182413244631415235751766778754624552776221352871133678364858482547732128715511673547255546273316775566547115738281165238545745221737257668748737785374135228416576863781372221616814464873534847514844878661437137234381618184852156211144784566456583564544538415636417887341756416438744264815174432271822686414646481787774848472518357434144225722551845448457275762312675283444611484815827415872778853463677724751152228128224863857262216577134645866468147541486888761535417462135377842713823227815855155868763366767147486487874436648816848876263834441248534147477477673637151124435248768241887716372242153755267458846562537117615536682174367713714221873671522641471377674255212524627573612465521315143558771618231685835778187127583858533213673622375558555364274148158846814353271685257442831344816861267353577517288144734727828665488375548486875848137477878713157876212627313856526135724482366261542328126362781454646643848532376124885538478235685836231244468677747462178117234637456262278223816451537138513672186761187571746277312771332351465252857725461285675763813237775362254115328417563151457336215648535142364271637718715234855286628273126212241822862275547233414483411726847118712176312684134261171752513373851235855685767872851132743171166158542277365258454154217523585861572468212427334436454312532287816143633762664677138436651766226737782778516642154186722585277536312446816362473553832251368677478671376674528841734818613376274653652486545218382358331237846427758687428838565716481428873582863818422125147224861678566526371647578787852341444422437786435158824468222126152418618278777184843885574685362217645653512117258158614243478287137313624522837823471865821546311241263272372143172275336181637412227146272385384177572242821631543153341576673676542435234257813874228133361248861114383728576561658527555478135113242521147412536458321757467868853214275523735172664726333286673188277636871284427418218277555422438868536253655412187816668811121677386123845186855753185143755781328172873442114375354828362441273277845286166482634875462674412325168385862371551844272121451377455182587782546517623734545564426685751241481712571731874517556376753544388366285244838471843361123147466311125218388316357272378574381687386877564484788327453477577246172436784331378822463772388124478383667182136687742225352838144873741516476146681428122224278363643661127788458251168246334252223556534123134841623545867451348281734213515566647667265817613528317788118363816761686754671533538418378823224566533774813563786737326375386321148186547712281441368567654482116115727317484244332854631646856654836633278563853758722585271526616338343268232566425271766527774277168152672887611224862678464578855862715882432521627476478537431683463633772114265528237247582621864347332482575634623237154226873164753663831488831254655143632634171147381816861145126532862732218321716817264368467286153243354853543381626213656443228233526872315345323184136441432442481155845265464641223767576431245852423546874857846871347842635327121344138485875244264138812238841645644653817432555158525437388153284628618522447821472174573445464713761473674175181787852886484441723737786762432421825712527533262524481776886118857244865728145766313187353133178481886245625883381685186411467124173484865252487224634434137831314354441563773284634143246116786882333186462357422582716273723513445412254348282841281424766787717158261565542615322133575862622226731754128258787157826211442521883845457378835382283871522743741745441838882431516511338414455415841134583412553771823864176536782812136866288577631884167671361236838633143116546315318247344156626358664632382132338243866148472127851121751121713633677482488311682464555327365347613427256156734161435164461161437638551863625128168343351326135715321113444846421441676675857234646453456847358882155384758361611152186757243243315844185623381182287833424747148318667811748815131781743226617535562453143684213843186315663285617551531781876877276574712136257121663722561264177416777186413375327586444441515352141415743177268638431772532637837837263547862811543687716178438287615721523314364681467245147666544125247265312641485275351227578557267652778654461878522383627673166882171142577346264384463286483178857868284628115511546836535512516161571128838141212554274415333648714466358333151765381411844215242687831523875563788711581177263317287258227765142882657626144131851643664216372467314132443456447578712723551464384367313554285623584742614751255352178144521283128284464716488634813813135122433343446584844763764232184313425615651118558536821388515636844125356854578543832532378727263571765467535456441314188876484328485513456662872518627275822353257428731257845216144452644756763585467558144362632247423467242416624135141263833227155812426533384417812675175316718388547861256656134283461567347244764267841673175462324162762356484727373841225422251664721143473531367228841453665333674745744117781623264325243772651711375455712834752848464357581261365517787142284378885827776761416137524428247333282472755233271753314713386286215423215775281245443531756245756154172568245251463625416127663866464686312884641578128437384381884153751511535388262724513538388682633784824143131267374347267143816282644154134641478523411771267853177251653134148516817552677131418824171858128875676213366746887776245816728727453663688141748224715186747726222554781415548266527224468817536473432578113526177751813814636362575441411733446788876376316141868473121264164453318113434714887716725787865416414865375355445235564123521636446511188235766158323685644314127467547256611314845861511642141756377784234333683771812665566528856786726848267553224371535856838618851352245687825424244636428355822543427874672371315368667563751574823372356355345857772547478247388587718432563654283323732742262787277771844778315536825658864244867413513152572712183537522683655216433417536416513462883153478515218558472628148185272563562137658312328287167666883128445347273621817424881626413365275711678551311758214375686634742488426878871663254642817561552451113487353188311644535358872286883238635831457588143374747157443436458548684524527413583467718217443114871412453364321536113534148441544575737735324843654173186182643717341731128124345654633188754111742585684585531262642641283313187356473712165288121254871362661182741621834218172263356384457256487166725836722585822326337124721234775466744863452351873782733553841254535532544738434771531875246847152572633716455818563637328518472338463651113658623582373812428657265246714668317654752248852873611871662648368282246437133272253227344224647334558262862858265153757768841668282614867133646322386158641374813141283866847538356162635621126381111417182715742214373445556353153184768651812623111425176463667647781766423685813524178435668214874127461715855327475335567577645725552218764152787136383122573764377514152256416726512823632114243853365571887261577645178848353645558266223145684265643536563534285113482365812125388523865888174572582684752163368281274773372716152772867142167856672128154244426652758651766228847721725716854271336882845334328181633878544158283578748863361236386285228385271236166161386121711535114633722542227525625423454113374644186751842711177575582883837153467114668526221838387454444241453324482828612365384745371612723125222824855788477468657785563842534733787173872787653213326326536568855338626763285275127355168733485527576828748324835357534174373745351823513245684781543647245575722774641665732311832813686855586772725848237335128276446747387632721175515437636524835311285558417576636246616335637335845567224678148733181424854656327445264612223155362163455587771335548168882253486513527737676325866444438222552278146875454183646371388862284162572871225382525711518566353631787143264481517788816554851323317273415514365151612454558377577183113534157338411223335763571486783625732221237728248635684381636168557476561352766786362461134637384717554548433778465513375458345435347483113881837555473685336768164811362561358162226546776554546633331543278246864538826561684334353327385375563682384657623715742141576164622552781763514655335218756434853618587375512566656347323643687165872426536781563367656631886763137266738275348335611371146623626511271717418833488284267846774535224262112511526543531471167277666673554322468621173277251765513341586634431418467453277851571712531851318445453788173474532378247884824465162157825863486381215154243668863177846241446262353438551723471745245556661345541574115754182736826278745541774838815572656886588317258474452542217636517387123611136832176817178728266653434585585858163721577231853578888844561656638662688423264533273174212276516163232771286326335588111784544751244838625417646866834524835126282682558861631386671287252368178815637624484583227844428255261737312764228334356116158165358832733866177576113471272755341341228475141518376284718175371171181687868171515881342826542258835855757426244633734536841733325827153512225658618132423252484653438375417131511574323338547614813442152555572688787131852487478738814751174854581388155284148587555112616267227247223338418858722172258435356247868868415412141245331374416232877542553218164655387372433212816437583864467743367776875866163413263528663424322286485152357315687556273522123848588754846444863735523572644614633225326851824316728773124182555576165666438768322755757833285648156681383346864721413756265611622846146442135574571565343773512616411725525243267322856212258486634765834227241863254544636365817345745226632637158164543268626252432824687537888816866251782566326575822364734722175761755673164628371274666745848476238686884133131645772152323321131568334343215846584365586486558323226342538731571126333173318836327118763426562538868237254654472353815346583326318888325776282486374867587821326816737173612827325618567821623418183582537726528785613562333533217534476855574258788643776115126548557841464558434185443628388641315686611235665272675657346717884161347421556142371522855343683261211113138448237358442642122334332482455885825621322486684485887136243438687368487646862426815426711624573126652483651862331867517575644646828224181243166668421848561632173881161654852384343116531513712657755781873772262568732752717564126565351537424237722864714562668385722741343745524411451876641661228363187333851362823611474217736638135538532537381667463584866646221773383442872824452666161784123156176181875744286363641676787164738145714275584287262816575183443156546621271366671871388815725122342614787524388353873533114673424374434283322726271534444578431735368357676468283316322565427461664618236871465753584347856314471417337623758112457888444172588341178541783614445282745254463163732683562738743438314835838845378157114354718253741313463354752647544636226618684674631153415655166231817678525858133185113247754434235881543618617677755161522635247713564545473811473151177342462313555126224524358565243634761187824582274333728372553535873648547864282622564567324666761745688256573412567874473828386476813537856284356625764122142446716166822237238812257256441343823486147732344212426718558384553882263125741866215466178115432476214415171677465667475373586634444482661684147365123311651488534131216736347145326554331338377442537322623484525832361361855411251147818824373865663765552287724784682341474667844781443221118155531425533815685752585827525231651618252222458834788151728832167644636717643213683287346845213573645483264285521748341831522446627857342621768821511384323256535431221353146687658744876267527167758555825575156882176453322785566532671848421778687434322282754464313464825164143442574411543155456453752455728733857184228474686132126258417377373657268167246741847331761565158324246714524858821448416261332354344175546138581215225548542764814423534884851141668823447381457885758858311825747611652242386643335276777578651582356572361641864257436374856175217555358133286212155641713211372284486388377887261414454461515382332832528325882583615653571168368533382881448388321783151134651664563758713438357137818662134287625612242482184764364332242527488821132851726763215387418262866865548611443131146566173656754217738416412471482728133455241537121827568427423611321335746661467521446885387364453475135717825444448737364661226162345732678773837711314672451733857116842838378665456881733416762343846786482354581845888236578614675152461565132626262252411452525637744787111768153368476282314573427564341434831234648467567523552828418152512582666578335744617815416327278488333871571732362658366817432438152126762524642824421116526768632511884146122261372888651314846714853454165358877274116717288576162417772167663256657148525573776174537745573787531111853172156765727658324364673774536844656888242677565587666121144685737437448216534284627326231661854683244124774268342741154771875822833344638756346532516582346547732236365347873682452772125676156248565156724774885764842268872263225482174567627312363581244162341881785228677167365532216613517383133644218823421648761417437753256481517566815668623653552847251768536151721874856287211414826164633148176275347566157265654322472775651434558472787314736867113258324127571477363184246431887373771873337346778245335667364152148734764567853444866531867344214754232555141152437747741641637213636452163665777353146717731557576233185163526453656144487228867356556261123737661361728512155781553838817247124252888816623712833326874417271652447117631827727211755283771443657454887858437347881471657418631233233187112733372381166473126286425424274123352547522858361541282431727821822733654746644487274824165734833726172563317323732331334877131418627841367618153853872141724562433787582858735726675876658676776832377548233374143311164142386548774288217515126347152422347812858175863724125726237346262828272776473625134326615238722121618774477451834132382812481363488174473335487567486584411543553556512842151564414738278783258162732883214861362344237277251666811666156448235836158766352335175753137738358522224717114844428655664524145617888865675246277124387618721471238633366571265867184734375321381868865221346514111451547276773848533251255822188711555444733173636148732381288148215358687616146426481388318374852583153881685837633652683286382412724723742142712744161181675886768227483613551644721826554254837518455386648678751728474516165486432631382738712554462538282741441623418652588445857612331512253381247213133674738611538678472411581162444417752632472316324164271356181237863143886127725237323817674483381665552233672361288258837473778715157271254441226133636441428368772266883483515818272575574221754872376586514282125861287578325471328874335624736478418833855263384887327751348557567252433841376642561325441162737641483457273756861162363371151881581845451613161663851887661328478164316446718473738527451472188113141375635641823732246252452132182231318563522815728214126228885118715762181371428431443722671887748475384178137162272154282887747746135234743526614726816763643587761371422474112253858335556576353187211444555642646635852628855362657468881454687822524676363565617254111253672274185561264221757278371313532745855267282574321647673671643474846263648764315848414472445441544332385843341731442786817253224316413653676436562722123714123421761115441743586748547588617828613668824185825355826746363135682638336683255381588231566841178342272521813417257757714555563287473241317227141425213637284271625145735524137166384536413536318711851218512475625674185118748476473268131838482665142553243171485462471234173846222374357536372538363446724765276172517832336448372676337424818677535384123767365531733335432361721828182465263383372665728622651752427552248168364512278621885837778632725438436774858431471671537157311558587866328268877555664448371135551443735717683454627633666431585645128356186138467331264726876126328842531831446246851348186664316852671634764257744875742278375142811873157533174147683722456131821577841384363777646685447146135283657454482435786226766232542127158582611543238752214887758537444868241785265721141236612664265232222712835476242151637852167578461611471884328574344118373717641477225275523246562678316556822655567153372286828754672486287821564146161351628384667777463835153237842847618235258144751741125318683556883512134615251342841541476433632673553123648638534555314124356221173485355385348461887188484724722237361856441853128825435613152871663755461263244283346814711654632174681474664774774265523377657433853666633267355767881827458318555572251544341873773461815882454813685456856515873786874261173461411556817568254213581574672885133254445318774312227875441241428635746336222317231137638731462411845577866167582661434164171227873517152745214167276371678461265175772835425528816612761624481815552421632351842522715433573571712843125327313234861574733756446642551748545728323162525711415746687673343885787212153511327512742676617886546834131246745583646525272842383656136647432647822331457612547864267548347463864755811347587144562822425363526618258883628434857641852284253481376865837842113764721518622136664361531125825317641762418563345672411413812287168725563581424157787815716183458482654864622177864455113312524563485553821238682137517736655172427878742862436686156516862471278863826728628458162782278423112865267515274228683742658287517355447815183512241424558265582425548136586554637476512226775674217711531273325151471388833517177464526312333516524353726233512357476776116124645766128432752154512288565277522785517127884261387416431827448635345653553846575333635786331868454531876847515735614254574271226671474638575635386672737725847362111243187367766511471232483738186612677412887527323415542735431782631577637258887837253312522617571235167773342782626524765585423533645573574434582843886423154174115258277627146287284745727283653275214662433722217587766655881825585637547725646562155681251857174214667446677314216662456118823834411722571871167634846356717117518686422216823653726448228685546172333444246162151714373242783261314624785413417454473464321536647718858415313724238266568628458736483883221588173516353725431461116465474281168436628817126854662367513838635644116814375162435352113162843276674141447145857471652635571717243544557168635268315244683474884314331744666771572652282538575175515388625171235881225445113211437854573771883158772383583761628524548837874881865664638876148556172661438777533161248136716368636511513451821387812725253855488215336263841161856215427663727748832655525622414781383126118778478221462814722886186888315254758666471647728665444611631222387732246221117563776346376167884443357841516461327843341826773223258841561314315116841118376358672243288336757434137788483125683516716746177782361746456355814252533873571146843634338662252344564437453266752131438186277128446781535858384114726733422823757213233484324482574253255346318628113147541651725811823214744463473347758825617367865376426834338668225727354742224718257521644567241627531615423814471242813436247788613668822867426217815814586365815778741834743253558716265563153247187787232424476127744486363384263517437341654365116226858875862383733634611643324132336322725614844716347827228373523851218668721312613184473472433385412348187125145352416614424454652863762541742336173711723864131286148864144877352638477672172751435432713881333352881634842124237377137474126343548212663565855444253682214745768387554817268674781266447537262781223211687555812625338647525462473412531183654523155676548645481747662372616665846115726381816651427642763118651161528225315861622243826287224737878566167631667588481276858842416364667412267674638456123677427222377184277626141173751778237148747344732684317172824182624475168561843878876674546823782811413131732228616445566338315485212525214473358164326628521166377418626135336381483251163775464381858533662462411475268447152251845868742858116725832742227484474662556752338816456341568118424571743184383881615386123821537576636543632136653343854823665434757587732831365611566635158367441718672742838255228552133561415585251111254761157824787254254421833533628185762651135826883134184356387264446613373841631881218512736323754275421464434284261732821343684113324861471586824183754575512878271674372447638184446464122721617735764575354354465113272451481334512665211613716317332566576375736561282838818616181223632868548866153725722342157641674866572274871263411645527173151123742555123716146266337233415474467581282272743231868478426635262616686812763275742741788462645726255713588767157233868772146384818251475333734324612286457686273757513115177526847666862747165442888278674286756581886732537778665673327717483722716551413357831566787378274265823644485477242387847472351464666817444682526312716221426464537888614173881332518737841356418285136412411481347886651776424144643154281346841646472258867338354368375161662433142363821658345672316823688848221147486137153386237775252722713714323526482622441728112373431771268231771648553385815281243282867752618341282587675865175461255621772415282156825222686733818276335143552434175384533723271787277682543456852281314282278235643472513758211381126113227781852311521513471278277585876436428358362137143122625275638872384336821188581863614372442415345444133213128272152471381417148583662848822788811745475526181815267133124281751833541117316167572485364471565525861546164771315212348684446868323376641235725486636263516361283586732511188387537341512815684811383221838728378763831681261331136447216278776654623773815517522832652476422154235514452123545335581414746828133671786184157372787715171458332617676154438353133581185631533781235632174866841365462611664621443813666251725457652723558886837884352634676887761128361831331185532682738435312811717861681311851785847587277175136423253888673632826442256154333632856825572724613127234716835288152628877238286518382368533228722551554366883643232166135827455522336631128441468676845533875513736268247778783436132345343711243556271865514756538434858845131176685357728362824557823574143747577621217214383455216232216587816654465255542883174763673388281732338551775832341376652671616356558164748412515314838617434266472455536447614284357238572755411355868521171561683465133815426127665387312128674112615683212523148665165334718328448665563424685358766168456475818833288437566153146423135664831784718728266842853355637262355114472454871542547531663255171571675572875626836371826832436551378734688831521324126718528264858842117811668761868515267651256117877475427154647614877354135313262115557333417735328224277424732582244846857436868846134566116765156212517827614265848182363846527818266537385478143541776732251841536841376585458421454247851825174738463723337866823483387376481834746725157551823258477875582374638417888342413428334182321255537246585536746175875474273188327788458528251567766861455451453338765433328346728123738472486478363512714417757768621255364668265223364724316143624416848866854263511853181652683633384887644657117264148765815765864863737768571154437112582778366463413751715821834342452316711443481366157526365416523348138641146743455874271727448371841821675331673866384146771474275336482631658642347712256714328722252821156526727617723461653544336575251528352127561873828761888527113752677556314158341383173882762717873484134135636625133838715555421358637717161643315317244411622344873724522352578175451812533434737876335132876844581256426421513452182364467223238754563212867264174766821712725617725713888775351347136166855222161342517573767417367545846455333154724543878335253576267763163366757228267661343312675433448775427848422257858881258352566241443213745837584483215116863344385515576756515125133514886322621242486772448611218238525844276281116774674552243223744145453758421265234375516588861174386667321836421555775145888566182458347146457411547257317264533765461261466324347754654471511457151634471128423818362461236342147272326487386583185233852586466852673328748167343566828747262556682684545418843866668624286148427584624835786784556187267768712336615787447123578254767253214836364743357261574168343235145114717778224616325787423382813214654418137457286436335265432648712712712526145445147552764147675766144266536777342774151221188535836821531824748183468577686221561268882871462161427836762281347831521478475557656151734623614113222266114338255766516877218325347462148262287442183676267188384236312738124427636855543357876166764844426867337121344246641154786852411656281888581715466277227823623785414261288761464152871668642626234656736723456832781736717538858384144376338188368322658123677517172271811578413114336244412868744662428547258455448268668563513876775785511123637211737484642616474654222384323144177526656836532187275324626126185856228563332487816245577851366722211756158868756561215881674355246227874861545268841435264656876217183456262755418158645672161656263577282137567271212448345822584852477652175588561622345733683755688424332777415246366521546722357866385233841164487218254543344731436846812127264845531572526885618361167736618164226344452757187534386241717774283536842774583823148664422211588548718687224225271753785172611352843827415786315157444512673775871868328867365576371437613652226861718415833586372134582524645112173888583547236815422364615725631188627868448748456544115254436412463838461325756511178354684145247582245366452728883728858458574434524642454233732661635361228367486737664254483361331836645248674436311325732267717851532746622735452571654831627214833124453335776685667222851762765244578817443713455867664712184217663228134312324812644735534122444765735865784254838167637788544181338726463458827522445285646145768726124165563175376762836517152883315462835813237765135476252126454882752352362228482836528331143213375177325513143833355254238248474643471682865835257433526442855121335182267427643446788211365567362477564123756217557267264782325433875184348635582364752286134546435112543425162767341161743353616876737148623718414477252557525273556157131376826435246168521117431746518637385638721586554255715778448178477147631658112587667223734633371251824671376416761688642725648424475521225525313148123281462863427676667831422486384371383471588153688273282131367655382618438381665641561334456283438561511218262486528553864374634581327387822232571435482826856373124824313585441453688757228757225376424333564578545486717761242731167467422761434831672234258437135543381567216666315227614213123337263371187432268747627688511881326641426866283167785325273742873224355123637614151373582745131152454125855775887885842685858862666777441638824674865144331876151318711863762318463866466452733833424262455252287142578782841384613131862154838744188578478468541728775657242135512236631677218381244428831111637546221374115884677788478551373137655741257416742377832847565748321555576435765614484357113356755512231568653378425422877214556227381825586785483145243131185764214365722266616162582555562748265253411334151667586448865116588222133252357485211552517675145136245231153883221245453832436815381713528878786477673863126373872133171848474732581557766211488567566356262352577333678188215633458772468381428248524231617371383761174571628311733742822626442688483721558141183376265136466516442471536547226555848448173443756115125446257571164118874235511877456651363286214362838328766522466683636626413431521522265836741418448671172434184725833583733871575428537632716277447483476742588117652581347135871387643486242222684451555358527356177886512484653715831523442866342631452511543823173734747812285368415233876245223463544434621847754134828341737765735345466557813176165116658513673316424166836884318768211151185386138213712252377235746828637237516227154241364284468127656578818327124544242631244753277843883734313324717847633714283674661828121358731235657845434483756725727523465455622472684241186745134845788181533437517727737272671135421336358353183562441267146121358352874571858822656741512823545542416754526267341622443641662825122614726238661713554574321513612542171384357417361478721832767832731768762513115244782872648532575558245463374885145241474344258672552118146513717338836336448326433611321641122511114417723641451432451534383428281336777653755417341361416627334366645516553183584332332163516848378536272257564116741114335585533246731653261631421277521148368571763845367832831118736512234183175148533432382853716256161446422826546756645841286413275836367536882546222312171737625375127532231344632533447526485684212825634445875788144486213762742144374427672352336663888245431381688712268415637882257272422157286676584114564131745633533647424757417525643115686336378511122487314726476357534826624362344253578132336163482881332725658134378858173756616853885137688382486473357333818555752134751485535838235655512237478573634661388488472614262474238757136268365821764185117343433318778465182554536115223114353654238136343587537787126333427651763746266223845435334544876422415771164775246475626261534775123267774323516242778456228566735253841468328614788714126643186617563575574255512447856382261537142368537611261872744544331178874662681252735531672246538244787263812123816251285428633623613571771658858362151588262181461688447411365717673438355223258815841377475563131461362574761461134658566121838636738644282748522184611478177112454425835125574458438536122823167161364733357413323363644733115863515678872628621513866858768426676342818147615666824578562211644348285218661283575824566767737832542137882571635836351636578178384116855681451141645727233737756234521758781882835573115158411228337313783757627236444615355844867757144181552432655723447148413287168537281181235414648241757176851773388864877287563154731535881864861557123432357353442585685458722867735175271676531446112246715882342816582651878134482683163528453624148365868837177713718238771213223211366861734675863645223314322518516818573122214448152152271112163323377248137532544648533644546877863483485228861412865338688344711246242663336133838128655686646457163815818572831543217634467711363261727472245358366745252683381623465761181386324585286453352881833471288227525865252853788688758117176615154637813188444421885763541817221678471445381482477635158626447273126652356456312742346728531828377551772487775551684443153754343114253868746383367468745726752738324311282522514152182264826711782338127266186413362585546336813215716531331146864173644147447727315767757827622731752255188848478852417851687861543737344885713464622117746531382535166233773128256354747587334456661183867248724231612437856363115664667477436828671488372627575253238665474736661411415566172684627651255337875123623245554781358684461111857166338354576665767433841551346228828542881536711218564528331642313354521643123614651278287753181185457572741721773587266858838138341188843572368585413768667362786763437476578518145173558473268823855381528548228724668374211252454681443163584236581584614627533667668573883322667387727886626673216264531432385282874431262446464247361313548737182443128864526682424452326886665515777772838618412547745232767438677432335352868633574786171873547851258442348228236526822165121723587533656374854325623721471167177732764167534855224562361343242582668163885881568633821521882251336711151655473143115166756848862357334155661865842448672175832734536632255828213423372486851738273545447811727668157364538513287448648518342224121523675686523853837447163741333884358488221113462275678664687653745684362371333421158672227583866413541447467715471148232886371627842675238865574385768664363112765634154817566552748373766176731313415456318535375314287855237264275432128868216487473238422725344774645228186736342565467458188144418621685478664537244576255156273643372836864123484558334516734285434333186155115466461722211381731833837544114257584333258347837882872712722316232365376272662531488538627855537431155473356476126661232184227652733372313122738286226175454331113112238311453168746154611681766176866784511523454761316173126735278835185623635217717213424253468323737151131541472888746233366258417814564587486273264856871556266654771221558864257548333488666437726837551244358674374623256781432781345338622681627146162627752536327552273448126581817678522342134785663677576816184467126821121118666134558341626634512281862877552852114615437116127814882251615566664732364741453843328484462624152532365618451743644683616534115725147227661712645761747162462654328116571637762348421236141723812473746818376577281278574632623837712562286455234852776828787771537785115726831423362163643187252136284645137146374257528428314164783724337783586612251212618115252234563123333611886514461342533746718717612868627864377428272226464442722874843346744543526738272573364568621551234355517351768674121547166132722326464368123577876116574253144235778813571735332837645661162245488186144287621771615873655771821886681211648683734128875538327826546664437864327438324546235836382635164537161768467723216616115368473616418255183845752238738136142817528534111464528418378358553421278183271224345385721726678622711616684373613312581648413372222758537856334534471244752156865152824476765287413184268442648242311457134634232441867568713633534561331488573626678233123845318722425262188332666671647843568227351844143775622346317712235644556311674858221155756546426552876617665737651733118338662484682122485638512355656286768668138211246675646848162481144117172517323586227572488535318476275882684658432281135858256684168668717861573463463635221886411836574137186138343316437574781883347652226431431656166875864823344678752411244776583242638686177446132748821318154435365744553357636811513518561674212776247271813284841866724857477356546151112486487275554521457258511862872277887465827441173867575562666545411246415811827711338473621172522213823514552113745771122738847765663681623833767153135264768315448425477336624235137524667565771722335768112474154473656123581548447622622436513657873584551374775654775536876217516833154772861433761133637118566836232561463513551661613271137431111367821842884826677882162422282875443546643711568325283432621725151312642532674676312325574235437438281453227655153371585878237146656717726553734763878447161444276556485627662144118854627668756418715177755656756658771353818548281685241763425257636737728641228885526551562246126656547467181676845557324548812377887334211878378515334454415238538338421525423838233574675815854856718536135438142866444644716388146518323725486274885456547234218855554743142761351582243636126673337678171356358165386521238486476854433455256724343162275612146732772723385166417474353533634826264143468846354162517856831387624778133677428436376733422221147526286465766778214756185324338741526233376164572826336835434815137421758152575437137431131131614445276788616346731341414123273284473267135436668784711713737224333525125638415145135273463854373215774456853267467652867251355676232236738825658122378782726452764874343384555237465342283715682157157446858573876177286244711675176837374387286864688174454482611881727724634186125121432542722577656247667677378587312565624542363674517145741661586341873836744718336137372445165416551451712772462171777621273433675487577666514378426854543873822551375747488433145381754658127731557713647557452882634711477731773663584141855722875423137411555887257338324585451863862623648838721544443853117264157336261251638453564721131516621218536628657214551643622333764785445176822748765535754154131576627273544474461581272257557462611585728853116755448665286531417234675232232727158186266536643256582264487346747754141388834145664472887422663545548677547648275631576837262485841515146712436558624817481618354122375836768535453551416566268561757452744687711762573286714736573135768335773438673888376438746646383833461321877347343872456287527711124755741341142138342832778251338424165781514663317261317831634572648287745318318633423823176141315285665866784456688182156661787173521216552884654321522255814328642338174844478827531423864113146871744348674343253111187115465153747338717817384252367244472853337732378635562677772215511415716248373756228444823641861812277713612654362875464688783753662558588335658856458638565726784115635655781773218768385837224582725177537676683335262432844868252366136865211134647541632138622457767555142244325268843213645852744286461555174557257265518782575162717763437754375118638318463171721613616452571186635656518674665313633178286873245767418163286636666865582858361447354831241571846541766852545281583176161735521842127424635352122126681443882646728657621816177875514628674445786353181847556851577615263374853585711885727164287657245261356325763568721634123745458546578212747762754523184148672643816884645532417738215328747627875534618232468728448841535483847561837721627581112115234471444287872633712322832218373426431526412275232351451331738747251213528637251172184273836826332228162145426222416775275536766144157222361681731277466886261775856748646712452571324613131175571364815286343551353681883687256851441825356672416345315362753548258827544278825311817142836352736438271357255776547328413634877321234338642388148432432312768211831328884121671634744175723643412138187216272352315764156887734114624282828611846284588877367637216225364815166775745788383753348862215586263717388537236268481187314441756784688548832318845154443856547827447317867287788315426318634433837334236846473428632467332441334637741412758117131834646476516848624462554231144786261475233787448576638622622762274382465725568224884426587442658154382574782723217311836477543557147812382433421352145483224468831627826266528311422857868373763815664152678311442313156182345636861345118118111737744548373713281781112818678463226232765143131718711667535577758563348531531676567332185343135652154623373341167552637353232617573642565716873435218182871222575818664352828853571156845156712468446437686588524388183585873771781141511236288538587513716252732586554377156826445856844528717627473477273562272477667181647425354667176441638836318877812354855172886246375268565151522726822171847262881573231412464525813777543355222848228851786225466751312216735828511556243531167428241367641217264881274437221823536631184722586175281311622771743165172253478156343364413256247244438652686572875328421613133727867533468136234452461241544886488251486858577684542552663753168171175672316245686542475352357233732465316831266781637231153845838243433136714478222642457628218773136485646652633513647265186832812511772146771236216524288571771881645846234827234583817566322312445816631772211358626544862168774444114742567611538351343551517642228263121587642346342663634165374261273343764884638556525883237514638123811381438475634383213534683665135632462818248234252474554827571723551757342352466622146238144626178625258152288857732554138567363215422836146617472547626673266454186355831217143363744162475732246438133621532437712278277657442285284236346488265153562314657876263375621321744318363463435388515811563352842843578873836126174561677671765638883572842544722878824442585658358674564685167835584117824288221657215341827626842313711221618471352472574842336537467546226651746585713214484256568124645127768425565883813385642324684853738337885542748744376417473538777427717158711744877575383353812613553155843877162886533564452582817871264138516465785118551425564132145228175473662863487438654256337441315554871263118822584575368128721372466453761631546674311778331168363524857686652876366152185757375514158828652558756567333518144364641388325141625147577788488833156183674288737132775635272731136316565141634433677811485667447167732816675175141781541164817475364125688857568548611414465214386715144141856527457455817184124311872882147488742657717676145273342141215115685827618233547233226431257628777161817431772564786238812663227635473235861286643852512645667517643133238325648541782835588128481451648361815465315117324386712456582535373485835232662266417558878737126366738148373481287554552281113385177658386613377144165385852882456882822347376177265681855142284783155786674858665241886286386642627783436833418681448165451185863353363132362816557234666446641873818272366266528442578384655658147635563746515445388377354526586321473457677288727616512652876668623138413323262618131883151436364334274263485336238785162711116546635152867586876756163214322665418814761285883665878361452635365723861551245273776471436655858547744511282725661114126451145681441811688467634312723237288767828175715412242362151363788775333816544184778513417412382345435323166443571241472888184288437136814624168154788575485874483866656737282266243717326412821226581763358575861357758286458267586571526432687481272782413121735581647857237677362442382581374513534436346161517722647764758815268378513377317748628553527218783671546562362756374831352178657873616431564416715315132815871346316816668271752153563663327122347618372361123227262117186715581161865212863281677847457714354366131521414374427313715275622754234355882485437334315834265827431752821151611413818268575276571333425587268376244262226414238853812432827844337655574221384351247351453824347774137155272677382237343211615181453865281127754643267154225734746713888181553826333745267626757487586463427786126167685433715524461777636565874651431663621273376124884527622247381334285871777586676615463687223813388576565175448226333668271266465384626835176158653635513226831231663153656332867787457476236258385286453253155415241674157641668758511523835545738714861444477434875624113537111646144675788642711162548557335161361415885866126731671346236313336177646881512755588621881531521234557847865756116144634754576265627228625767575748128452578785434226755443366521123638773468613211576681883344423675264471417335441626475725856275768213824414828587342471175411656244433863832786272436534642314187246414484548367171781834762232142773782843845651488487562485258484474565538182182616533368751411844162524181311447151184671737488856115322858653538318644474321225586775176828338851534873462488628484662461853828878177171771758658222827621173841854328417288135614816465241134781388811785777818456688873884461216117744172878474754653722735745423863862156165447678552344775287182477361536147765787637776486853217884153324112351238166623118385155226458831663642628441657584268471183175628884235661412337324358137333864761843178626828741243645565462824168376854526281775258363728176271174366787113282363811257756261347742486817383486476113884277318251118755271581835532587115546422227684378137621241115763476135824473472372221882517282541811462721757665473263384723833884132278235657766278578557852821421385274456314528567288852743481577615727527878534353825218155763511277648416156158122517523716257745676673385152131881622618472766181757757361243238362247153835525552436761444764461372256146657374186748584147184728884618842771275438278548327416316634388263742451465881883638356688187562853188736485172125127674348716117367857556762173251587828816376261556378626781765735334881675383455758487144771164254548617224136372827472731533855171847435715438487233115765221684478788278688338122378562174623258714622357376774673631734875887548811746334828487722762858525445816146376467424865128722464577264548876584183481652543756724237653641185515424456322353884124858381888546188211838634131213668387354877674262362244224331216713288683232348432215636627614274414161383274626844264546376782813416113421478848356726121481671176457665324317211588261316872648485728352448868625512518286438137316312123861538775516583315268586283152827672556274433734816863252524626274816585818178148685127835414183271815215774674654855658855464478441167645674745237661365562626532334258776737141774717435386828758271726168763557148742346618574162241457434486251642535382321436327468763378881535385525623726158552538536173216345784163414676512762485283424727164567468644365227456846384343748263828571566188535328615718171616868873141425377576217657333418783351632373777382818474877284261416236331327147818753847754741877287731857438781375366223586352772261323653613431864552577813151764565847867217862316224113474262334775348761634731253663572864783877463457121554378513551326765761624638437551577588852551837574323675335651725644286152622478561716135562658778315861742846518355825573317785773345125811237751453116387674332236787455238124626826623252572464128564757626787456788111835163145188244123653568847515568233443618234212537754454715458863773214234251464258564144386351248426548551567871817378424218223735445817155528611117126413122465618866472511567348747258467374422167722643666512253665578126434342621872828246362315468367671764742415687627824614257752535373654514264512488531652417266711735285618625552515276127715252232441167618355464182418241435524768533364885213578625641471512154614812457178136864515341362163234331546812712164574725712875368318253451686463887468556415813843725766783231281134658481581751713145485725434243617524368124282166316747887323641162218261376453771432721658571656476184787481565277367238157182738144224631447865717227274153283716385325358653313232858135425683287326522484781664865574176322231538277486543678666321485187817837553463723182157347153553141413365573555831183534811332383841366581743185765225525325415418483742833212478787325527135565215471341531475352641313775312838564214336172563447544528151823536854486751877238554613625666521873327664753343867848276644165661168735877273238821517278546721734774167753175744585428334673435771776663847272536744667723226465453236281625448223686244263711325315831687313724741234347535636867136753653832175185278548122465374651835875188365774748621563261233272471676623217548222775252872368277845567554478181275487683771784575713257666566352581156414141555145152585212436655457615268735315817757347157674121576164613241481343133847776745781263234555682485318658233527164641163485121251451886726764532813118128582664311411657831454222478482141874425422284884685127766675876564173284111565535216888367422178244463644686816436783728352435156568733862363873662648545488662378367232457455388421474688225454846768672273428331345662684888871534287113425845135312547887576545635443574674257485645445851522744358314378462327542283448117277674365361727625441356661267555431833221878446172124646734571731588777565271575676726568684447183647562248387733174731456851365346113284274634832172787471576717525515888153523427386142168411357528617671812353178451526434161878756325375572546572611143226324256787883511735171721772214485877236733184236482171768845385551144623632112422628383354568772875826385566414546273265522561655257446161412832228233772638762843787265215887226748127787731534861776367866488138617473836875468526841687413826576482774148353214585635545514257567643717413721746416521271553128888746576528313628377383128331875768584226747678613218472311185343218381862435866374232138735451346273848778472611781684574776422215466824528756715562586864613488616884156888248485654327478484424624226475316356577671435174573154262471626312851788418113122387362218872517462521167665147333668756754522158361146721324717672337163281416381115446145275851683258165226526673237817426628657561247765426742161521133681625148153516114478553674774223742455137157657213738183242623517621831685167557831546861788151583272227784251823674847627678448654545384516217532685467845846478734133253768388458163423777425866346352217814748422361657456751455157248638171583421582114476528174767432816835377813111257716665228638528223316616174188546321512162133512533218573158814216826131838386441337882386344364656848138627368362756575371624776577251128555157884658356135278834615477388565452736623182318258331864764422864613452631757444473166524626418566772112656281535518236688815558316217343863673838733288145612633141532784663523565571485132862732785635167831356412112311587642836258766666352118878211836312162787762117744811417485258878783568426583163234272627343381876811743162435757735614524414587858141343256682145323634175282187687683164414578717841428535712237866332467785476266378738425288885338565325851374162552461178858288142333585338786648585552226245625725775174121785611124236441678862526624286862413224684315134826767416586381517535654252725277762373648167188717361445324712357153436131788468363177626116838444757426416841544843464642142183264865325676641112118571684558772248776145765545656314841383831242685486634355781286377876276852236743173217657666484358577863653437315632486831276362388183157367788858767252245468318265247644521266151866656384331827288863821117311363647344444535122868336137735532783686231251757625517317687342536463156767524385516147873715535362644837748845185416754212354852776245886571656383678768112284133623863526352887335818568485888721276415232887786184122666253644768271651556115771373445721182264253784756456614738133225375288614581145776254536286427623712433588563612123443758467836277421466483651552563847582375681418256882834848613857473621257887788144337687358352118377163428314878468237131556424427231148638133861851623675134136525331284766263225776232481864525224831376858861456745844137156377467455652624426117582765562365618542187825167647414341564481662573457241453387114248385412564383248131672111871812587647754884277777435635681451211874721826814478232752137133153751218852243687326258467262544526317353477323745132177862772334131456652254514617472834123343312146428685612848387542623624544738276243471564511135386237388662258571878846163246662855451474311834123674857362518462826625253225324558845743818556424686367241778834885561537253712871564188136636625363883618658844661165548362841434433411445136463466136631575587147147288483135841328653611266646522131165835535537583461256737448648322815135657274421212572385831757128328584112421242456586755747628327774344284274181316573234863482365661776265234365631544111155271716872364784872251222572354877828274112486885667485551446731672316767574378416256777523212741777425274517255847385144834215373735121141862336155258653741348427521611367581255477441374428851428148273542336472373321428375124638324577671125753142754777171141668126554323715278351418363177112871332453734322854882588883364537222463716718581656715311616726647755783573118765423658781563284648727242248136344516256268148124115428431321541152776158164875146554384435146223856363368733447164281688814576473225448833336788828844842161774686387261268548542185556363841476263858572516556426843366566324887844468688151653126151317115562456564434415547721283331631856268435575522736677466685638785213122368587777456784231711448666847762722356212577517647383856621214182727587353711635461456788765762158578425485258373485761327882164132641266473176822468286883751331215277783651158266175752134736544158514771876818577721888843386458325488444734757231286882281436124554517587134553343837713756235641617264136148478443774266545161746658633144587588776713154622683338317363437377235873854176253255653551888424284458314713115421183847686615772237157215426634333684461781168357662242781123253233646385168185537653587261586515546262578445117431776614438646311684848784351714788525554488726856141886873634728646858467856643313412116141428153745643547318248556433136248214274428643234655666128328111581675224187218344412218712768438216777254731664622518481334377284448135118732313228237767353648253655233715833822585477864245122156371521771748818113881171557654147616455236273184141625761312316244588728534818814645228221447733383841751717715841553241275635551844671732528213327232326471842183532215433344245156847383384251573711843847357634385624128243281541582583888757756335417172317322247317687271632152662466366615571426853337311523451367851637786585381324122248585222527641536256772524582766473812754585355541275183452388147884261286672232821526733658323623141738416386558317851876818277287862777224668261162231422115432328264155121146618583581412644742437784482462643682622637888871223182117345578425387231876574653533784635843755182814667336557721267286382643853648273675837711583373817743717177653821228687426711712643833381253124213278831312178214166482174386574753625442546437544741138558773358382436657417727813115527273474414554728321163558531778586544172416884526581543486262682153527667827461786811351544721525747572171884673371163636275234477843657616644668743216521114112663834665136561144335574654162838337454664472473825434718866768657214666715654842555512568755482822858646863864276346564425625816713754541444533233541887561622418454465226575867823878482464372376434543366724322361221153257355685728113455586624712424431235712373154176536815443354684776134233185288853258654645122168768342221416458671223376748855518141322163668313324657333388521431428323368788138254884388847651463462685364844858855854815742574771628253356313384586156681445884655646663418315555236885611285552282825735733875587753123148382177331768123111536813324384871284524362378571318116815114588367738253151815116626324884844861624336632438181658157446841834165215535677474416423764437227382878232666214322833816355747374543455388828852224562753417836456358888777443251377464714564818245281245871866684446477544682222412572146133353453161532852778821745148627824251266326472255227718413832733725733224468671863758656658587568228142287122228451486137676514273277883315526238277452385646764248818238357662555117746461644767628618342168784482775583364651283628648726315522611856874325434416877828651817247843537668778381674476123711674438558826512511538146358335364477884883253461484357788628725324623668151867113118858877768181238413164662248546412481243658463171847424237178438535228581244512283145124633663583275614734255174445556126171116335563853147523657263642341427221364538748361343131184335864756573813587284224287886188353637353324438247231645415212636116517518843523346127637747672387625573246188481218532473841745374732225522262247267125876852371631542761177218676554742544442175636523582877553267343554887765145654623572833328244256516151654881337376176477167571217423556545338764178727222648621148454174367854452211878148677487311667115416828648484865543848765783364722564414124511722125613258185444357368641167241822578552466677614536112767557258124668563211177187714677414888866338183373172451837383118218665465164452736542332132118825782185662774134377572751661268724624757636288534153718732857486838124773453173444425815261827676274258264548453885473886755283761383326432876332541441273362657344343146741134378188624852273677117473656738734434812464547525336735117447181432537745811622321114271825425547657513188632864634123272431871416864738713668238312281833886617851344332687377817184686883323228354453578116414363342116148137653717226234571874328276557261843828417627175741237753478785556547458826682365168442758345557218624223572776873583368868425816775866235468634174327364776467622215537641624228526424583216677568128544625684553354421612135887768721742372443645256886186276138567658757688868545734214828273241125861336388214784271368387273241416248765485731728555442266181282515558687337478334548365142726874186152455251274387832212874667244746182376452482842762856123544888585788235872746833725587547133553713723427583855314723247617164144875283648845232574817367242542531228282252364288548173556611561353842623851138884457714142755777272844315117564628556531716182766667667265687255612431261561726471216638267844281181126244723521218832555426445215224837126348265128872188711422113566175678355854528337314123234242815171116362471323611222482522463661647332268386267245165286133381132564652371664178652371544878658713377163738244728114267233767618817412674578527538512472734565232678744362234654521438668285325574524847737314332472117877226744766367227627146854155821383864151644235883367121435673323671172724236433755237371715743172748132425664116531154112375581632644543275356175672257373542575456876715411715473265614834753185744231641587183121546645231241372612446582152438154335818671327488683157821154631238371345346782632584475557637311347868553238162327635382721552575158862372257171758448326463287483378274311165656662261814883633567245563341473228815113152425447268786176734145116373277436532154833212872183654842861468283885458475334531765251124662642646258713346456533725524881225856342278288744184136375661753845546735744484888313681257318281755417552181476474653468855875826237881788716512846871463132234543182167124445618114752122341364361577386782833838414373174161217256652387182144142446444852862657178728687788884717558144347271577536515171541132544457548124177832252626777541362613236735214154865144488244741627817387817874462642247138173645545861637535538418624123882362475178258863286746615163163388544722483451641831386764172177582861221223876671665441827123842748736448333117664187176555711175537843763743576185581845526582752555518484423177317187646166857178388345683662517817738213454363863786133818268656416123868453648588863351246718428677171823856823428445466746457383711867254516824535242433165565722417381712114553137877152317751116532573773785715663467515146616466324663613381457762327433214516248675643542377634723363348611382738181321555125267511733753557442156788814226634552314551476321433217268376656662882356182783533421216632464236436337644771784233223583438723252542472558548638841861221752274135243356821541135238721883671741324651327143143362228768244887131563215678874876158145656146825862253426872878655228582813254647838842536434455557267354231612162865287737834585362757272818116218674264824168566752241832712128657772244547282733126711551438414348168273818658121712524267264368762776743328321467228343128245633767242571178776514288582273742788261434282271416835453231422656374384774658681151352575383167753372331485332383128247667172823252152686836733235148523186778261145275544723285316235244723615416874244236516234726437425455186354448757527787241543382834411236341733245621515558858748258338553342656835885417113573467482824854236776175233533787214611413788777536235324674561341762828865753616185537585147173636585472623851358862631832686666332745617863684542674366243771518663888786752366145547858216234167166143685873383444338827511676583284233672622822452144764743557547166115266168861242227367281145457227715268763846658556175256317281162287142435117634888274824734417323736846413875363251647782712231514864675873376218234178838758716864432888887314234213285737425112422612667157577164874234866474625553625282856423827131424237281713745465356818751651612735621357643841133788365141172852133755688171151388836431217314213186655361845845734437545175266572744442142345435847553158675183874478283473635338745257183562528164551518842232713175755167331884428465366248126422616274614461713311813687358887767546673771866215865831326873655226555833526813168328456144171618354523542713725647353533142268662728134371352783687852862247675853863862814774123567461572151226218586453748721777224348512533258775287533424158571622532482364858567487316473331183226122855447162862467225448424443624576137842117742353865476527785843625115373734166123551218857528576754478333635136378166833454818671278172122224548523216217218634742421372411532573468151861411751613436344316522468441584344381436376662112433576271248531628458156721881711734443133146128652534713768611673784116422788625577865727778724784212518784726865438821558481576666727413845543752658715315133618452788671212286357314812125476182836412483517811642782113627826766527356673144274351267118587374183435751264582674762572517846112325712724844728385421341731247361827668261247274686471461574128177715482223881435664727736134518358765677844177352713653852118145687356651135567617644545756427576417174753115746417462123452221757536677575238561326277521442474817545111623676677183525655563161785115164188666246487831477574634741127433161371636488236852125588617126474112265774314168277634354732571842238316414411488737332624562536641346657684714474226457712734165761235515152281578274642822488865675332417673447436411557784351525125332751611513751575125457111677711643724742836885556687418246874655884147237533648128836441718232381755648517572471143784561454383368514121765674484734777831321354264376331868814187245835136668153251558545286365171371754286783174238651346163342861822811686565145526552355588673442347377641715867638525671328534355243673664867412421887626648672255284566821761518357236562445337826861633668485332212557768888741546526473183535426277125822785521247783763275724142823272332578564121416725164445316324424233288367327866538544261762811473318336155522242216224351227756283776258617572717478512324166482636352878616573382828247225854634438677548863388181115883588667262236647214534443211611126688565345821631248551571622481158165681258837618635683732661672358525311214662615372334452236422871416534687838153273687477728516524876413365767753138836317365683157417482648524534484135538615117724361484156216516671743378876338733773274561322871561517553353836261458522514718532578411735235417524265336473336282732572762112831346576324333522652526711811781875248532562888235186643613478544637642615411323822553533547117546422243473421718634554718225168767882341248386758314442364442425775175281685471377528315751567153332717473126725233161426168542862623461738271661667678143617814163878638553378354722436683243326573245166185181448377524835826362585158464144654372211283755278337821754338414718721746772818433881146446143483165225451521264558334667378688163244486558562687372655258124682876122744367583132283477356535621838263518338638428733668327541548463481133663523485438461282856561828528882851266718623312263721467431185882864542578471686644682515265751547668723437516767316224441586527175834377684447834346676443664567757252532132484728574325587624486377247317546637653742812731241544457257813273117153348223217752314178536855233147368377318654572878843685778788286282877753812116656626265742666355444386387464131767245736581385516615332767347372216478614734372812342484825453533262117571675546367576868211461776554473411664887425272788533527873427638352452383761621364622478627256652814183141772425574632361773458315675686735677236515743527821422148325657336148466646864453114268766433222586134615452464771264747271561788113141343288566653244851677623383313337546561846821473427758287134424245563653152751288545451861472564121356357511371244476241257114413218742312336822136741725583633841485383273774886637378817767268378514723711266536364335223115613534523851677317142541628881256511547534587188753563645515321147162525871776632578821571118763648887285831551725486411127875848415234424541373737238247815281612332478814833872685676543223881123361237327525682826276557547656844636255876222164387154717631382465657255434342461263331254383186653244657752885728157144133448262173538314114343855725237238126332574262378424415857266681618182725343461428456122418274824771563264477275237436377756345473416433746665247652375251472676837376362187577443271763877145418244866233581412736764752533274767262542717547777541526476661157541485642413851322433777255336657483827665822758863841633852386136387262431513558741574446662465664556388456662323447482755852535541871875258442485312573168882426512368585511345572688163628831257372341587288353523285456311135761864621138164383512754252254417164583513516145466347451543653465585853873583286486813134386318567731127833328665456435855256818478476841742514146488142237427463167633627568141678651864426838336288236884554683337411443732735244754521562812885315456436578151235374337587777124358668323318882236656425864442837581533521428342167626328321524163283215754655552824322821842345332618785831483682721612755656878626663866672847285852187364128686164356625876665357537161132867634765544112668861674147757122785832583653886471527831725276432885721176176422561134162386836285467546354562725788865685185665322673417432671338723452626874476341587141377362858362113767315611766246364767631523331676574754587373826161533282582631348632787676545212254271115367153686442318563644536651621824721275431527544525668841163265524232462584814165688588386661882371234353454836286122141475464388473725756211528836112258366762411757111732453343654745472137875637437277323324688144677551155684217122421753227782837683485635242524755717688275438214224774387256683848378313525415834812417831561422458356517724427775623563275837148634352744342681257572781388763416848783727184778534671775433463723612181466745485543577721766645176842684348755315334123658138686182756347833131654123887762447826667113853235181161358726637426653258245537644541573534767315841856877182565121665188245643846138386283456525658337758183374543453768271513167157514528517868874767652713675282128141187452411883668626874211163164273535766725268631878215212275253523685844252281385712188777483725654358772552376734181174734163217331867683728217667465815177318747815672634551486734175581432823713131218624631118527647756554844744534466888616558188575211682732375432782452174683646736813646845554334561648615131424271252726832462724555133686344338111343545442581623232557787887817133843474314135354261825725565164355364762774176261252411836131232768813657753568242188672455175322878255636154535744628532238467655347722473546672228672762417241462313122332111773457314542135278868361161242821852653716126381277272847132731723157835616832156432576158833671882452878373274834153334387266832866135131848117471311711333585478253332326886484532273373632776753655884643173113837325275168724681755376275252154546662275226383877265751163347418666852243832238623387862356783631183216281471842347714831666121725116423561232323214583331512541222554776515417624744274841164253865341661311778254348738512174871482427258834826846538448347613442554475835876572331745775315556413526716315134824815158641862628542138635335477575156132627656676476828558767323787162211662188747118162815634623586327851221262562365435618137476674578657475512736348816418224883116133567137317513551217285352552825863372768538542557347568684883141474557576242854757212272346347375417833617483745366245848361265476875346653616313124275613686345583734418776276244653281238838178468475134747262684573566558534562475188148856722271537881723866672372256223481315437724565567836232427635544672382744216451348853654284658784181365355156657611876483565555631723325471756626675832845411548677161527363832351528624252825543446468812865287221777261433584538343813285322783877765767786756457627517246323366223661111483736667237118317542853375156712785437852428321641743267644122382412386245637662456731314763158878675185638155317551376634536584462167611316517828147777742486811776526324864336847776256113663712253574847142442288525323586536728764238614548637678877316856317374664314654237663367167761151885128448525615268455763315322116278184123373416313888726427286874884355251581732722361118887582671663887127262341246244134548613441446345757557272866145181836342885376453327233188654268853354153342884736616615647134126812423727617286434111365237635816245286654141774781884414247534228487651264223288857315685245534134811534112432834434868241761274534383314415314647612636423417561651186234362735213343874831654728524887432561782122171471215557575162464632666448643457178341758455518648515226752784562115272684322885713185662547864262451326727623384363746687184567723515254125112438471151565183732752444745113355754836588264247834247278686873335328644551142535625234771548462811565887168332581711377112845745588754532224178126252122876456573257571483486418782153841243817234658687645152641413466278268158121856571153223834361655573247758722568365253555678454162883667321233226342664348754337226558361173455786134125187131748565468266578755527538788618481416823546254746355174153584438566737272864157471557831888112855547126878475888842444541241412836445643672741442655716781837781485665811775515732828667632216223471841685852485584558382218587833617366828767437543478368838688158483255733542483412385858737381348234417332567875615881741345166856183826741387768165725728423774483745488525468172233322338216655631241818426321234562362352674343166624535833653676873175843177841428743113465414187466631815381418171146458188115523273348775585181615416375342814727622368825482267618114587775836665812581618823658651771635725583648885135624888834818672754378224221474845445845416431613617631122751225425621236831117448218881163742353825514817564368851745527413685887128575438743437468532472412167575183313256486814853766827784317727715781548816853336184741861628511188621676163363543177172744762447426254757245118467772636118754655371356246327854318462748631286384186417211553851564347872157756866314632474648356766652454311687878857153276128485727864354481774446752131443458632424527636622726487612653558422334483765216377587455381623532325632117224823463774411262174326455636445816814757888872187228532211545112758844634388515884527637778155842783333452168667128758614561761821223565643515124668336644427478217132665586264332864515614423133843118637114534686643874385585558756388781721278521828817264628665315872663657621368361673225683388487351683554387771745237414384318642611122121415556738676263284167815814275832557337862278468743333431724117333626264488342886726265726325727156434463164761427212683182668142744758756848862743577886751732516153845236228163832776262812157434677811288252255384116863148878817684473318525621787145448116884631268265287366415821552167734816181826513818621727434547181477774762287578246784647667246885633676815721315671225588413258332211866215245374412631267543473311853334728853154283818631667665357672138534836153343876121573678544353276375142873336647353632276577886232716514417267664133742218155345526264371614262544828735387832551773762842468278642275722225431424762156868584427646775116226254611563731776837658127624136628155728262221518172853322785254136625533424544148384633773184187735345384427722422582848817424713117614243682743663433424326364672222682852112147882338637155231327177344222425825115677551261763647142251367751132586157235327243856763765621428278482374573487681174821453285221766861427437254257621466653841524771837732554641462225451715734222812775516841584462824764827315556712853523333676875427528846563718814733256234788182718514226184184274168772837436327235256836483571857833775235856471162461166482256656585275641184762614477187314645312871135742874744277656287528758627331511618671167814621242134665187745776642425275327413373618325786471725553247776376662842544183716775811122468284752122333317547133583352418127161838733153577476443735135844422215277151127736376221734484415633747351338272816388368467728152343745767656514333261114556458353313471143613716724581856368352252511362618178657714865218232856274721171545127584852567451643161242725548247513187722637652635346437682363234431362541176841465274624552834873871711818318813481558165737773271827665513284413265238322718184743621346556564876161883648348484652746458725771547644177127556588773288137322476857825383215865758745458352286757646775266461623617228714524215631425613446275542333274335723186617365376515158358646676828325855583181657831755486221528222674731718541334376532724833844723263343763883182611588882256335522713788755164885842816233522171342577254731826122262571748717447666558833672184277846686634277622166835854151247813348663281653456125372454437338238766176717751438636868812712485477153413275887851316215452312515327557843422814812328735665873215867468371267537366325787146467534336865877612137665814725458272313118254184217641232428132828741127641128445818588437436578561373214722635373847541371147665618581667811285185811515526244364831866457247643814864482113111584656118424755242285344221427246273848887863556473866385116728236431176873288533731226683264684313112668678313652444624887453553731167142578514757326322124346331437887756624788587825774327852661421883564141566134513182557632534531853164782481527887251683746868552837324238382682263248483641313485884816815261857863777243743288447748145328475862845736111186582445846577286688573256734838387418614827747176145157312362387787634123514472745457748175722582434416764272453664458827515652564612457445547515821517137561427585686241465322774542444351118725884378425554742782883428185164528656558724768624524723332514823885522568853574645634833673772262431547218167488657122351345532462473264766375248127823824467311226428486231455334122173521827636437877587618882164262581387767562468885633683588873743477222177772476616866383852833236128286665471741545834788677857251246568776762582643137655222834655362846674518473353277618563645247138717735468714678558275346431334272631264222381223741132364464487232328481538527852561714712326246837777836557344267844385227787587845785552143258851451567124731634874535311224265311843745888132486811546367655843843386483486312883626348774865831225532876267464386887562635325817562335123735352522375345867435772612771163385224452543136548133854748725722144445311572385255521615556718518854271314244631352178214844412114433131544873674578186452552768268172143212235343348884221153831818778755565268584558637343613483331813266684621135668481731175175766271856374377551261244812576753468251758354728835535623541326338242286783261734856525575566818721111471684443737256412868658317127263718843286673124327858851668242438188475124122424715461283727137536542153252364422867657145544464728581813146288353727588653858317867125481715341528138862864561456765465145576315265768555172187571174585728248636721743842221564373617251262785243227578382428414471862648784815887455452288711244846217654725425756162887764555526844768251468552867253511153674875328345157813166457727581427823255145251117175636275134772341525126317178874126742422488328347521256165628282543684788437163722416221658367583758717727624163824213347772631673264153525188872412686264314432755831878444148258175417748847184356342756367253767317757611285522813787182874751647121852641362153318727166447327786788623648852787741346567458834373242216658517452183455257751375368445227146572351316822714537655218487363627721841213171518332558217112878451125246152768612827845416561416515781113348726118563264426547355441556452433711763771733553178213255856181142225264244161465385316713578283162577668666624718141487316832248114532288836877888687238423613371733653216864431365178836864312855327344512642337845415253253458547368525681421374831126347673247642584238877876836847368246237888725245781357541312717628132587561252482483354144274722632546418272331171472755271323285111656662765578323487672774218361143475623751478778324463578573246481631122725614235348286742163478552258482838122355262556331677584426126376758571264125628686525624433622116862557156388235453625235587484252113574263776187351543153718371277136528517863618461676536265241121443311757288733761524717438231345562354131671866675765268158773116842342421463741324847424312318883784113621181723874785235123628518165146626765653117677841712668343844675858484412348134175828543714238335862113236246514613527584676678866174384674115263414234268837824333438766266471627716383876645244277631427752581877676575346431815478581833273842611367558213861527233286262455633638173161866835444433241886535758434431487786382741735822242786641741888665465325417686722811342426172147252443874543382188731138316477813744212533623533412162868627474365756615147351287112867836641244678116621426113471666156776862835716564363543581524836375132722112635758213158762232758832164872624315776277133815187141827125286373851346748111225121168461856384346141622273814412275232887583527322151368565573457142836345614282816684517765277152742565713728178757866653868644534647388267275637224751844777747322217685518772511886141125816384575354462441386463136735483623246448886717434241248583238412482736672167427713523542454162776151328285836473735146352465344848147856121467717123625533226527478841623356747346374836258516822826877871535466614216778448117888354143766311542652141841731626352733711217232487288774736565281431611676111318285273236588217827878524382338828433423662648241835583883285176585534812633656425562831811275444184252825256887441314411477138218521623737573317135473581153143585533823362662272685825627822877211487632585368447118267646735525322782617244148826511174754875277423284814425167378483836822248842861127435133537173436635855721623385234617637116458688272751477326536167437347858528216448187838671176837337231752678374888647325821361163542626585183478123742218243828774116732832848741232842833875761871224423517283863134884373731484526555873462755135325621153718832354758185747121548622484764466583544421512463284165812355483718158262837165172554752846553448822617482267473517171842556566138388245333737157825516633148758488318518472374135685868243738764465485838267561611384775767622755154254231854634422716188532626823144457524673735575272234362661664276614163143511734824152825857176446821275442282653164833438313644135154365575321684773135132855458162285421852671655865237338575543438861836751636281611213267488632575658845164483434411486236655824558118526132861177126516272331755466125387255258167428183833878575743378254378853652331521574438874827884327311346475217856116864863452771377123321841336134381483648574578481428413243523512647877534852762418427318636587528324233238462278237637582221563512882211727646635487824736458711565653715266418116517577834862584766226331841522262185455743512175656886152123746113347787127883235522386287278458371236817414436158874554448441875118361227636882586148163867653333828516831338577771786658282482474115717442456842877323283412326627265618521212468287274285126756363444355173381876612677386642835376373582671664112878765415318784582757876624734888866176617554813775644866356416488117434288555541262668461121426484746233758121236364716578627134417786168131141747785554173572882461274647748581331852861775171777853133565234254728672431884678244457764376461457483335881167878481277376674735235468155662536276361215473723146353225488252841366144287546456272464574485658443657266587748527452878835282113177751276861773335173672287167346637745582371271388353558123847271161576772551386282244245211828523347182357384673883874584373712746546748544513757253612686174857678424147517484365316272851342876738833644273326816221416127865625514877366215885217325623421672238577462752421147478142443226136854477564615768323284348351521223351224651817736845345867538321653474711816358144238783543275222266544344848548168628631857536453675165131684657335288281721422471853566545662112681215854162311813338148326233352178375642848648547113114423655554587138874744365275276385361783248622411752857535752171563352543425353815161524258163121125365676818215772441735438417418513731537225454315877237248871411684423884581521625244128874821656157154464283764875457855314468242646751768143247453257485713487338864652333554118482881547584326271355475422727733683447263262588521735474562825371322117135271718583736241142645674841428847825734126482413337762823555545147586867624565788642514561122636142748361724111845755312371521734678673465573533125326452274236612331547682852831453767872312672862125485557721866248517435518416568215367228766247164527145175313381486215253567842413874483621628627145626544835145434548477548172582624468568268678784642284212136818142565188133813446363643515862464321738618616811334565773178876325414145122662413458814277776128635741817745175331772318284515434677735218727316285873568826561814447165653454738434482384116667773356727234224724363487465733622546385718881373625632547637156786275663553377228778818472345534248765736225844578278173877236557115674183557676681265233146462777116413434312537354874348555433334844784384257148244537554186127173262662173554567587413473882615828775552876481858486415382462621685857125335181516344864176715464636435135282852282645123454818142472151231835242125674688786662416567652351835143317337323648586724648775845228246841467413432214378834177688661864177538742133256618124571517512178738423585567217778334375113716751688125368256814517133314284836666347472457125375155143567652385828464576157576757463678542472641374613325248532168316837273113731212218673346541141444338218473518471128448181611742844552411437476177678257725865151215426166761278514438326424176114325638476582143485474782281717215477326662776632846426586374764317241527656886281517227523588681572538165462152617381122177117135858756181365243838112825726585271263472275385388318482873388417582716625225754372327282271232647827658262326452551168254863747586362145754285427422117285245885287158214534736645725532715812287854574114187758112661522778584458427577184438436264872721675777738274648183683476574456181638417183457436383312865162377422168838341644174424376874728531434186872155461467515884363885185482281853265363238427422611871221385187824427382338272828176784784254812154853683661468336622111573574756742727154717732468678434752714558647523613443248274783238128562115453773684615383663152533255355817346325353888366237487324828566481688884878865255152881883828225285751757745157634874171832843538624715376553432881365157258273151237763478332227824421883821725615447656281177866824114855844275728252547545133434882384555174225746112732112342442647118667768328676538636862212135412475253651388143675343138333444677851883832843267482315384347673278368228428485245173513713637852547166177827517716744624147448554167765534144535268231311744416423355478873333721311311472527366362828714734176714714553672575213161141424812273634776642865253251224333423217231228481543837341368462411422212823568531873417212147374483313465723472431462872152486835356614353252361417283368574347561317411726523651276278617212656453263812664581624188161751623358645643868335864463466222871376847428765415118226428147836854245154811227674385847527422613734481476257813433584455866134474473537844314617166468652425531868882772727358655168134846565263222866147841822188868164471113322217883474445622228185581281288471766272525757665572782777517413281777616352638854184838675116333476744438368251538623572182431335625138653347362333547426336361587261746176574613567466788482457365111424263518733338518558364267745576611826868268721733466853314763218757255733774857783555546818828865787477355727384545261451358816583886638871616237724526623223848748567565313883762823645564838528436881226476423322645818468826731525234842554482626824521423783825215556718727151347756464441713828174622614168768342888341176378874323578656243234138831548346331333557224734727726776546476668768784513643282564327568273821553242318544523676765588526867534545732485747772558677515883622773836272633212326752323818842676166371423431568825256513456334612336448458523224615826268863133333634248267475426118432385684586556577285884545753386586255275516354261431745137333653368554724555643672736835645111114568122464637863716116341717828373844171428875366673166254513511785281712711113467775256624534621785876734545848626787536878157117383643283347228486318817871341776642837363771431131827772426581232135732716756558322666817554647857111847534245774541312164288651451255175266641712833215285156263885213428153241184322711113781688226554426411511587347455485462158312723431241761312616353566332368427431542287228481782617142278771531374461383717446677478366745565681717783171531358777614185352777567357336385427365716723144283646532365651718616844236437524577317142367327374578182622248587888718683434728374781622712452827564434463825521818867757168761527131464736177177545326734616747342458712211814458652111177732656767347538285637364164148528774131852775311841666761854812751858622861286277351614416766118612373545355644446277625312673321454417881552665874426853781628424752352474511718352523887635567654476534655643338486456288423377736156238468783318141331877373226538857414384385286836632458742182557485531851248418672824757664838734877171262768646545582864856511868474156831765575615887351616314822826616788814574141536517345686885352517518134214257528128288447841287127686716383122821511452842832611278756276255426464178861134865158614338641352668176631641747313243373827818266741564348328726142145816786471162188523133614465546746476235832117851838811314537223852241683613465264252753313184186816846373388572654748646826125323614318284222477758481272854272218336325644542284743737128214475125647872343152413475883561177571242518431642552751126461477383877134676647518555557765518388586161448771316358875332477424141414555113638465123643451818163214666234166621332253468235243224586866344622712883811733313625652147648227188255545225535554281311775754551265636825167381711731524751275268487278483372152112753315324712422316352541755133225245774832763561286157633883324718353653416753842324176173315455352384242537488371645144342577273172285325751687468131465321287463378811146125527587315743453851384274245454616235855588842847536851135677255764868275736822472666771828331876361887542841178843686348253841334388714114213664838661355546268368351351737614764611432853541366762514547174267388838214568353848785726385777317217137141166831475167484542462848647253326526235737347617455318261153375683426886786327268318834188334564512767227846623341348328248365683578487247778711512233624542771735761245131162787812373715543336568584784857636237452417853855513238627171724237541741333585746751678253311624475238858318888262818424754883142521226213188173743785837186486628741162447313587533226536365514448242172473717362551328513764377888164813754647414213264551577144111217481525463454666772716371442258667731134348425181347636742666534824876321858254354225468586846444712213885416583172327247548258238426472828348623442346657543263715428572526145481324845361676854265134745221655644718445411663178688771382164687148673771827836852431436618138543466452224513268128253483386857762277485443431142834863363555147265562273536237311784121146246163331425638858648425483567753535555356836782456865512735627541266413782441373548786171328268356586543776572746426282833418182657112376634777431728867278775821481525745331643622314733477841878616882272355237325567723216365715212128825434843481832358855286473572273786771236281125877566815731157486772551271258443261831423425834218834148764615133675784712385473375441333481153832267547746141877183783132284284121732573877642551581761671765234816235188753175734772715578262558242457414427867155213452368572166827628636523387815121254763146337215667436736384485527652566286666841778223722752178525777167332185668647635872676548783658188267431375744432381822511466173868418246331731666438676431137885583477116751784546175624684371436741347681471782511642777763876237253182136722133163847332678883675654464145315373233665711486364581843454652848233486646676171531281233358448433363116342658313888162484845848373243547613341335313243543237732116162448741471611825848238118371676436162178145244637322822818834376673752365546875726875762435721278234837273862251817152352811828447511328323284245656553744483113753865453772256428674624164862324271333662556785731213665768852478128445382877231341564752617522231144361135747578386747178436311371416226467332861522178138431437278467114816181737835815748452366823631782257741514254718652558212242221833726774768856578744651464656326517843386882356231253316733565232673623868114474411746581544733652188876853482413184723547177141245214515715155862321641227523544232272763835533452135114566586811277132425147871648851326865633717371423586141125127148413743681527536775181258466242158133812824773527636428352865647627817716874213872324825118343215875333827417313511582288134113586718712612237475541421428886723513483323143882212253812452244461626648128127735822817754665722851231683682272744515481464613887576626873261852472821634784181544366534857621757816648638234885323876247116142518264146631725334338613111674535418774553235637737787265718367428316322682832525384677858755683583332262165374714847644325752221221814227346787783533655281378151256547448628454423675815618525282835438116128152186553124632322474534214475487384828886361288387427488846252847441831637723653265822575387253884654734216547722123247436853827374453771281143742235648314285684746282361335326411161812182661722516633436857615362167376121787827346686153428123231154436222871724544248287666171753366577443424848151541173777754157463727258521173246724788543627552743225767853234575155625887418543465158441731277751837386134148182284714776865317461216568664231351787273548746574361826551564616646432382266581836586342417565216411635828267237887323431376557317862434847431331157867865337257615554525467282764637135337118866483524232847735867676211672365171143255826718883436744773678777858761133663358552843481625383255617721147163588681888661786268418272352126165641611643338126856572466547253476554387387256452775128374715254576862482824538427826525812524632385235183446177846217667836158275415674125331275412365134431825462138182634613753676358658657262244251371722684832324781733636747853676638885355277367857871531475341171568762341166538323873881222881824587622785148672636835124213814451238168344817667361532823828134144827842888466211861733121633284283144814821337881163875615675111165433424517817164428685754332437631868485876378482827518182712661437144643847883752577547435218323774858718514571614538132658541585141537578114762234734865831586282854678358683475556858543367854746875516446755112317358283657188456814355181662513185571852637573844165655627547744163665818733236231665344658211627681871734213523686376353374325781785548135147127613347533635312156627281685553881221144126514711167876653777276785866875435776581345617185564853221724357582827522188858266538541387688248416857763625333855716432311282783474832318533887244487674463658517167787757616287684153211235272557345726554863713265182112371443846234551854181817573481528231582772336132137235544573642332877265358152862344765234284874272814511163326457545637614713287147565363685416227476857148337242687832267364655511283184516871726321583318475185772247564863122758568765728888573357175277158312265722351356874316175561473114286667514316885123686824832738317175513134433535765257621411482315455738267577665856628465165262727386824638215661488833541733815414253282118365475175886548835475567476686321738433688353743487524362812338473882352746232237886183358188186885277462172864728435321825882682828323237384736468862661825142818542751688733445188222814575346381443577257412627611887113546243887722637445376244218861232425662248128734457763258246825736364245156138142828844834233712218374788268663832426776818755163161256633311681538276444435643518672354354871831828564673246284723824146244347481126174365681778641715536836736438214312566542525313526228858618288538773514626723261582157175814533217527146318373442324273378712728576147678227527458734762317271144455384722364115657134832441155566755346268246772642734868641216553274452443221155285588254342116172534447421222412566548661447716855365767776626578214747872763124627884348827333854844683576475816316417415388374744224347573144771232847547463524613636544758813136886621237248618577313485846321516257331655684247747174678411152443276158377668244857483813175721214566514132146118547715763852543151626221171352313783336332583488536815513647445722754457413358862253621642585746878184711736681726784758875438727634774867583374821116551264653282571164581725367174641427488678836614653715313116541278625653556386668611331217732526478845386535868548538356748181647318488257425366881885675375125546483374786431771778116582783347654887447686735463341681748272516613417343525163466433277162883658876662521234276586865373268485183428377362475242787175488318464323847775871481578184314285713841345678367377113628245542772673766344337636234485816431575451736136256181313618365628446157132444755522552488325854585881761614646385241358787453578148783753837234745732422834243723683847846356716871288177463445772136481733463167753352264217742515355834847352616132827315246117633733337628788561458888164772515585878657614351853458466541667823517144761783658881814227854643684567525611165632772214568611171243164242217461645533888436544255522642733541362725121634474586627578757272868727885837163177628264126584477828624377271487336843335871128422188587312327741285434683752318278234534726516376536152815132121513155217465764124726676276458475342552165352358417165471286681335457362456583333116642751135228431756813337252562716878658372775837687526448362242516573216342745564133447331222473717624448683728888338638452661611472883758712782382832874246727536425667645575421273467742431873522757383751888626121715625324343428227281256725286267485886831368751366457641258843478848342435121727123884626527555221141754452433835884353624445656327413727627127266363532535287438236275156455242867327471651168153461843474817785374187131746423651424632278654278257632665416348187131348872366372754887218444343252753711846242487583364327447431513854115435535171477775236631787643118343815411225683373155181465345361357565547623642843218223456881623565281552832785773784636115144382566538438567245222383818273672435255684652546755651826745178823215775342255717863134415573545432121522434861754626863427638873254722554622363645382331264768144282427556483753352265348433347653865332536813715182386838231883848548368138826476376561283857258771377377838544362688328212686661417813686521815764713471551874822712246757538123288517663352721817782437381862388328652784835633512422352155842733418374647817834166868164365428425324455853645228525588882231172371785886357841417154623843817713483157774535375757836276247628864835774737433678468156647211613713442432861347852423757548368226551661567567221338615445863884216843116468177161887142687854165631646158853351421321241145128273823527574775526325311811272116888317653221368687387355163378167668443424256133528424532555438385811757864643582214526468123828571365157273248468482738737788627644826715126823568353813683325686787465146615658685672127841216772385788238362311435686186777453343787467812732472822337115516442777325775868714865715575236746175524158356383386564182612885664823487421615645118515746513241338338741472116223762422272463265285131777175366354582478583818224687462746363117134362882248657286831724417675277372331125887616166155286844558163286788375756463745455625667544523313717374686671273455828758812312258886126381128421528464452543467364633363171173731676773144141544626121837815845823312372673737286585585155346818345264142122712267683387438281675368463563623545375272181616745842778213442482181214173751415181278765671731615683782244374758564127646676456823862172211255278376242771435784172866277851167163476232375431588485161455238843252574768172212746321166251722213351414372153734266338624615583425226511426761773423175226445784312563675122611122136628163243541784732314272754654335333353577334623824137273648148342564587822888341441267438184827742251152727752456268188588177467544626587831245468437487856768534655372862886211253853754182124286684877746424438485477857121236466522312614237176322213575655312654755835148423744632875222627671226378571132313775541258881754846565271288337375715527474161531854463257187822162681187512234328336343227817722841656266486787432753635583164734416124738415827711171218416578188417481118611442258241787423872823438545213227131624381182181858813736446635217265611671658644435674175427848453623752726657851485513115568512761615874226822622267278745452515575734823524656541468821566486121664755114346862125526338875274811372583174471548761481157333633467587585141762644354135558783735584141322357288621683345324313733834152356735685334668767354316515572464746176211344721526643154672738261877315135224745226573847631314362768167676237455113887636454782647242176481285312667281746372126847716122732838212822165381513863314625884786364562438638756643844313552617142455317262616376372777684552332237665577356654187733613755157272647863464111118882237574656464315667814464272172861778754567585162838166472356414278734886646828722728234355866852835831662364252481811113618462255754471624618815613674841546668712358477458126683852425476744784821535462874518512614822613152211863467565685343574875723637558613658423642863382678832361733683567576757652871125175712574421744313655421315413671227173534375715741387478536864143851211335765156745554223725771146823523161342126248222588744827517568873576784218736853537831457764758677433854486278213852614482544223625877126713323678546855766774146612221851288434876542775564875323484471266768864535473831884272582816683468163583131184688714854724458363376215565574528586688131276264418138343716738777124837112428535415138875667614425517375284256454837532184835143581138525836343682152337431684844154666766561441622524353423526878126681326866118251686684853317328545374571847833568745336667266781325473273836854744147772385564663211125124711742355684523176213474253464711553754484743636323657774126264831215344385337538863446725233683674725821541113668821662882357686674365131187464133158858671528276571241851753835212784433471165488574575327526747683136872177237256272414835625444456141246636543731877362588134568841132385826268864766626636654315317514112678375668432652483524152572852221625352752633763635287345211188252456538462745127584135543452334241511416276755674774444656655161786484222584633212213347613376865225586553125316583587358357142333882344513741556515342846457582451372712683617856556752287124768413544428456853575352447848326263287616342144882574688188172465482233854757753662147626682588145337273555316364144716262322785385113135366653164255533662552751367641364138113485147172746122625285832382868327478356546815747857457456543242656582812652333135576323744754581245136258183462888687567111268253753178854867166685127838843727764248115282864281713313283245837143118285172212348368555868137547715435888116881734456511274134585234634312882641155423481454813535655175372146738466676622723133487866262466748652181432511671888443168713554181315847265734871725882878214611411514482171268227414253278311321177576354176664515621814885584382211415821343713862638274414748636677835551816881768647787848812648488655752542534568857442118363878755181855275312264178885473466332787854168666578857523262115714681556661286745412333655456117574638363473634372175416653161727847844853726752168261836741778674237523565757851677437722716632625264376463334358712574431251332535553866286682543566528285385117561526842572742658411136325836658772166331271456367866388752534262368518627738425778515582411786132657576338847526244761817846355172836338833742256548588484785411284734683664751111131545624824841121458423767575248211472574865647651388535471112683716654747378644743316822688738718435526114145571826374541433174634872583664823574813427437615764253178326325563168162761241477861868562818463448442578661427275138553443356516211365883832728128545788772448221823428723152631585141627568552244582441346115261345326771783823862762716273686481838373158321674557744123153317467865871778516832313762247174881657355118851523751734117526823177573678672643684344655217865771638587525751726821473618165641718335187644322174778148123356384327734367616564618523272426743865325752377812863884728621164457586142866427572442588462465572137712667126745158818725668883116744672478761435485344471166473724252181643673223426835538866315681516362518537746288457322543773513246867527467656588481612886846827624275583168485311132816287588327633353355882182262122742511238113415381576453278452633543363333348778584331255211171315337557583266636221846526382372474836746758438226727536855651567657413655315276535475146313858732338285635721574778353171343782125142264652421587473477273462631784822157385322721768376288153148212326643834216758374683665665686487232235513845773228573621355815624536754748386375884363387584633273537818744243748865755321743667122468121514475442574125751233532778346487523126275553738522574628353158417715183625518521674716317364325683313634782741474823553478577116846266455236841143364318866634387674486615361374621647531781388167266434157166184755274361868563458788865767246523242535682355566226123366177716721641321413631447628653436776438211387818862823475456366844686324413264762838367578363566113412718235268862865373876234532842723683276274867563451174243317275242131717711326538547838828333824233714352374737788542144674845124415831637217576517627676146348756815678111864275823786262863445715434842584118312351163738141571738873743821851173646135611735427476457641612466441223774433864472624555275482143224258362535674822834458168878367383321533217255458782667356753587826671166483117544671213788724326872554364534888337145481143462726877161484578177488628728636514258665672236732652628281231571866538716881261385256143763822874337875661386123545128816385153543131584588818238731432156638674673438858528413382484316638514832172137871522826135353536253523621521427276838312585754236288432281282666366856716858148757667486473341543318646148153835553818623547517888454164838888544542163474741381242328322371832152765764225845535754662558351425318875167568623815342557278282732676854361348216716552471368447376147145236756436258383188881537287612375831361555252421121168455885231473476248451563232215747316536265278858715557742162223123733145263225265327153866157855887388723734417648525417273535234634363523754584146364777712372444742763145255336523187447365416851113174688878642617458785133785415773358826547318721668371258766825826717223151848125624345873642743281113178231642271514278243484423481718673653561617685316616654184262111842365833762182333514114587755455373572738888732782318437374486125848233232672861687211685634416811531711677834661186226786736477346377122715837544346875658174767263865742115866381868582218575262238621521214511616226136862278158621673451512547838533786611275147222224772883785415681131158638242131414464643878435537381733744516354652136182181521241283234654176553663132812153144628643115563828752262852724638151632537154446138815117841428885157777684114464464642532274268745333188265323625788518736742772375351767455327886853516386162368452244641273678132472171474571286377742731765668764642475711835253816286363716484457286446535622828318813853588841431674134683554482853327274745757526638785148287451672466816183854587264467354788723136437247481858373626222387271254883414244818534763155375163785245576877135185132417836418457163687155556125534435335542576181121885246725164227627742166472554541744182658267815651566221346467447523778462838265227436231776387148487115854762174784526562382663677287474831135421838385472328287123557551654773835852265357873444786553385763635887614816364628755572726151334571326717542673355773565831151114145776316432466815147532334842125661187411526874278812782753834282757585626112526476333514716873168535117375246755287118555354622242712311731276782388824516568463523411183212456376235376813756777725784712126642125551357318847386875865634114276448431857823622366738113121514848758511388357254734711727578168522462562483228368458417355257816128866676175872723463265486347515583267533131267224531676466777444426371348336248368143475664525536262862815576274654683366475538836123168214873847424416125665534843711431878741347675153581743314642652448881825451155475166183254481212711868124126324787216178585515683478371457176235845321878281468623527353152735436528373383336814225847823263313834463468358655247448232217445614727754351332715345235446857484545327454153344768152683148884318537341445666138545414428864465335758764487766631247376874122321783458585143613786332188217831176182857552538778528377365267833233185826776754762611214686271261576777453115258436117476262787523281613621285137715254546625147423183852141541182366327156631433448614764588665882322126378383333261327776458517781558287733732247741574826846475242167726788161551528676342671884266558317215857871754555438426713355276566758524211332875774234555244767241262558383576635148212775753673656573412736251662377255747663635453381444756784587414645273453854874187271725274672726334376242646656562224737716187687775566631413728811141737234668557714544552518411264823443426442727848164224832514616821868618757352237325417268636388183651515487272161312284764264778112162317735612618788862458743424526727216464681348846273634665134676213445565518553867812367732868551564177215731834624827662555571284612283676665214582337281355175413333381634245362565142173371827257244826118635478174752151758341135223533456612566658735527142224443686117438653434476837748622732217477827754686184784334216445355161758384661341485728346541263445187837181685444883873217332345745615174754485552721141531334525743322714818255316877632734872563585745716728815663443385671516863114371567558186126346574512814765214856671656857657313553341787477571857523275521122344475465764322376735251613775628223631316486534827588536485153545817615145364756212735272643667265632216633275456446654785253541611887331228735565787346528864642417236858737852232135487352333243855356711662883756883485584517761183678426672854321265385745328325651313547718882817516677318817448261531871868236646122728711224247752856543233587318282137751841783678311323673461458263114714783227757786754712817731617278634626483247584171862312178864736865612613552836623521438335765263411561823775414466421328556741271844883841587185733532456242838128575761585355515758812475578156614847816213328864464568287653131432382677521516611757743268272282426242663428278832316634217436345631766625581244471728731641341564547878237823367115888151254312323171651453446843543224385425524588655461372675116827357886224343365413217363843335256523232635652318221614814236418262552624746643652323673213441136872121262445727845374264275378664545528664812614383685613817765325547464555782228147375275137256761274636775664568463881154855287826356114377632247583388352861653158628746576617236433154257381456325866285522331653868252881133422867584655556632187113767547778834753735472122321687162525383853348378836218817166541618335332632361253841442325568318238738882627641682745634257287712655612461812171831481575384232164314257348424417227242772862748268381672371687516832275833226681386351288338178748866261547874613345422454358814761283747385663153365411813753818828368688863238455883651813283755458387874864471646117685172136368267133271634387867414817167481427326515365685553183471857684735254574226753817814717713338373885821342673173531522367367885372444444328677632681587884784878224337636455275151168465844313382321751485874246211757447548437566318857523633124116447382845467158851472622173271785632572634246713747678556832877212856738328188871725367631588411353843864834537668216675634374111311657747211134624372453856457154281562387152523627561756568832151677773355114145887841356251353186745672277652757627444158752751412668464381242663517171536418228453815412435662628587521757646672573283413568447456878662445274118337637672633448737412522288316245877414664687647174246433153763337847313377712671181413628563515351777172767635615716245652828524388667851688366516876453325246363348682731633484778484736141374564241374156455831451813364117225345344456213453214264161131818141645771456363278656138743514574528186718415434456738421662775847714285112612657382833165724427755372452623884688588456144243838253318142436463478134338718263685125536635142151858487848836385754126646222136633648534486722367638161453265815768478788167361214771876218468623256146651154264527616877881852777558371885313431861665155227383257643748348358446213778187786173546837732456162678156653413726142411274185712541112744745633387544668647325545556487773845342786338783632845487717572773176836526115145388545476712181365655867574788187147354634781484658253676133642113644167554583165551525287252838881417723278342767576265687582542577361254275132481167314758814733565387666265222835335611317642674214661364575735367417545176744334387185528182375133543756411581136813154834853132356338138787457247113513567467663415865824461241142168325738316614812568615476182854853126143471767584532231848642787268774672755622744827877557437222785333218447522671238881431322187571862562114872852851818686866632377415315651555627374841487636852463611342857226121272882354151864334837234622381115285831113118183473366335234335512211817267774288186728113442868778866351835324328862668523471355113345437531633688466477435137637668268183163833765214553755584157832531416655143221273558674271834184732576247256375586162588358435515333116533227447712836532462877522473232221864442534387281368227855748157124155878114484521287551244711527184643241388347433778854132768668683675614345147483155168242265645721341672373783787354875268643822846671528764148845131226176148218567586173554118628311625328828763373681622133854754823452143185184351837287588645787111721276673768567454211244621281778856332668333737255338367456541185735658287432853446171436746856215662277181253366875637363858346863787587373511364843431483123671858425711767485855855514514832886435525353117361756176543836172484823258431856118617828812276473575516128174472122563431354663137245743421535636881884531683682576662678733113467557871551836742477352385513448351128271743274333734854262425357431844187166416741312425564751688458757322668424114856578135682687571222358317378761287711476513332848245742678533323188734154457257278634587427448418458764268685278722267678488431365748333362446834741675534266261455345662576771362188517632445586682335241837552361882754665322152781115257171723572627785124378235342467833125368312752331355148531476366338762468642535567637252385573323251113666531144424348438187835212872755515375427727767436886474332524742365874356718223517222645564544347885327868856717335561674688233622221174638476718133756386271148836615165564222734716236722525128741824477768128181471652774472126728264526528485233215353466378122614656425831244152657512838812738364863145258332467824124672565488846251435868272534613776113228173685615882475618661554322634342577757327233783631452573624647866627226638175324858764246277164313834264762363435423813221184234174511574777232443688672751231448765531618287338267243188122223668882158577467385876275186875312211166831444374538256463736357475578843647272385272835815642255311354228613838147817288628734462266586256518271877454825768873788255737157663762266565253721281712185761337571787152676624713451355433556824654246374643183138234764181488732755458524733713635718377124567754866827167858283441845747364246211752355757743647442882327488175132137218184335165854753383777381553874841173255727283273461816827823176144166647434442758545217661864648745576175136318761452825523154845253551731152114225117666863833428632471486284376886451717766115678484583828426673434472857338854473718767611147377485546471433571431463341814732667783541254517557254585585845768658678714755366183518634384442373341281476563378316765855315443434524337875878561753448546257286658658426615632314627337624433285761673141578418847432213643628282831331355716556351146172348365267257843438772476282858684386718672476486462568855221741775265281815354856124126584378363578765866488454263344851387882226781356683248662152244741345526716712247258683817773364885526267544467271251416154347434882678231533157141251552656416562448328373655538542257131767484635327225246651371586818853458782428212435282788745513214241181333821123388177838258266681716486457456646354224238753473231866512124787523615775656115177672388211556375315573155733832485585213257752483542544286258385725135351716142366537843357354535187238161361566778341666257517177517564517351818831163348286162587345455777848518512816583868224628222416261732358526273441158526118741134277111632156451265674451435245533111144848652677853187112372715225878471826271675152868684874263352865167373457633578455821186338135683137368242161173231231851533182162418488383161873163638478358523461368885287383351684237264686133138585725512814663153846115675557276755275873428432375183527178516853467665867516742141168746754241183726124542273177652682167443157141753213172376752872184588815775861757252856638777556126614852415246552723575234886367545831746152627866385517614381151323814618847412131656224543528616614162665216325142758211232768418876158641347857184121614877438426638618314788668647717855615217577554554531584167515317545236884416727371116518151357227681158286777373483141623748236166173683147775274285333527211817372622523161557674867235623414748167788184658284646136317548631586376875157864117772462332752722528273475348615284381121116255823511755141872286535314112337838745531282781511321526177227166552221811278845645683152774557871162263857748113248545681712518573458442783711121644228751127635842553433618772753834821678428171845247425454218468526385233611681285634346734431382127317377324213343777436731468348138554382473717882685347152183865522537773234528748341746623816525477862244582576167722173161688237671714824248526857763741818787323318752842761255548833581545167467311215152234757657676782314716217385717621163545423253851131757687735614462735363345616611473817452127532664817813163711455743558367781837474745257288341422647662411413817482576453847181261634745755743353426833327186774544827568724245454246135714573533185458431421155446746387453473643884787545217452214834645874258254613124644486466766782156143555122184157516814376123887687651737616122548218344623522452774734614423366257758271547453547682253662885377733657763617638517431456253657441415378526171887781736258585348486675343116616543383618337438374623213114751162412638262115518177858868852157365247152337555534336228725887474884516316253766715474435581148118526346667815382711258477578188621355677478618751472421345225676478817723471465174223826417643372873432671676375374562773343541445348413467763881124212243467517232648183531836137455335372138528484451723416176587782438311252216623682188366635425624345362257476442512418768186657258653438876637755186542551272167683146515364728476741563572757327387858242321365516363627463353677243167861553224721178882884763677152724471482774587144814471755222153417557415421832432741523614576537341176387472332575384265683442865551278187826161351673712723811235341228821384428157145326677316542531282827338842445844578871631751568752252752183377342348822664621664588642442766562312361246575347364187248123738566783713131265618117583481764431166844327141316273843852838138745516687188631445718185855538418635485365747772832887181343254736363851142881278148424458732214527763574648324828762873556647185748766312248382345144486261566236721511381331222335435127762154433543243365157276431687575757817753246241443732571221165311261843766242373563377318176524581351534358246581778625384846863517652253146456412173663153321661143225281746257322377651657625486468185175486738863488254183512848557132532311216523138584425526262842214885172444723333772143625528786266462625684636574745626345822217545663838368136267648444882172543668138156525313164674644823763146641513362562735864417758733716267385278342582177227563223468786275684335444523432765873231275584734854417451361446612682668835468424754316143755272341577176671582847275755842158284318127453412666242737372274118211228531777124447627423332618688377831175756881458767261337857855625433867634466854631431323618841471446816323114447281888236131245771267765766377667454467176756415238522288477355787715318153763876417624332264411751487154332686816675628812413488215111214168621884532488645655342728838832564551624823784425625587441111357474422414558557778435248846143446778516622664142155561252823766512162611566848254416433372567325538468423776653681411337455873483338377252887256866816453826356551254566765557845385137335622343428776568685576625876378747162174838243223447615851587273846744847532721724582757816732676831482741132711325182553882226726555318412388371856223117731563285436364268717761272258132155444874577685662128144268168842275348666433881718721286618363477512548373543338211277525152186854277613137851847623465871786558567414614266361718156352147758426734315423125656533754865327356648145374245716561426571622417148848546857248553564722778181414866876343223765182161825874632787183726118476542757526115234323728161767465638772333111524522861746531433816571321622341688583546866828368677426445378848455676474145137616215851447138875224767342412878358824835738334826818433341534461333435867517858526265588648243845277342718365384621265716771165651255132868468531544782475258681416575773485348181131864588434562728466726441816678373633345667851817348851527376811344564631283343664351127425715788713373182482438532281147527714455688865612815564684485317784231665633268461574623267688265355322552748742561833845375388434124878633514431534428624341853422416378316651763871443843835837268413411235228266822815885458333771721814582177771636823467162355137184214827483255757762668561171558136227644851412874717655448482864643476768518366754371521531384455663128837731273612451478218342574783446885623844146762748678587843387547225276377165218164123484721344653361665567148623772731278373444348125648241172436216385728734865467812523587481226816185148532235535454313153764562777452862755325526557831714857212856724888186355871763551542423227818865545866564527633684833825612364428872338656578458527711836733362736155582341252778356828618615575752417532224163185687325252461652783526415612827154586177332886143161472842711625261448837184465668426567455583116221714573126354212538472532718482267386368882327162678837684611433353878538366244312782361487441662636551243766857114187137537562445266242434726386785365635553713828314523652387634352531173438622357466442242115417351855367316233631371561662772563365863458138483126643766554477414867813726623582835278434848671776534515244288473561521674528386828466551676672845684663784721127122447273841712472824713845653562776314555346441512558844411763112332444867228335281252513555523725551624142834251265473317568717433182485655761454158381653443243222467584241883868858832242253545477247523467664321374164881314748668286134867116184262656374738353267847185782517634451275358854272642442182822672736825247133527372585655556472261832143823772675735162383632745814715767725873223486525575766826464111888244265225846182644816551132776752275453843331251642813173761243121556527522533687585854246851268185416365187166783177468252844843171477847751188414221613864355331377778254841572151731686128643647225117282241143183232433164485774444353257258267441551564661357618185126713725238885127175161516476675363612735481582466874631448726858371568168734862335385441372673617321387862137752487818116771817641748583615276123873744187278851685245572618417462646726332383163587615862578825251547872162475381161337245214638448346212828555538632143333612316336617716452874827638622857788527888741573342783262781556443815711455168314253146323148674832277823126156268273871774718272351757251563386712755723181577721415382845241887661322222371728865262863554313278812281124666531746838855382368366275744327661621171173272414111625261388156684413472388146527385873618572741352358185616337166622678516677773568275645348255486653263847373411427858273165274615533473327258357623647612218361573731768685277858821772862584543585367284422776775824677736857274417387615751214686732562867472788628175632642227511334522866225277682125255144584383755828242726282454546241666686163334845134428555678461237866641543634217545262748646766551872145165556827545376857384825521682868535783614742434754823535362437377463784274184477565788323165558815882878487545383572163446818761155354761634831275187188356213265762855887177762162836762572568156822416875632845687444658516272878636425858723388213238251777666615424676458454364654561257182467571137368314336453826542428325271743578276518355314864773615881162138114664366557655234262661347446227551684321775465473225348654163788555154143345781712413375483747364866341275431412348246782643578863354447672788521545772645118563517113777656575338774558255773148841784635354774433574461645651521211638335473785641256827574212832662654282446612683155561681873756872382115763588764137114188161727827727161871564677545854737771648127874878646711635227357715576477243212242528378861363743466715376566481612336281827268125762186643188128843337476764663858637363462341332364178766313685637535467682385527686668368644866488843463517758684852785726213558213556423286735322111653344315236172681128788872287224257244667142827888434133218182116587134437326162575184165832243467231374772475341425533736816821614747225134525366826715186585555841737187128555814584711558612363822722334345546866456278241174375236356342885288815223214712286465712483653777438827887344231477154862233181831488757643663471853111271488248885771315348553347625734748434171655453674218541112552832854152284381564642585663427578744756132232784858275412751328753845525448385786475533767766458444563214734371678847285638164818162453743847825716685758753854467664147118711146775862814816343726281687647343172374245635331318887644414885364188511168268366726651666263751268771554577164743477245867344337876837155858144147863126812112788151855227282286858862523433263777741168444551825578647846864247683385841365425663214818685676515412182134346821711387734188611251161271675333123228612117848665768556322725727715333343117661223168486648287635368288561134625688345861585335722447461434813242166631376578137862677787744267342514618333743636465324617172875143161663126376134225372781857227135167168464246235761141612424887112875533124444571675322521821432586128822125473447645557656658575256224826422432755422873545281475186255554317554762558521146175351636783328142127274733826281622453242161642724637128361585367378584366137278543122827547672468125413723637542841112525381416124635624576347588668427126734446576747213547364211627126418811267748331682175465243625352828843784737453362777858321513414388344677138453511115134145375775315774357381521337537812111648771434531326147762575343553374863163235726432315234467688637224177366548877775388342721753562671126737333761461812241335353471287532341627764552346465587745522372215847622834137364531371533431327812441538513416565564384534365236167181147855612834353373716188383167733635755847141177438635624637512544626372786752381868512644452565644433327654481484111865176244474637535482547654635728827617626876641855721642724856555383735521855542231761813465726145385546687758168613714622261572271432662556521482738712585653746576753867321835778626476127858626387375274874557281745246813764261665853847461788848551821764877854441412348334787718712657153844165116312782776327365131515766361847537324262888483866524782287278813444727514223516837414234647518828882628141167761512114166834725722584564272154622572688383632874238556644411877213463117142335345367582143647237542752322542776461231484435848311455374218473781728735837583228234331651365554346785458277286166516543366883173368764783217825342862888654553575433527715356486653843425431485838886747341578324365313726465135622482785754446463111371686285467564443137238476456571256746158716257226541448184448232822286264556378148154653764476265454747384888588164286444578882517673228377283716826331654242462881217145822813562782536842784874662575747884841131273747623627744888438738381483267122744722516682313383822836844355511548466642543747131381855476614438165616566752654358154251881888716137474165282386888472166736726581888813587384681688413256844353853528735364741568427783446873874782475172233271737567828376331421665743752171153571347333556365883574458664346384885778712447147853367112432662766425386416877643848446351436221822557858554488453165681618132623845487328428354332787737716665635765566515582632461251612435157542617134644566624415542382757372427731352718131477683527611484315275821187167275144816744478878487671485283671242447672727715632251285475448134864748637165344451251667861573661712642427142554535368735788253844264126786613136364216453448748726335612432642145135472636366825357525657588651263567346844335737376747367831533841672445475668554218645115264527556766125357814385255336548852424762531165453782864363837484333618453535762226174112461328313541276218773582381662525543543516572813841886132758621242415723277377332877586743412525433664573376216115431275535444183351427743231787341438652713712214245676865142446556122863258478761838385556612154663731746654331488178635812264337571554231338874873525613738328167631221754752311232483643334217662651645277175717843877712887725552685861478858623617465355114338258753781455373352167658736268772327563327743848142717451137512712267216156141515773584687128881173581265865136312331786567253731271216362644372265222534845388114772278343447352553316667184564858247178183488641677854721264268771257123162536651253534212688244255636831788235341558177823447868133482447456841663637431774236236172385646482257588382435447237733533283843755314213813556131571743723273457545632823845615353113385314515131213462455582127177424611637212832747844263362741377315365255355415851176171224817438663248771381876581885873134844412623661358124471236481684775335164481133644252872522382436866233573373656248186347143276848553776722144425385176481718163625164412323755351558267215722758833463382546243885763384443378377225242362745132327224368283782521115717173356478866113533812161136327185426235673881343233416121428287481278317316337652663841888477327132163564816638563453522166568138332548848468835267286413136638558474354882852247656364346115837566663267123716663111145323822748213425887365613861672773641824515724128446813861884143126275633775377222528865532685617825244532121748657525777827374145256618871561216837263541365738155636272825685485863736533116178512836284664861527711258236544415265874126474436874586521334462887242241857467155122748762828174785678672227884463546281477873432855583612511646867386434878228872531862172753221855255353343741581656832716228774186538823266833815267425613551656421373215858726148742822346128721718736472834544575376222488367427117616511561188526835671317128536454624477543465765118147448418725286331675888245446326262777651248437514761674825224812675512282145562817876145666226872533352523778641515716373654123863217126364835645836532414875763658457754824478862235333421867834756333724838723613815254821411553285234236765216417188471281343662842332628348586155811688684157827222371775411266454423153235884415388474531616858457461473642148278724773824318322128153177142836578854225356844215687113467351175662158554745366535312658182768432234258684736446147811775862764184118838127668433821867452318767267767361713626815652466384261557182887868841516132845664157711521668233724432245148566642528547375265243686767347355635574545364551672126614234831263722743476787533645375485484421753646571736671112518645285613454477733425281851122673263311355754637676262257835251446444175622145523736823473888811324432164268786766438466353221728367264287736471224621153445237634542166851367476455257562142524875658412247746257664531412654758184112232816378156575325241533532582712867316762488677383152372111372445842528445113733215131211345148643553216616156146646656486867518555773453735441714141486258618562751163142655313714558734765787573345526453173834486376423853626657868622871871178623352317546722628646445131148166868281542238456882335846856534331218861178885654877248715557876567552236122366655275136672236551312284466683335551233486361826624718345612645311888245863635814154678321482682377367835255435481865457564633567111754346878138772136744824741346323436172551215318664753243866366315673715526227784765756158476613366327848552886441626387343528513344135887676182221451341568528744846512346653535671612437458411712227143774147213344184738438425386287136541167352427417322738455274687327182883785343144737431857824422386453433123484566466132831868768574534445745717215825777741337252315625361457365554132472525116244466813614212654634743182362553188356377784831111554532624578455481628188557367471533662671625231783718334267616321653732581178768216131223844573247582326432174885368876362488621346177477575145647246831776627418114858674887428848513276825435143418346632244145562886348743153484874327533684251428741685661626674223145115477588264811446215443562745112551878856844857635271286377448584658344645111861155235551364231356887358538325486811253788872127464881728642877348154311387265663268711744648443855185272568785778626312433446443147233475835223775473522866376277567863466687872278447612138346711657864231184723464314514517885857614784454845388488845365755816744774838431621565431654345716276634137631688423135717242787122745344174743482685835655585313587777255346676422115277736134188767353574317851727142735288584546833176427368822626885262637752525721252855546787154662522383555786428364735214171254365212566113654377732448826538835245388616147266826752613123826246446114664577848231466468737158763268283547813523238576521172835842532743643682874847266365234638577633567734633773611316577151564434781343363347618615124736453553818838836857675625824854518525525515267551338761158545862484653218476833833575376217365224348566561861734142676387284312446868333476468544767464843171272577217515228773858765761264853111886414616574446173368376477648414745275581842641676572885631332413586246811262215538628352144842812683384162777411478374475571747817886411278185233131245781474341641447165862275477217447552553623437234481614238546157774645867826611646474886727534372352825424254835264651318738256158821567843446553185136868852363255762666666438338517715651474766153381666466168821716833157114625114676473171642477172146754785416771585551535461847741283572223767586158277685785341856224443476246427333268425628425136277483116324727712754385736346652461737148582173354653846346128335115778737615847178473777475478578234717564737645671627163672515228586134413347512534147412262451426678631122772615725536741685713562241853117848226778434281441767572644651454366114123238264321636511833875428688252272118586361576441314845472156265172817311838663364735163778563662538356448863361343516582444472631262766461787487548287118456571363551866143458314381287111465463734522382347378415585163116654816158255488226754373478756427578272754363351533127135671388244737812117883155134737183782723785353453352524733276673853712671223568782621788216445712647726545887544465454462226363417358674778618146653786175322637224177265183114478627136537381213277181311577625557437671226783122571377442262427821484116682661877626126313422824534141376558214136445645654813365648446717787262513646328311544177633378755642553736227155711227587585146512756616128584262254578135548866148428732642755861417117262757438347836262847542542112735617217218618425571131255166328576887677644546712775787164662221826351772216574622767664612821527811177215538812185452672471513888187474647514768821278186226123173487557327465457533488772378546553828727621855375385341465186412618371118265481638863866445276353857668542252235727122465174476767614265442364716378433646745188825112626741881638232463253423824525443287777726416354546848716337563552436778228551661332718513136877771535154611373163831847741115874617378716414427771765626336832888386864675733612455527222564731741234588272548345813635858133776451726784644648235218461361347154612342422576161657285337468734885281317256738512481821723615262377468282541212346485167415138836761356261376122722185736115887332136754548357185885448628374725635376432323783478884766462523673322821238418447417451787828386375174256763624524868145486183421838812648521143415416826325657726374548461162822538222851483835368684586384255427417281315618783752772577184332733258281736416658546462231251114426313855383568521763146138741843533834134386845537888313343347361321721258413162832757188183725547321482341246115372656665527247846676877862278767611866585121575241534381275127458452262473481512551658764846772736824257156724846163655156344474773757361818183761782164654713246533856126873766425327744222122734736484273236774112556835746881268777783775458831272445126423481867424618224273752115376824834827466437338414788661787558628612217827626367324341826448161846164555184676524828512852458454766778475454263634575366573228262846555111135187125228866355762634378856655232533254747244777641647614836418562574138543577323484824824535272146418451475326323314412834448544282786412833325553613785886846135212523615714355623667867533233514652118271366815762625535435675728878863181351443415838562645323722777644778434762824541312514782135411844884846718258856717784157367363428778451142616474768334152454416455882163233542134824278832447243448246431481263652148648574467663684417143765712173156512117772721237688673363232433751852616487571826775768772582867654782141865656112654533483686422567668435667865241364513548751166511544766564244871317358844527347188165783264653453855848816782516271758775227558725325875352177786732315536348182521167311467843586487147443442351334651667558877336187433434261853335112524473813372232235257248243458362621676625417572713277217211736618644115556174852241666547521887538831582716858174747462274871783676313258855533114727146211371518815732773145113552332543646467828587646147345352484326546273174631565848673368264313856345523673731325258253776816268583225281263812184621868556848768771166174134844413485127673336215877642645288346285754273225783886722682372776462624742754843248871656842786114873336518518888755521872762573636866327775635476845514786622574341668553786884674342481257826411244755245732861112241823621827142227787847135116887176827616577481766661571652441725414875618448286751764641452583744218335371858212258321365584535522455151745366257171673812155517738382376568781655631171873141873563666181561642772858617827666831866365428151818181131583458657615147341222312727582551563237166576317888785634574315152335833556744518477622236267731864234145731277183565487112555258332346878654434782317875131322215245434411521181886685754586776857511617468568255871433578856622172213825562454628762281176418223131483855762314276166242772314324428375837727233518723867217215614642714576166326315383178418166481377435733132457177353883816326154754134147251165461661136358151416421821316361726554533357261762421273371576638474444731316181248853742768533242352614735112185876367154175118712672222422582686184818174544281355236175884161776733431752861156541844433516344534866552755757172763275243836886473715576738517475361551744211725785424284725524746713884112153347758338326878834674638141326247123126658313813361434314182425225283825526516714743741848272468885356718558838861324378884637683877638541231234223251716275524828773386111633112386174683822423466666164143224324632757756867812537812475757755888772256744411531827235462727476321446787787521328238433514143765875221861422223182535883317342485677744773161161884174481222337786371355232335425731868682772331857782124826455615783757513745517446545533847527764716366516754668178243544362747838553273558135831854714311253142584772744716166123261556373676412781671226884652568385133867317454232741285232455172545518336748222863173512426131372513232423332524483421558233837257137876815134463424237257421743326224715464827826148452264324345834424537678547242184321312713186485554328844655864153181831846576637236721286748842727471462785425848581626857848731565372157661351371142344117877681388212875576515666461777342118217728663721577714422515136314284163588777816684735653252853362434652346186365748315387553776586753883283838571217344258234754236485712155673481781365355642762467125837155852841664881231473331718887684388151187274716822225865551331626327487723281558747314551688432161571367377341784525842616211467432237153544533842215843653761223185817822462736124517544771868768135826764844215533377366423316871163758718331444778375837735574587578436125261225143385755813438756466277652773854351535633643687435623588634735722842511444721624285241684734423263881135526578667778827187438423612625746562487872878458217718276315585227157423316323248181664162527711613214442763144113668742164541667877882235548511844527784755878644244454577534585647584635732755378372648168587668475548787874467183237634351236745356736671637586476321442432715311181328487214552253787116287484253282731342767583878445131571855844224825183522725326831145641315474765172333271673163147218335544887215835848677671154575175638788578748434167436588857533186642511284183185838345346668165311531248525571271715311146641332482513234453446524232785568263127245125452465784373461874512568151652264167247645642726243381812837224222143874258136612117787187718182816851336335866774524833778448585877822312868353615614848873513786658486344238566733387783623683425831662155617857347623885331263453588684732676462841386788872727166613172826534434151611257438723273152841563163247364388683342655531432484752165463887834868785357217343485558765635285652532664252143182524587232321846786631155821278341466275874147427776752141158658466772178453262645371282264616423181285747761831138745168115647126733166411568572256431331512373153328667324342537771871532765247441176825856266554617767552233847652114215478141572124778158424785156273332833851722215272771236712226428318564543464157846636426587315745763884231316716171777417787478625564857655133646474235525428352825172556151482131558777836862623322134748548353174853452115243232145481424146825177128371411734818555266367158534836832562642242164281834688428723125263147828775312814344846884366758731322711487687638738127524766748741637343262542481458821184748681433754261132741856555662143662372356641714185752216348528746674716267328475861747172188844372433256177586151132535315366685547433137543857532472877214844454216276541816738564362288578685273861232377621546673558426456662837651455327342176132871375528778544386827328227771665363832518434561227641637116241667636777486413482353186586872125477136573383343248414261558331735615833357642853411576648338322543146148711655863637463883884255231431317144347617224421616778312141252856176424333431261818415521613467663221311551663424164673623658113422143664687138443517848712722621781766216516521576336224152833878635825373835551273562847237273155546765235476165487378162571772123766851484217326742427565222428465166176253152622754317585617342857365887154285341477747477823165718114761771475284875473865843573478836622726845114522815418627633522853632433148452353788737252474568548458768665511456186812151274715652384842587333643333215821481833753326175865815245235436433585578761474647838524144376181328564257266417387248221548818512265371277474214825616647338856178565383636256625776521851542226244363216788527213525322833244725857268528471852271762565755815486371832741533351317222316854413782772136646878678262888384612671858628484747676383588188265331182664668141828255362262757187166343418164156647374567313628475178321174288762365772518561525183132781218753578136854722568178457237215752216628114442318313727637238614535763664728645533824754563214653711276225786321518544666886428768483772457288725466744538847475432426623188871224864874547176686534253262636325623777212116446686663855225857285264851752565831517463172343152675642784516118225552536752164182562311462138621263135467371671514712547756628412775433756882853113254518347784163363255854226276288626351116223416637833442168445117631511227138362252283365871581431442221833531743568866552526628434545335657318663358812631482144465685821421156373841223728131233368752861166611612383673255368513258455258481526656674818283628145556238167786532716264741723434578362245685347274567153115144468816787456556145513178345546153144388245767568185113515256732283232213358266146343614738478587777614818576771515533825558475833611261737423231671648781748348671354443874314848163557638368236738373568665621583548172118828373316321253735451762678878447345262811673865516384422416827722148885654857167714815754545887267727188175858445486677188388712254853567754655215573458357815221582557431563153616518214582274718664574331545562383314431527587532888183123266463451484525142885652651522545753217354412115352786157761682377267558188886528475146884551744551826886583812758321118232816453522722561857113612478462653815357545363125885763112827251252473884586417887271542341735821655142162712611284228151288681433834711882638745866562272727651821181251838513168773617558322171171715468376688247525362773672656483548547714418351444382366417747118123562112513224644567767648255137151357164485466873666247151538145266544144386875823336188753763346861165411767456675155631513884551364571554168614316435286543568312756578885565653313883343561117841587257721173171378311636414787723448776572858887575514821381148273132376467433852418561611472488458287542351646454422457286333838755315442215757751612421211414178571221837578135116255836143147165744547353356736217312665876744485748374366528841746811257838847583176264835576256826113453153862846354323842265736286413324617567281323676568112637138861117754641772616168131863773646357231565313271753726524557882626146264685618455787125467856278581366412538271756237444336822547635875288623755477372412163336181354464143488833732568645645122147285386542485744587433117315571368585245855216653566543861535252126382884221746151375363475817675462337345481753861484642788333771164515144236423223573438363626474741442434233455411751753782531581382544627163274855881368488218247382461333342313713516525536117726651653174315555512334546744635467444327715362588722243527887284688632213746652534457666535325482434255235482622764341154355412524118228435367511542627714454275355874784181427572448231233622856241376685316255165685418647513726822671881563231415813447287576738664658425486286483747236142482357388317523733247428332613742537434134445635148587422687838788383685131361844584343262834521441675875683647214247435688746772558154678644555876438554217756618371458324446681383755363737554453557156516265265327522782226658874481611374562761622757178452328655722421877654673868644645577521658811688451528774324458813424481451225137746481783237784136243374813262816355434324283366882876443626887523732864178363662456216248737556581756752788132877255765425241586543828655567722444587238624461281273628772331435784563215353137243475161883113248565856283482873332785751756172815352861876764264851415242825775427575338613771772787423225481642455557585864553713524532672612445117536181243433445585633583414112735111225445476833465434475843772382464678323825733363466151848248153521121467651174832517667687263232343346222876376417874611286426616612371268863323117138745253484122856541487725783566117331538612514254364123682824335654777458525637135233463325424176435362238453265455658686788384646241131876888214461346626223374668667756123143276376625844262334211643355258244577218763286125416567563155671634422117174682338556868375411278531411318375565486684378831547577377377813265665144548442263177415814612687222435441341264232173364312461858152315111726241424311711524365272478548637118721257887758746461364238667548422224873355811543341454481255764672148472562383686638748431616172845851616513763213246785756231335576257578833851245424161474274412134682255547232648715641635135345714686217636711452623383865416144214415267825622473428616323684115542145883155211218776177446854115878468774862853737545156713721417322885452254216857121711652688282377784615186447851517663517527426865813472736388458783758572421167257576657144856735672635543641133571813327413153331162525855157375176377225277416324475832543837542848437146757575873246186186722126665438172545114188784281877755128662341482618728657744438364576441534444521583134578128625264415137563582612622238112868573588113536582463531614575432156313378212762114123754372485381537756446631717866342641471666338172425755412788521754468536266741548275433622561515652665157437558267326548763883165383414814438443741515152311323823831122434465621766873273725773745744587182233371875854313482762146562338452451228612213522354255712715652563674252438641575882558681852117146232464318833538342371366544444166764852554413244372374648148225813165271332343666465845721743138116581621512444282376834577767465184763874188517413153222867412172564823122848475642858735643412535174886746371825777466582838782851455611348136375122476546426328322872575585823482338183612118512658824443532561684361616467437214256366638776853386823631561886473718447486788778277551264261874752765625161125532353161584343637872214416218768564872687228458846233334842584541834714223238181321614767836342112542861851838657687162561854262826774875847574341627741546124222811855516354445523867137481488648441152354368586874353213858783433518432737686442577565527466721146646721355651824436178436215775541888124351447752558567875163384358857154188574416133777481338435476373658623724123412826856888287523488127451462778862363137814426763444276234178145778772347751584437853333741345818477677253278323274224558681751715233648636665654275337256242882472746321657338316531325146832241382631416215736486237488288164163713843258783148667217273276254244517721411762414335628185426742787441186244145477626575726487653487214774278434885523115442276272668146232272267621686847123447324275518774116545575865477788321348815554832373811116522161888631587744816742133188552637434463522466467747126386348273623138457385117473884623324332681863877614824723722241272361546584852483881338326412238356176733287814883876524365577161474227434884378377548143586164617228638138237152823826743448776315867876451265224472756716455175643147584576658766858688144528744725261387153631112862832158631773388337781752752624417263233211286138567451513634161587467455465744472324864336311435873625333414842733236336667671365246738676762112182624176525617733566221854665834763772534764644557878835417557132426346333453525361863261636586317181623564523228323348323538368737716651278212181324822772615347735217385216115114215173831425884525314834282417788114113724424733134423413551411816174362768823725834374385316166362668856717751844367464182668186341885542327173226533838262142343432576475883711563533246427323552771125614552614634617146867781137716364488336465746541814788712373676133655183643314855134872771258437451167832727324427813152633372227374143735653185443727582425614233584546217274635567483235765285221575753671728376222542778167288824211434225123432642731484318862887837145627661883142781277242131411314843326115376265258673843684682745277787183618884837828358337428136772287537124267636622555186861318584327726311173345566143311437857158887238383637742555555685156762422741436686542363438664366821722613446273784532875742845614675523554273223575741185885135584753168553465781844143218422862143321332578725721272262214866167115688823585274758145853128636284631583553236228184376578227734867187351238542226255861483873441846432124145857678736846811744515228837432624252232832572663734312714624486812183875114377637758118272627175854243421555487261642665514813417582543685232128188833473844281121764733153222682644188353478541587677151167247323477874327848887453237735625246152858847742317241138577158371846747738273111882554528475318164455285123131278314453351552268521181568577553153385282327132553638355214131413487817235517661633567254254864268161541112547516721385727721217214828186251677136156587846166754823523215833742443158533831672674183124524567618172814884122886166345416723371754125124476343846242657116132226685783317532586876622232712822341786776546766151732645872271324161348863356832672842111388336481432388331173857153251851571338348577126275267573565632676615311227685311587453315877616444864653223721545371528263143357621776284143787385144832886837318454134244578327538183252442378784367388744645315212526467256246263618241524244432573886777283526547463122513656772776435212238874681513424675163816645736851815871816848874486447218488244745838186447836442756533272154144313872523423626888222536412713343582458761148418337277787675165185247134785745447763523187252452836445815446882444465432853188363514254418264874332535421636528571863118573642271314743525877732587785411775888631774185371638857414155733388367342422146628665225571651651587888246422688626744153735852171476481217866588348445684871177282487468362637322333462656661241188816711671268162427344827182612687148773781686515438586353534361262755185262732142881686151154741523222418658751121781552334624445654861535277281848882685733266413788517226612686243427582774524481827736266436622621566354466523215857372884335487212717345883324776311468588717335516811261418443244861886467361737484312117858834427176721217856312782883455455557132371811656184363233245382724337422423557863356346552777831868427638855447441264786162435237765537584784647652711267321438326576415472546177235342644684382641356564735134854458323757784155656424483166267571422454811823147756212118425341848771342188314788468676528723817783883683574163616575344825873358317643112268241767157121317641567112413386211776358161682262285665463482122167483385465288374511157187315213817817542736632772857366766174842783214176626485657184767245345535756252883318764271634127653822486127874214157273216528144343543822415433815433611838741844368222868522568217278278731784877511383321277115721417156143211857586825144511258216672143363438255517877838124612148851256266152523161761363718614315371616372211116253746734762288626484782617425181145525682876425265251487838415578632767625456871262871664311758488275827254527515783468511643588223775286545165511557414248264175431545361766887151767852765361573536231717267678736222164567535845338325613277121418515663582756448337515828681331287735772856386881341788738453278122265352557346376133615322535287822524648468666146483125845564153211244157182483112474578185257545558661538465746175411816283543168142162718388157464465144815327878156334863744372634888858286175851251617553172721376263758453125711737374558312135758684545543273366612234134737171841361535841336564776758318717587285355545535883341633633371148838251665885575728588832751831833425558658317476142131773866656868284238235574274154242588351624244537216464558854145284686457868482778423577541644221351812418325584213461781754833158621852483128131363422114567831517554418477376121323531556316167731861528314616747267234535282641644452853434125588467427117768813345511551622877775334615558448341562624686574138528686722722426278112546215374216763554616518783714567345473563256418545253643671133537235178164771432826386355335677252346353381414285881373726452764617388535365652817645184338283523842872114648541325884334341562456321422856817636225355446463675126135371671124613337578235168361841168283214374577883873188185778483368655271245114153368237372837764788464287614111486826741641483463471781356634444642376247277522435475266816141422628133447866118554741237732544765675686573244766841531471611677122572335328766167736534554438711158858487135617486121276376266777634348143313628482175314887263115511471417441146242448517432648858863661524327818154171474244135683651667181587268236375665735361333311871535453446771317572187227227215266727723486227633442834646534752188571588217662873263544856318478136155133581785772645287537443343157231587246775855265635236462734254378663442617882261484117271383687634648515855248874374168715732664288645342536471718873738323575555431152811328316285244175481856268872173214711486617123653425118887113171161768231147474322588457838284716554277778683623862774366856333847156542416478633572825511218564161421537835715754516264254261377826136731161652228535827435538127422171187751647512881311523525357232311773724644531561528736163452572356317672232844666526321255421316844412682586158321123144656774277685565774186128686112546782326756318557853335761562672131837563214226528822218252186266868785223385824825735327277462257147325552713262611833721267471344666887168182223326254871334425488748543217487678862451268362726451422418347666664476253175767221832138628586721865571458142431528488852861358343467573154866177626528666482183346181465463741518857885514511545212227565748566267527254315355533655212452367652521385475576231213671422325782843533172336128636654616538117258222126821572552287357876574111822731428467381168782288827424173853612545344841881726674286585851827168563864634415141558825172763676584857431467832657516122388253821165777522375546167478665382358366852478524648423762435832256684175281252682283576336488515372456666657476613637856616336532643411646485723755557384824366212527372887246128272671777372883724548718374885871647682221475324678635264538774545474312811243677212734253747213617215415136164475565652185723764344742152727863285751826265422426612774123478714376145452181322677723225131121224787331241867145577866161148156215118783776657812787562376257775155834877324724852577613187742453523127828887454518178375636572831717658655151272181175328873733774556572184723127686225678151438484112777368537886375753757757317615683476118815333478651286134464131145655313785743475512862328372153537225165656684722167286782687846438136368187271353748527444248887412714664578271554173827382887615875348357243357463434264128588156347273664811427751274353212724218833117484245582315611887765756651726233647364484122671554741572224844315783242314478181575531718718836575786626631541687827658215218753282724284327886755321741331873282244251643448785374155267826213126247813323882231633828767188351672543444731651471762317224121784148853412274232265416875856833137531531745237152357526212564773313822156636242367138316423566567758164487218312772328131857615287614724432338276374877143524631466548582772618116482855713373878644588476617374633778161884248724273137455353632661666462556548823832375761713171614322334647218588424876157422188586421775565521133537233645554211842636243362475485278253364482456326837834768877466357373432646167337226551558113617286435366864416774541665263418284544762435542231652627812847747357714524168388134263663554484781566688213782611277154326426782825385272552487564868367618885247673367474373786284781557256337715288846842882521681323217542477667228523673811661668881441258175717756732122745823572273315813453818378457633384647566566154866326854861641838861774232583886688881447227267264322732552547276673487218585418582442556417782556585373712148155716562868358561821425465646313883515418484357416224361715235431358585415516847521146786817221842712428568338682663158421232833728527471464343276552418183843782741587512636154666573252243577453478818268742178633157878886638643641356217465815377132877621382625647135878231664264343765512664815628863786433846346384542625615247132121651642443242386457838251533735461432544827147654223635784274631461615183757381312675765348612616463842374724845771453556524552718168884442413571623577811152233748645741171345126342232847267123843536335831537868152823436237483445245448152546422423653342782143326457338384842771723156383114485747542562553782564745562848377562386548362621764757112366382757646817832163646282168863563644265565856123184661844532844777885517713172881157122442235671265386763262831843412226435664646245833316181751281173336858821615364354864556535344544838737568115431577518238761824877856674371773547157872534623121763211335374644111865737781287345536666284335645413845722442833186423142272325832785134365137447671872765886255344827122682585864568725812637838486718667784471424485573522865714555138517823164268684522718186212621348641624137654285146842363412515166244324186175648344466477517722116534881567743634747583824482613132587525186838114731282247475377286628825577275665354444342746262514282651278712344457858784427647657874817445646773337214322245122561536461614488727315636757425333882588366513451841561823631354353578216554765468226318573675726134145312447885573824848774455635236736537133542548144587883265755437751368584445421465362558235344731553572636335873216432125546638372616545838484724454235476115141722532732672151256575624885556644457331567771753276745714131682617517551188742628468811173248376636258335766848472443241232231418772765352826551664655778552318383431633784246271346584241176563826178337448637738457468243888277752444355324614518853876836852313254378467845856558823316568788674218643514181452824344611556285615346316673378547873111255574712886623457753316262172167283368568737734568566271488352777124177636411534572761815512471283666186743786821287755415354431463763154413182227664322753166163121435762752548416434575877252564263421563436436776712161583746831362435677882336176374118381673611528246543475158444455451178456174185625668234748281683711416622627258725785831555334572677141227818856213486123542688737338327718464142471777613878532155857645377452566342123166835232474255358185812643551457246636565147563547748663825666247871246722545481364317381734455323844672535242765865782535847466446524634328113668345588754517222868183431137364387714381627218382882711821747234672721787517214851242848171564883164758276153558543444418455521587531255852774745745773718836173815536278367317773147324866672532182718483213158858786284527772656714451671646212277764835661545826462185231452336278568816851228753638252814747133158846313125886731753648181583785451246147314886633164663688674371385816437784536531587533417835535773533372615155272545552315867256165364234416872716867268453344642877366424723161366248685875441215533345723788723217263362873153323654215275234124432735538885824258265771854132475325477833223517231775577851284376734337316267877626261536612211751848461153547171384454674582347437332147468376816427753823743353156357755778546787341617588724281482267443387174527575111888467226814745245611132546146742658236534624385866668884265541773416731288337772544214381842681816671451878444556676172763843813646378864827134618876251415463336131834323786363732544665867217461564663852344337248275633258156278555726557146868776121832847253168611163446231677481241414825333753856862352338245768561832261126478766883633617854817562477486284742447376655141287814248687374658568366688218328128242212885167124826386227211678318426376781688651456744555381232764563248275726823316768157147332377368256345187324666533246538634251246566166565842664645318847361145417172335876623874471874777852182866715454133121438533661466342215785437417726568178445258473484878283634572885813424618527624628617867882272638676243665233515462838684823656674185342555875138272751217448217274627561127337355187224638616234355228782634526625214536556266318571468217321183218343588373613537264765687664552275442148316331154231786233358563274358876368371454211738735478754255741147143778388847831165612186647452322511285186878653328488633278877247757226772454676673326332238528411373667563817343564884174545552351323231231534887147113564788624353666356128264867478483762411845768212763488753361816354482275433158233432174422478814124248772657366576485834642538642156812736551828637327353273246458615588725723455244171114388532268785666725262755851521156676714478816685272136528662444222752816884354748642473446352768525565264556647573337342646721342888123537868774727528473722856746454374742436774515253545311142684728284114373724838341576352522658646126545473775476245761187851585287427556812411724867844446355762374745133341338436887812637321528553762186788712467368232551377784771156644324237124814256754644177773557885177771861343134165263852374678356114787431313778384385524587581861441851876834534863272347783751584345334627267334223844471755724748438867452274363366614746424515255123737123258472658713545813225623563445356365137128133288512678146441573368748352754774782866841342385628364265442535572775435258855534522144648488623481111576278682254825341881423768545354567517483572176243254137643874312758517553667472367756377263663548455822885784637178717331517527164645531126158764412744862334217262725583287842882176543373683225354423413857143352112111845857581817357344155151857137233677234281633256528635627437311275687177746162471448522131751478845423364871735531557362414228621233258224866436243675726835767882764483886618121378536326514868145285271721422516468767425422486863287268827135368815653812211514723616385767362253484772852628112137763811746837764122217146143726518881642811687155863466147321676343116786832347841855558161185438785275547778231835457154231371228734177832542544256152235861852513812454315565642413586773465425675437468882263314333172184536155385617364481487436444211663135534612238638778273833154126821541671818763427385255251528887548566334377628125612726845534385228552848777478618787253713842422143247275584552242137815268277372512476642767877741247635343162787636167345148524645418133816756636433334437476521257637684468638148462711325176651138587845578273686544663841366378745615833447426731314555372616287737321432271864651275624572386141448573417454731727456411546112155673521355715446852518631431516662683675832566353228243285313548424653855173415383317223711135664715282465613712242651617667715372757684332528483625475228661264121776168887843865571788756443514688853853313686845682664874335355352553574523824473216611184638752174188422418727735285215545237485782783531472735342563783375222467517537663436667784268216475528341718236256428217372387635357252888523384546536355442324516383253211111564226558661862137657843361141117281543526563465848611616611517386857315533831232663633168721251523344854756831166815818752573334534521882352138328826787656876138556243475647276767424386551851775111145576355638172466788774833218811267864436412255584468538548441453851861311282651764734345246388341317844654578362414844438225141247542174482835162223665647222836687582882774887861234618171171326265132278375263243573287356187675775113647222215531556343643411688855336128736458562865336653478875567241631342365563683134468363871762544575472187864264371224567355468583141741384477715533651572188517868658758787278317664328574245612264128685428858476824443854174882374848182153682154414455834321227573587463683588625157621728742668585437467634255457236367752175624854686236322557467164556725856447474263784856464236388836233466872387367738565658155827382515813117445885713474146517437385455455366755846781365626538835561616333878261755853522744744451522722775483445142154244374631448237365822835518612673262641374864612268358875542471666487432828185772474333784187635162421478378563411514748725377555664613686341581317483444678531756236466767874624468373447366343666471756625174281135476863564846384336617273653463571266231285821124372265281534752445725845413212645433657767723167326811121447372784755513482464785583215316234821166686535648238347664265445444541261431661641574347535668321761547282367833187583842525226281325742837432437346346455176452253334586445355146662184557264178228567778211615338247568356461173885453464431534545862516254827225451566566685141517465256347736353815358828281322664856572122756646373832747548473867533345421282475475236881848285625856465271188613223822663252784885312786786433425764147854713768485645122334672858338175162448885528627721885277671678882286683211778562637815673757446533817888867582721522778232566886253143526165724845124117252547231232153756145438638218682446225745152886657766746636385446635315876173418883547326513754136534727586813418734222873255537887861786177134176188373365887483256736412225633848537762322766242822563452171874884367261353134826248282358424473526414236218567878855652684612631476551777444388855531655633566371136771525621516658434164832638438163784356466741678246246478877555744848556137183167388813862624867352827381151334654351226458742347536365167761213235356158518734546843546188218288631182623652173476482186674684234241112167243541871656424848433753464667157468156137376437461323665618574827881251187347245874216777682783358464444747658716734512842287231134544637258181474812113177562272515864455165221211177873788524644817844557738526624178457126451511115236826578217686583181616737734127328144152821248145223455844316744458722611684315524731881432776828762648678278737277876186274565523683522148178467252832545868222256575371355788572474615263275811324853677737783642167654538281788355581174523884666583155633372317736712254258222842713266415532175756848834843616886262522142341533784786747628475713524437638383377626182761677224276526851888783625125817846454843382656613387621223323716428573818661412336288277128416625643631554664516873462378875353727286323648686181436232728814383772411445112326426718877578175454312825523351861651325163642274571672881226873825146521674468786562726815314312766287252665624176738278718745178488772645277543385224152645821836814768483847247655632863165137785273687678584868548336618823453846725674313656366316576265511465756482427454287778286728436548625821168511681444354615348153181273858427576281635662316767734822817816363852572258148333275337524175718161828214117647535258517126356823872783863787342866585483684376344581473723647411725152322426221345874363584814685387576335816637386338645115235431248562133453877271742328832164158663775782646552336265127322417865228485328145265542158542748245454463582565678213175138871784146443313238664282558133621767732533734743421745662642623455248883342376625365842616734761481871811248767885545473166223832126674788442347853212475116168867646272633856613633842148425122883372244441277141114875727831885223837447152833513681338633472811811315276166486466566246475345132668857652152785122635471871254836828344541326737162216862876178641575636438168575763226324828853671828552238183346358886355852276767482315772815537184788472368843453574167855475854414322248211442711773365774478771872283678324562518833571624268866773622651226344816235854172834378651733711214582861165161831357234373234241351414226781573528437435427748562572611346384556156815557117652471346342862184311617828686122366387682845225553221813847226144748324116687814332383253675488431452538265166258455432715824867571444451864276732462218781257615328662528544233176254243255686737762871545655868355638652277561413211822477641343725477315162763158847153777513761115746428312217288614843461646347888231121848428375376323354175544154736581433862288887233317758325315155268132257746631551132831262634747622546387136173753152275817888332483738232816783755633284651374133172815763452484864244318387617625763158152817384778765655133851217478175842767825468185314561677173152325558347554454672217742646628827164675181213278388743574843585478443823644158854538556157127325866257288382286646213565344163558841461318435766573586631734156827155653662857573583236816418761645817244436851811333531842787722123844157651442442461562341282161121535157618811627764515581467578612864642333364157215634742586226123544777612226143573636543265476417876356445716734114467745461712366867623858633713255147344382124721342244267448455665456473384642763683161524421583718224441811754233511258367184474812845113758268388372828628733728871557833556473371533162544833531653415536261565375283354626666447655717535342776385337668185435287777686277165662852637284437154447864653565783855227547152734874662214426116863472813327461457882613215815362266357685182244613748751316433321156472152873811784776767227521382546713657758715878526184756546416256581832722315337537628131676158417462558456148563132645678475383738851515321266266332465111518773457515216881363863728336457343354715332671617665844573387738154512631518336784157423452881413723653723353148425866268168216165432661613514416588376871552364466311431371782457155624666463826246371375261866467111147651642336152651843811644242725272342474756588378578314424515734555461842361388226756888426815136373334561656547833628227787167685188252787427317341758527124751468842136848636551213664572557561255364125557274855237255477812836251368782628662752676381771843338153813132615881155455411511514516563545376732637241651417567585722263711151224644378476231651242155882616788728356882564646321286383463247681625811137258857836256411431868837234316738625467781512222317867786727381238443833848267168465312183728512246438333326271636854168147668883233663762248223565842523476336358683565771767625818267265888271221173627754336734416384478315176651683247667127164754717415571725884728352754322784742647716788144586132323445272562486373538244611874763623832755814388323337364427455734284866563613615535337476333563843848556834854174577122654566852226278477538647185464515663454566854767222242827265585252263686377325744558727634251345153482175824257521263833815811513452336587811468545537735325146357251818366123867526861568763475861521227825322661437174857865523274112484885228862646738383824748848275572764456681141866237428368874217154116733534232824723428374615562678453466785884143175674251427373285133622867148414172156785371565268416311672333681713272726443151557855183825385875381147672674416213677661358723818621158134434225188555547281252281215615725386415327678465572361381836217687444646112657266413138782578148753123384555478688688378286187843851271313812771436154161371745186725743184848552356431435418527355446623674648732264276487345742443672158424454677655485886531434613825536661114746486553265818156118562835883476682456344582216814437681886285562763264583413711228178744468673456734283581566587263147551278432225231441217834741231876182614726145256766366612474277744674233737113656288431267283144112274534335366645688313787768276182255354452223777375265643336616837451865684637566258481634852554156711378412265841878617114838312573572228345715551437117487284323647455351516263772672287816114338772476137421717663572347658253787535315653414366222323785771651211312844874811628522511155771717538388686684433345213874453218151558485251311612828876323333815857516782838566755643841274245437288745685352884438431425838243868423683274174586536677247123115826782776275645154683263845743412671564383527731268276231325622751574178147776763487261218477623347626327156724751566385713662615546865742123258773518658625782115413846755141637845722681835143653524386411568124384133773383638581678435288261366671528744277713772474681513331164725317582862256354434451474551548748588475617881343754568525645231258617164724754716753715146558645225527151114554215576757421844233384256864136426642126725776388534621177276788533331128366863582121235551318228153264616363322534514666686378355538515318632551162445722556142385723154186242348251713824338535727223238513414126267431451423551343453314354653138862577685542645657847161113126171315664338261635281164662673847847521511536261776543576641645418827178787421167678837518373883554153532341456835885326251546462664524427564833272623145755473615657266888172351287253635348261743251758724556635552433623641675167658582653376813722681154788856637357528555312253128181241733566317721442563754726633426216521751618423676527111448657167481473223755278441357157834717316852333324488444245542442577328171211213648644635288131758676384472212463184164553533327256573682812624622727271113431825374343411242314473861877871143666687615678576532887672141242278515172516565834174528733524638251767535342732845357841882132854681153544784585212885651451325671655621661236646713177771728875121348425247878351634218882855464288112632288132765876872637344461342112881761646215488653254381384262352817168658215742624241278455687477882753444824756262756783827436722864317415587264151411368112374241577178344137581331833733147153777586236518838158653613863478437273563773776447174344247555184778836224253464862366477213418566551237621667152864568458361236878568111264546643766668685425661387215328343873866233263462848634154543477445432152465462233686267638147772332217121557477427144513526852752142743515118742525663684185262465526563244727846173343357875628841564847821775474475321264323314431585377125231367766581622857452271615177661384742251228322724132668376613748283417226627816316143862612686572573185636286524388683723672816265532114484252582421468737634322462532177184328131766616465866623766645551553565648121634377138473724865632847218726788885687315246341818164452433177746323613884228716721762162846522818271268652243822564761135474575468486122842384157481264418454861868377263463464371166424455722578126881237241545643171186645884865362185466521754238345521266631826222468187761353343512287827878352514463256842233288117566325351177522513287177466364737551642458277835355138536261313155631863551358855134177361412477546341583337378482881386434532186631756676265224468414714367163616452725443654787615786373176426632724467431818446835528584216576737845474432163752874534122468227162216321283436684757831144532418386134651163648722515276341472427671113268218172318526721865663431217425116124714453715517141451272681361867828152443551151166241426118253654336466483285212573331882876748272885382521116825255314163444167826254362842634815416513526121513324347442571662277745766568575567617148366131228661346181527235563176861364152637763247755348556761237335342522154335772322867221343163366424286626254485288822615628815624743421146243737738656835826187533461342865717656323823565271183826142285475827341337572166166434217124238721314337773181364166154555145823144246682167784267574836211618671151431646276681157517737464443425567318826353867778538365721723345766625126321767326224763514414177311778211346775463821867127572328866784578357511763538337675874761555124626234272544134712118254228477526335624567677138815821318854465665336654228688681243348742247425815641738318364858854745856467165211354785477773738873175688255776562156284148483871755135827565733514831415844811685285387715348368658468831421478665361247648366318255255756862444671752336361552546727314657713877134837551622436775625741637682484546318836846535166227886625735886373873567881554745631463856253741245568367121215764862866377538554211213675412875442535834477418436217543174748473313766874631344152812271364211287571768817142157218186233328838653741416212423811721188187187534815523333242538272387856465287345414616627832855654421754141562728258837437574745857611115623812724376125844825212647724886846175421787458716434218841448731218721486332773523118864677667377226865555414363331386665182526148612724435567552571323783645345773665274332777813634673827158417671757357133584726873874455386731763318172437468257243585784263221517125837775767578517176211588221128527486648164124778318824745514463361514211518567484152546783281526344654325372687783813378667386627174583776125481752748616516864778838223474513645738416726174562552131475845871463178757166581445325861552628732646372285814825217412254386746611314221777848221661873178633311132154217862454527273271224421574686724566522831458644453765483533712237571744575251553781145417475568133664633814158128171321128643245578148818323174642661778453463687688588587755721687346247275552871746755612351336261552366587676466253421216818533647445112831577358267358551511541345552723746233256642513322865678332224457271263734654143246414117325332256834274258334524323628217742123716784226246267355537548481283444728211582227654273684613321631613681758547118136483533535585565532667387117826323643185212637157271611471878362345311582762337756874832688536436567636518718274763833163633136773223573221148282475482421431217286444453424838244488212254831748251552564667588135816232282363877111236681155834575765674777272578283538532784318485134212886714734684523613781616328386285866416475744771758781477327513216414152312358432127736534185165313777865786541342222444813428626182457617357488266327467376357623735685182537132733266115317738223648828171558742765532662425134168127685352382175585763611774386768515741631847164521477536555838458841111752337676631244718168815518276258352721458564822527466676312824728117644317758611224783278442584554435565317348337423322325271236345787126842745354575627835155378864746437278614753311684356481174537832358388362662442834273377686271322822545772832775258274823547336437678724126862446452721774667321745437815383416648582635112511355885355571772222777851266487228675712168224816755551664173482421817212681276853277312315355584255133767785547735353453687844335547422267432372516728787378483843472618458343464723488234643633647774486122434475722312675515566425764533366721153854227455613314887321524883158351338744412341738237888445747368473454554488437122826551184838743755212356216618461223832172536827117341631487822834874182822314122815548345246815481465337554652718463864157754881183636172514682685683167513817177326632772222176543828361667245144416551442546818361387362772145453617753677177815612217373574788256117343141617774814413327616283881484665486245432842764532351226752888435228353246383454346334625815427186638514343355478678156614255635185856857858457126638368752121376772174475482363633248724173212755634777424227252465853422318144624662211628434248441643543247376654871118623214147788113136855386382452421312763342258458722112631543472472358573465827855136216751755113285722727125717462757448235485775156217516273181236147136562721825332782476783565841343556717818138315524858223716487451241531511547768235653181618555536356427148822485666666614326478215714274176183228873244666321887275614177446667556547621843118436884167713448861335183274155888355453241254751548658134515114816243434158482245227626637314464175187211128833222553323624251336745355336871867123122454568352813417146485288112118325668685452613273833247127735464137514628888214286477878733175548315776365853373677473136114556256414237433437316242454225377851216676471421251545677668854351446715524233328463887434181132236813152574726358325228334446326877881118556858471111538138462226875883427263127734457457412321867267475753232574128862472511517821435121883151268623751672488787532118258264742721263811745685255352847752815674661827887237443847738564652831383185752665416367741754781883683868251177385828618455732536886863744753377846474488833283573265226513537188636235238225563556268885715314244564753464837878683342787435511566812358448347373214174834544217888731475365168188584183417537177556614712124184643128136885464736583674472871415477187653381433152426734138131345645571766811772624464536546237417135773431227386433746267557315717145888166465264528735647147527323527182735853461154375188841458412877752356263348374753714558556455737821516587232576527661376677366655675215824242554486132411214565111381747838772882315416223566247363827726465552747888526541255843814783218452515112538374485851757384215741862237181128428122764683221353455248147725657335463717726553855455126518242664877738677148885417111466342265233123846741746156434476277185528526572263314578328646132831587121678713788257741774583676413315143883863885331327434663118436811811257223346344847374382335185773765356582786877775825124378557844136785645843677365476812867428583277728818377672335826178527436652233233127556675244522168773228838357336773156572883711654636531132554383214867136117648223846558471711687254833341214183156617245383133828122452433513717435856553756257656557767724711624815231526787334576133724282331377811122317211365868256343235263831683588378826568152785165387342327237256724472154288466885727528112735476882713323258858286125526715823473533852846818434286655112584538552724514385744324158255475445357288541176231668634648784414648428174757442214176512286587837861745826461247655413322642144817578641154178541187426251164254668621425784357434233857534156284652783438434174466637277653362343488433446541884236642477711584544443384148785227558716253313463464714864844433888436752272125162518516152215252684371454336438351326183878585332755467861611343372142148155277131276141661482736881712766882755578874821161848518386531835272641635637714465423123363453872712845124782817256568412417763558714825262353244411327554142383344442557751635272864338741531531144286147812485643665626636386451571354742856281554733165612327863165146818537674723136384585853725431627542326417472126533685577277841715614311757636148127543361232778148146282652335834477322481378241652461213486658187585335151835517742762211563447766161372435683446534422265476258866511521641184623752534162655357875686662437715757112478424856424874357552848281852176627168462565682427267284271185633145143218435667164573657437887862463753413131713831883715381177782174181384132334121351576682162275254381584683782487256775688474118245282532812157463222357282383314738158745512335644538827254272222786666335167312322774358773652811544376751546445533568113175266881335676712245664121687116321821611277537618872351121881323372142136586436872277376442568567368568837531885273682332255172525143842762537155824114826515353757657514326288486864166776818385136484836345744231613442732437582341481181545565345658738648587638467434257625315772452135855485417852333712133671483363768174224161761252432656415732275673212668355347172317854187863247424241263466374172766142418728532555638846262348483684845877737653324277582435434314754842612467455744311458853458435826256361176662767711415411351518325627636861146886683331133183175216676443453628177462262447725816361614526854458365271471353523226874212767823751144683474733625881311547435771454481647777241348346111741478281348171867458571225736577683272312826668464173282342616436654552458173138517524425675325652666518276476116755887525625356431757465274474236733272754855665441287762821814676512644718443577683145234324353118741321834278827827212683135186571611418534485843764531513212761587214226553727254224345553418155875867631118582611244351561273732135464275681852842167185713153826434847284271144346223484465766176142526142155146465711747171485165837632883267522157718517324532124756643621268372222248572181218354685857672575357232285865642563642814368486188423618355426344674862418825685543463365577318377734132538758878323328873464312752855177654228141133586833421315486854436547437232281551888525224776186622261158368124678387721365635316121185128571625544123625378768577576754628477512171858573461178517743312816654533287243455564221564512767431551778353618732821867134712622476432436484844235222685242861124454566812115427817273356244855157474275875524172468761585846253811477643262378483168727378185352416872767553562445424852827441352115887741667527151442333647778551648281334682556567717248673518671318183467534852417273647167513588518413335687737626647154815362282738238487357775121732888223313283162622413772154713613621842856734183813357263213563732883755238647885732544832887847117473853484873533473446545445825621676525188142346382852265754185234453852523456253855238422882511546717861323687681213752851716827218663484733382871355151747486376853218342647535237744525834563824341262185728132873134516151852143231341687262451451716278834715628621448265177624762455425555734783417422681568516428621235527854814723588525442774625618751323423555711338843227288621362814342383441574438412236265782683273818358463476324143438875251168136837864363514675838586163775345147711817735381581448726661815266116117581285354365814541346754535842362186678775376411232774836487334188757746841252864723313622142222114554718831136277215446347451337658231784864282618313647251274628618688745262142842813437523655325752736824224878776736587521647884264435727865854516253664645435548888531837271241852788853166327273633783212225777166128135334713173152372454648452724684836416672677722137288712184168552758283452848112682573778785717654341555446324574412446332461215336352583714258665411614857677867561426616788655864144118864421777726553732664861361771434765554113627517762837862126728313825833784324118352755837228716288452646168345232174667156647834568338616536716675218625448718265285263486744522718641742433345832225531774313171144778637663332241613651246254235664246823813737784668453275654782316664655817374737464457574168351836358526155484312446265377314863365826523738365416784822728275112618437322844555234533461388766634337238821465558127125251616366761273642654321727671886636161617483363447531622151216461764512341276581451473384125622486756842166483537364563862443348832683555214227652117464275278778827264455877448528863151267253724516658853387211713177212687861882634338655245223232617877462467312331312486127187767625153866653773821758432837674545222114471628176158187847625635347127253285783465171735586131321138525741428333731821566848572352224317416131424272285876812736144444885385384412212758246388681235681726325654544638321851828638268217818272586866588651323873865456816722671436783325427413658364555347423235872821132867214782257448887212456328832775662741133546243158865514253331514674444688163375367525841344154188544678586432637576176777341451174158617126288547313571175177185282158761271111837253861265844551366728834615385176164176342754587248748868415674477453286343418284164662278446472387514818758467443875714448783188718881842875431387874328855854722721412351763783386784371843824763573615658745141421825578847425661647714475858187741377862774111171732766338385771817612588551655417582131821517658186343817134562111818818155872561282558168583613488476852547654478685287127447353117653524888334861271187711215562847361658358755871541427414122823748772327261454428226536188386667326445842174235124474771678152844385858756236437745724753765651685242223846276132613787742177643367146181724236365322782868631634138645486516813432227174617771851482811657447458246144225868655411561546847753473157266331356583651461162424427633211748745265286734517658217677888641681217486261222154644412317738788876625113725622152512482872752326855565727876658868264133365216713436664267413486874473661282538842217372232568766812348434287242868487362285167668488443432816788615288827425357717417722512777425135826435826764324283813682243613865214766114435521767247868811284422557268318431226887454444231232376761682244323622536547621643837325342165264533456771548383343274665543761281532318121158874387435171154778418638517313312717647823538614652525245873878151585347611277323462543746135117236332688464365318234414727385217516465128415633645654235632718351867235276428441626135368541573565188574835561632812548181727745442368468822642533753333162755186784736385565726667161867121325815155484827555732688472854883584666213354171668534268425422737814534731317841514186688347122762232322823477585564833553162228112841217515162587151123436527488488116837134381156825237875485314811564344438242714426772427827825142243556567657751445356128827287163437144875657457883312868384212441725813265872766766651575112213354545563166724267833678255442747282417372168185858874715821251848771318412127671367315813587658336336844753321356775842312636566886352786226727583776874227574831662742233724641828523684427722445631728711861833451726757616551171663641484586442171753283745524686527637176671585562851842413547311138737463272645482553661634552324267671888738448312637661283122427745832422436156226154744253881644314556665466688163256232477553551115342855682384571388547151125133564425675772338835541143142354677788355513643285721424715817835411446584534754483445582742545143757124566828158351575651511765242828172744448842118541381374585457365528861522637342347173418142478117611423252143877742753436672242178721143326625165342285823143311773853271822287728645286167115253148844132322758721388666464178881554864783877528555383818164561685683237483854876215466164287356582475382576645353868363383775414442542788231465633656152346777882256883525527282136638533377177858228477611575388638682126882387326731361888435187864743483637126666784788412117552845772144553871551625552438775138227478442718853534746855843446434733473554528468541715418621128463421773712457118151386837836544745584564715213777716218668428764138586534755748581872557256214327233554811281251225161783464582875347338347451242655482717754143343276717321315146376436323784638116484873113273527361668845174885311688886875844631487157563168388138835374465818658154522874714626666712325716362247415584132168486673425163666481836443415373222556515617834373143744662888777634471857722346326282627417472354383185734557256865616544853248347344726248655428555816462444367713742335377475841587814728243183877112288146617454222683324628677474314774214646638765716235253517185143261332114652248528215252127583571521327741631283268382581311368171177558583622588537744872574173781313338562737451882855113582466257477145774636376462178434241866612526612234867275471184415252538747124317352278784781716383253117726313248837866413158758261471858555536438885383517274662718562173636876875115425311676554471288223827672788387577625367775562584556821265715551123621267422541885254341826148252488116527663767151554246827834648656877755617214238351612482736417165817477265257773451381244471384545378266457216342447258513388643877764216186727622434154454335521463583788576818223525652651878826245225148731422742317248237286821218373853814747645451171761427235133838225666442143757784446866431633322885518471652582613316146628812217634332164333254282765434185872442744112181416582647847457525726816476283314551784488232681842348544848368432472421311246712632683686624563767621726782572342571845324346684553235875718141287858277522856172462538611611686243767586488264111233783461516321264833347824322814274286857246364433627228317187273268862486688138162458478788367684587783153833736672588574412741386736213415455174243787218153747438748686887586672156744345221133677253812367136712245376817878846638621823486173867455152526561744772441671487342187368536244885834865844158574361186655146285758846417578537534641875586263427318527135855418841834253566768366835638284445388858444486244232721371361312412867722367152265326152244762172275566781662575616117273566645553776256773116567264141163417538526388676673481224385853381153672321378653883662261353652664683434538252426751636668835767887347466178286743515843713185585886434738625161327513563738145344844133564167766534781731444165231538545658433156412272786888572282746118128474684528768465173867153351867766813454137144213288162867651413614828128731822831534781556564534886518257328112762312457674234383858572363871253384281564655154141664482788462761286811475841112178225161566751845616341885616571168363338612463813343413641384112687831557485665886846321816174354613768665842282786274845553875855318246486514758147238655611213543434763581533516835881432553414426788728768221473168223345382644181162525414142158867768114344344427568271552456428363261354785236551544261815354341234758838518254875362462584174614288778316288376821626845811476863512147637332121683446547653446656562111733615661512343717213448263863816366544612485776554518272478778213867184244727241316775138876557842311735774368385674374247564155285345421556156322718881457551131321463584318547788445586848122744787747834887466818537388781141286831431781334632641448135188825578372331161448514627326886584148164866664614532654272848387417362327175222645411525778615143536768544755181546285433163634184662585667336847333876388333332654571754556357682141665668567434583567684885761165718143818448717732381655843615356852227758645277413247438616382684766228283627228213646513783657212434313372253161444661151123513745773277883317312344448427465721185474261256857682234742385833543746251836628257177467384754227282874674313838336138555612138828777743244433165348312543753714472733126231444677265438372552686571758143743221614747746568737553385218274462532623456721661225525712728863775644866345422431657287871633867233235831167867548428826676843753675334447784655666535881284241478628228818132685128518335755514145853823436663364282725367824327521863826253256645524151423511138275564868872515256237346217811735153545211351443253657345636425887847437424265242514417571788488741683212338828677177543337833727457447676238263542112434727266118753387611287558458568157561872533828378165586438485167782485544516432147287847546751581338851471681864488848662143162112654618477435461432188284461376243528253166211813278787212888611533544827237388326282677747765834775844664254275412336221657721855555587124488118838521643234781122572473523473163832665885442143361528531468443633511215416572827646588343386336674451662326578848368711216535811316473372838881826516377536284224568766565221273438827377166448513178642824142351341667561775786611242434717818783761274367827374318557888365345577316614215831437873743365758324824552662852152748683626263762264338452354258311878312638866288372734131453383156174726421618535417812814841715511682433268233671231182573564682667861884866711724583642655635562335124462152231381531464114551471873486317282327846758256277826172882527443342615172164372248843612561872312543751536862776647678882681887143475247544428654532182366825736735328764263248368464262563213753341327415636233741363126114388234323753883625858676875385671561613545844273748716162387425543518531125548774461143162724367315857165278234367343545436532822223571214787325211132574383285876335152442833541254478478784488783857267162883164413821516123582755373245144842448442212761225162516721475575681642552485424122762411525661311141212142253622417355377521512516383564658637747364567338181257574482837416256144282581388171835175738375667347457273318316458854247642115438371667688538334886417742652382276323783655278374175831612887273765244528717342711161741736524762376484441871732415488261782844243488584557637678285712767652276276113267611235124285472727182416176161786811472717113784514412121473463234868728578865132533412451466758743674518215674837247371337163653837858775454844337263813361233583177143378631161546734137757176872756271621427138778882646215811755141772871384242137868386546528733767566586677541344864587846725763538755528364175538577468127384623315527512625238687282163718841872481252178683237844752118684772582673471426336782363574428883623551565616118688483712828765747161226653824688544885777724115828517233585561281671737366677835873663623848537683642265421223567715674135588125358236777566523461644717363365467482748386555852533113716681847673727454716353222477468117188756715341787421437276128588185841617838627431231655863872588181731623582115775741343612552437122241568376454818111461383113825631744372834432182115784214586735411844714753853168328648265528166727258344536521543174662323885377163884124762476751237831876521837883382638874238348118617155227513838213657666462338718572284644817875857382137832718736622176546115366112864663422162333542763243368546781863374147271582365358673334523516584168583512415131655158416744111576133158816261833447145481811524386387348862655866467126164635135451352747171336874373146466648782576667533555321447427655481865731516136373571585116868278743435543855641515665762525233124436541713164684356418537257235238881641524883125463185862654376743414565534546748157612767865618556171544114378381731814411837654162182168213683762733361138855152832217624184167221524236281756645736388414717321847467786743124666185813453272876778568813774222427617824818157336358846385466228556254215221522853747434672358325537128246118284535848124256247317171812612376481155656678353251667464612735275372417772614188766518675828546632878366214264256574142611322585441343653171463271682537351415641664146814151845165787678431852638188681763566231678147146643722387836518832355378151425786644573363631574415514561573137712238253582241656224377846828656578262571312147731857757121175411834243271184836888462874658858558864852837326676388584638222776741233125724253788725857478634417181381542167827566153516268561178275711113862437711661483321124618288816851161511573522534333453348885382865836171413363352617183883577474573752858183338585155821248644162454328875874531286685765346723635136682288348328684232362124373446765851875727483766161362365626384458557716245538736731656725421766787368883225215457471762824666156844441762842253862825726851565836372824178882347211678144287451177745354758144534518563658455461824216587258623748356327354566267678115737758111546847774287825441457631473174214787363788241685486221867342362712345574415241376118183587421662485121132345471187657873625658587266841664818174741345567713668242846813181818153773316157125511714161131287618677124411368731466548653473723777356784421368823367314347581474868645657772444476367417857862168111675221364468216816487752157525553764467814422177427888165534158813441716855263662457435544126626137677473855823755564638717568767615443418166141566616573411874724434461177677711162781186782743742388184437818123252768217378363568274587177586712755665111614651545684562131677521176354182457282657722874623274258543642754673528887256287222387352233125544552227888228641861362245523233275887757646511354886222434616685382633266787824128617846874641738618835665234232213566351785775446145273385768586843345374532243424132867514261431322851871785236216484722818848671833831126316526333675565161815618118661467121758276334817618378845723855637311385125176853757442124175628246242311725517553317516574742426616837688216153181417155215347677167786477273257388162272772258623512826342336226183827156877851717661482534243523871476142586374221251871462424372425686826651168854658655714747641326517244826863134861246287152751117887881343346613374663165321137487353174327645148175488682784313247114512173276255464438528658638216556634848334461574513164614324876628771713826571131814174116211848536574563721881852125436744518458676688847634685587716472548241125484158838167574464173844757736476588242147416713821362347217815351242843754115114712833433271473256446783788118476346575464517721434761655653377812656214354613612788754486734224456237231386667753415754286525637411831531384648851512127446625436286248245367263883755285867167486117617835628665121231784361616474744323582225636716583588365163425446462674243524841888735433441885542368761182275263225426351425661764441428346532443152487418163628132631661183244121855363835217776621373458463842516741634321115437456762615655476261713245322852614151877421668342832825257328251552346758722643516715121427434281382166547488741486888641281526225372613252133642112163758817588714564848723256167862313864671351674177631115477862663166114237886361744412658516771646346735525222883444275136411474776168682371278171414127425468647324288177185614422888432848511333327336213441553312342516257757781628311614435766617427741236815864561617651384531473857176646711867635451256611727118516237527514163578312138761551211574343168163481187266144756763522623828833348148732216678833382564732422625626266477723623143365315544776324636445823252235138658821488181261864153245367571426417444823186653158141567422133461272341648824386882117426528863857672623661758555426764226278232816774122217638332525644332842783566845226585588417878372142327262836445714121661525143223145858123467814124151712823814365762741173544643117655523728846531374458623754622554125867853673671623354586668425783458743776114743267337654563657654614583363444632232687214245117148587775786258848127788828271174811755334616512578858521545611611456855123371217111153774314375432687356655362277341328658754154733334861116322123745626358765327247334414643525758837663526617337137568618137514567131158681121833756434436253671171785625434486443675135722741725784133343652185461543272156144381761114848255457572586363643163221226382213427266873625888816378887336424455738436468855555343818338141172665575272744415511586431381115862476612856367828565377874145648584822217714355778374732316441165457535323415683527812788443228452775473324788722378428831357381148576878165123842741443148834838554252724383373237268548483456413484373773621131544287214451657867183432313173237544152566337782581511631617127548155268412872117757886664246811862248655851631463768236612818155846712454436234226215576336847482778185414627111477812545388718673572737361166725573743832513162416245143758587625666868221434241862546727437766134736618428543336551282632427787767527251175115626346516327264652423385163361413243461188576153262211677612353263578386854556554661417848161384622342886151775722563356861868317587487764748382247441714782487227154541622517732343423768678187564834683851383527425767315373748218375336466784213771321818288778673716551785825351477238645628356614168128326858156571422671275546141122651125887346855184117363674455378371536452756355333261185441737663485112887278778262862473455888238411655174637544717646853543532268215663716567727678445616628733728353334557338784718875517287466162455827622287637582252637142757861252883678248868751674488562137151828254768622387435462188268642733427781433658162315575158133265267526651583558686344556535723235557271845752631132584716458368881415568241174783817168712445814852527188284261537444885116587154772372366482215845412622347711287133721555663737475646542422417821383825288572886566282183841617737636746682581344633743784864714334128355271262333373253525683876354876184277172311633554188477628264764888456684326277357383651647275374726255644832556373225388177573662356877871733522441176585348622746185488277511325471645746715145425532426334162361444687465845544783615117421354364434841134658634185516124256653183446556672355442667361482254263574841575767822277172622513825844487252718386415873742868367762277663444463172348231186874637523388311444422513135132788863785631631761218158468648738732661241213358176853886431411353426511338534287773248472228324223873663532642436411425544465587743721268114754562313736341488844282818868852474515775265222776715152655557455865221344733122382517761882786451633657247528455515148614882336481436727546577117478851121218825556837388117788336878181622363585287634685161663367847565718738854486723136283281884452587242783247531784471486452554378713843863783463471535247181488476442414774186342154345144271637368228584153456552655231325487382713737384541813168458181638125312385225345832316812722745454885222488574274474665824268314661257387325442758823224581237552676473775275361728737854666583767262426145637476161853338658633141358663282681316488388325887218785767677824554358778772376786446681554826362766655331137674128484441882538766117347312276387246357444366321522152853641366256583134461153772883778123758275814714256837813652146515581565656616788452842317267438174282334814441355441346154864563148743848154178681434715863425377362256738244773425785273481128422634167887336644883217144226654583181556475128468478151448611666146762516168775381856811537372883371586314748178265432243871748763872678723726614843267432476868857283664616476432754654813568252136811462125458311776263278665868355363261674314477265281236321823528433561617123881215727126774135548566233114854845273682368647363878567744831482518565468411316283111551154763871544251187277513474131245272276242326132811321667267752467355146764174834863688273854762656836214677662734161677671137388642468484357242214373746858345171373732254137758353247718544142131428312775327823334675535816771487125263485276226375745413752462371766716482723257718125487334438172763268356378138686316135245653848723648473353328618878584648838572756311312531262758725788758416583788538758566643381766422458777663626362827651575342871685564146475178272614338853717776431431278643657487437423618587781841125558522422862621651666452213874416367216184232387121336244582638335652457442666545567858817742761316547388136756471866734327482282413318328564812165447766673582447348341266333438861427252117318741641657851381854113487385186662615737233837634282541166545318438573386286165554765477247437447415385682385726864517388733676473628377164326823161861751774482461464342761233231284875853368223258353286318523312386778775414728721731167178811746435463621113542675482258756532251487426426477526162757441254178624236775228142345381141736282661783472668664765185165745235488477782558522668265643884426636532176343762137622376546855327572646166454233684828643117536384238743544566816187162168772521681244155522262767374276135844111674281612535373276381663767835814488221161567852372315687282688614326331154728147768114824658375627127121412465823483873827856587881483418523763122166365231448348844852478765664547875567312813464558617354587658427861467357212536214115254536567132244831427631857327831151426236846446157827613445115772724216587317623214842353551287476486756556175382486682653633576236478131448548755474346621534323651531644315371485838357377611163685766883477237387378717647612872234824837627556182873743262468653612785566483688856736754867588461646213428457324654346448888546277755717648271316317852527571887653318661655546876648512425122773773756533144638468435237445581838175635646228123635255686325475173353427115617832253782434637216232561141517162384573473446336826744745816413613127265477616165718883461677747126513741277882573168472251834413133114232682745748757171138261171471563613553244276571244237843877132162134847125641562684458453333411368664233467432382714341341651477452445773385431377628423187233645781838368472216845487786376611256351743652573347873638124474561762756283356241545565466522838616757536432256876234677435387365527362172886244863132742167851272628573633857121434374186758847728364647813315444468577361822683336686156457613721667252351126428675482716534515577164765467171155381142781742866733375823431186232385272224126666654213542322842742125344652177624245156387258833145246378587468748345841456348321515131888332773714868121625323444644633333221552855756885236147562812714235277343585845465746581442537821235138184678882476282236176747632231611267254462647837536877642522682677258655538828742435865127354127583438643342235148236715381618228437483487576271711451686724635377284244888574354366135777222656246651726641173268771134816748468285874217315681347856417752315375863853752126121563871655675223367661626425286814212243617878823356377836515783774567544488172324122822232477736858618748747645154812182848437684552546487763164432612856486355476547857614676781166222532734378618584832858447112788143733831761726378175625536315867751141786565264668247451147331123787776281466741434266777622488665121448476231361457643461511277748881448268853857737662782726262251312884478775324282362221447331336275531215436723116835141468462271441252682178451641322857865771584516342246242823521616263726563888234447133822238316534572337277211522424315288286446711183527848817718216486165626363433352742413288216823228472175477474265426445363624146172778184583521163616813245355823267774333682685136734718844543521167486425683263515846741752271776336165311286444888348182261754577771377486747214787383271865421715513343633123453788276861273258668661531882747784618483221482148615465525615275322738146256166617851218645824423685511886558338622432362864875352778567214783732872778163232326562435822812345528786361643772218348411516782853788282366322532223163183433634571211433664884113815275238457526243846721375445633357467463882573864253851451624125568363352278132526718424583554217611816682615426785716226568556424424758171232826486775133157686614788757771568377662842246665843422187745518283846831124777173372572135252267232722784867762611735534226134844783142438273448282352734544585674848178666577566713556876316864855833766122738515737435235483585144477788678336821631824568537638746585264284853183284227236666557814217224528488764885368116427128438327665325867354881561728571531132455184372176473288177845655437361871115283546836434335761413741815676783136528767357714542813183651146428636324215586857237417361151457382123284741113885635538212246172251148571287576156365386571745132142551371187711147644357113673476618436416854665285532133166424152682413714747356676786713441526473583531674421255434171482228767683143622221715346451561682635214275253435275426133771725658846354545748867216878224813148688385345881886314168582147358828728158545314642248615566462831523177118641724685233371184286845353732755484853246472271568861463412586716268284443627645338165376413253538257668536362864767185613137852573418158782857835732873843647482713478325261161514367562732347585533432548612633668536325556476138147213634866213753154676434283666574523811381373588636446422487723375333352151325857283582441338326441643844645241736643777576515321855826372572354625814462728421463635331557753825473585767715528558187713558517753127665213422176843624675246628586433544553651115144123643362237861732886237318413722742678862355418284824444345433277443318331731456827357453583821432357352842674446243177144413222454871141875438121185581617538735328314463812583587117765235224626644756617733743623286721388761183234712384637516523362151134713626163818332788457774881658111168443734634574438364638412423126667117261527537264517215446435657467242811764376716287718157274687473371833157318185535237625275684887882354684668222412264743868168537321681636615542755216254136171418548527845218472167682164767575431157538151685863417574627465675657212273748345356611743651725151877685171871366844887228812426175751454223346516566858845144458844656237153463238432825386642513645357738776256716864184634552525127582575851386851128152224455534471214456153717711426345651823827844871685836374836627773544736276672321861218517836622665625414768811657774314784465637315726858721582836466446781138456114461428167332864678165637371587131742645268362781466886424271153287137555478637742111458774756836338255611541174755587572636326146162288723882374543357532831535317274165432238578523442235255372151264666581114666861751165511476588536372883465738524572147776213162761866721481447766647523713116853648436243744681862671161842646827536812775325118347822125276535448245881222688382683784127747173883573312542231311555654218816863387324465358375111346654555327527848443867474142165442413682523326722215643627781485243222334552813281762713288387878782184156827347371231545475831816675277471861618487452651828821578164572578616256167331823871685218366481162384651171248116746364287517661566832511685553836333728265683726416667436653853685637551731763421246886353545521271813682668626681181425451817673748117342218748514544175745321255265651836577137588664218487521133268833577451816748356885347127414486322156724487483148341653258588136718271586113113814168875822471227236855656853821326873241347161844286762124165715513436432334885112687566844521142181433334783114338783186126231115255278538745838717277578767775181625348228373338744263241685765843566155174176657171152677264328642146625681126534686535322754387518332567558818348618282176173848568476242238234751671745253226261125441331351385121764158467775464115617481138612485761417343458756387746747477224762727618154611386177753517128516355223177555375683448615174132446655134555174248551186614265378854124548614638672381121287636577686122178452176282283823652821546735633545311188268256582458212884133176624323311723243885815762242448726345335124435331787164877181672372875284586786845628764644617413362577116383176558236566817415743161767266572816726171746387878746881467125372654138774573436422676424283481323732328464676178826554174883124364412245573257741165531531738825162343817883634641864136676547742676636422475426223582756476832255837338444676185114366515314481584424137566862473568236755854173132481347884718255777221623772781841132782172854432854673662751552535674472337642513672147273845184522136355681452735518424418524133746438765717642212711327245348681818775133787865756454367763487487146345634182534848363228135844444178617723573137561883563156212676516148413366233387245527244112638414122355665584475136426837767728771625247716851421763532118476135183277867321462215137388813316773782254156668581181585186427755112224371153112727747343152484564456785481782648528121473532157484743872137767486487143462546456431635585142871571182334288814326885125581774513663463888776277537245414158525543558848784272135716124228236487648314258267166225736224737263184834116133436848487128218833882452862341554344874743458327524421573414568563636717111617258668686637252175157435215246167785361111425674255685363867241121213214252481715171667854467546556547831678736832117861114828542882445424166666547381117581114763114626734566822621321246244281517641428545236155784567788228836611428364753235312627514482842623622655717671326485315622525644176728388137756413183322463643222783788313785115364316511475786643673574558768363513861827584837286225347222738271233384711214183475511888162655345674255842347355565264147714448813375578662563628286386277277745661384862677156846363847465241474423866742343146343537362582611657625481232413236251674718168712673273813648838244278351334212438327217448138854847541263258458372717323733775746551543568264263841773162811571246767235213388371355637737546337622511672511238362712651265565333453527378488833674525533771471385443252257227585547266252751781132353538821635388676187374121638852275666741336814323227331313755143526751584352371662182172464864783447214588334362266375288643738133841868757382128744438184473143334482874563671533575553556851251668464727743586724275142684771816558817652127661748148325363424166634418667414555161658285286664836374317755776451425111526353446751847624717553662767581273534718554436474745767822461257417754771721427517174846181615524818444535547185754355624671312318828463886482677171242376414312713746126436381168281828326757838773545277473581268337258712351248554648176412185627412152274367771254238441356824431536421746235327687642377146178218742573115387667588784264878588251328575715378735672787355715721427136626742432568625411687331877571223564413526287644428313862626717634762184763244382378565344182734816273538844338266271385781843841658812863165588164113382142446477345213466632518871365171372586482612558228445444137615443568877147111882533246316167218233131812618667587827318616234624134722152885625263884832242323476765167827458166163433556655181446648417244722225227571825482416762427233672418832476567764174622563483422362234178482368443865133837341463255331278473826322871744665362664887826824326654718584137262437534422174573754815852834411221678128376415377744136286387828156155554354588343343123628227123485146443788383634186144655464423824635562511448726271545752218287631854265826567256277654574211141785228467122587722656162187758787176183584622283364637543325864463142387568675572645485414852488463567121658263114314541133278175813412543431337737773576811768435466536831661413386345582375788433755555587237437222472616882442777838447362212583431367124864143735441343254861321143445812412352816631123211732813854415346572448768831722582457748351782115828713656444254865746632467545247777153464786853133766621465158537811344483658168443611727188842343144453427132535813155455421321282536548128268466633375773415234454275786471826686524767278318312488848376345625344326285622353462155651872543133165744823225153835281888111364376732838811523716335422832535654316465156167455155354224176548665177574362713474611172475741374877744741521837485114828581238277658113262734331846888824637622185815878263316856326778358777186554228233138485224813444123777243321284513542624212126525764677526635756766648236148687874323741474155413165147443378664115158114171426784385181837853363445115581232866883563235677825336534253762528324637152336224426676152138382788368735654333742515221231136726428488662685168786475584357848351711743813126665318857454225642483166424632188538572126518738165142471824131848867746514177852252816188167161123517824328774581786566263675647664466865541111746513728173324287335587223228854211478156175564184551132328815872831813321747853174277175162261434225413557858334753227685827132248686623115118271183848136841652386155133613236344337232572224444725388526438261253143717628231218787416258743738683673412325115872483167648183562536533762333537636111572142314264586868213432815316421535762255614162178382543761222265428612738245141535751647455343585222315388451524755781342866872114334728465286268728753615314514534873536145468342383234731842281258528231446477214286375341551545587176131445322341665318321874514123483243335468513181882686226375634617132374244211261141762281631786561484475666653757534421273238753582116563747281642673687672636872653476431348371447424383122416643576788521527238771366275423146163622368882721685478716314525878221147146778814123168381727166855655458714382774671325464831236688313173478326682488135478218545573446754776253382362565256227332676358487218116833186363881384557851718576356846723241415444466352847863288543382515523753368515688246533486436557778662158825542263723123433248534251856534778885744223156441861356158462745412675263278771866567743776532262336453731315162325218246815123816527881682254183624214584273468131586652477856825815452878873755821676881453144341786151618882253387556387563683678141212767174321745462887257282183274152826127117312482363188888377448332814714245474272257246241585525425753876482518434356541351527221315611818736751843263318826738536613461344585341563453423763626153388421578271736248252437666162312321165143733117183742678175313211776442421337737127856851157135223526368412872651523815571454162824651367462314166324873527682874326143456686758557825764611488881282227784241786544232552517253873282541161648184476317237844312377443115275773781426841682287876481362756132311123414541325224721456333812148226256267211722761725245236317776582776666615483541265775565158668854221557214157241324737831866533642716573178458281631411587821785142368634271288828838655247237487534287672687371344885511438748652777545672216217286716416181826712225454571257873224535341813378467614667744218432881174145168666536668512837867636782815178126345613353423368118477345541422725476377326524585211811552514472176324213761885216216328548584488176287155224731147341255774338217884685817151252555577766755443332467128781413658873666122352382484366845852824713745456343568624221562737838176452613147165514185748123772488215173444326477856246145184343821284138532268662376157257547516626236148863535623185711263183464174357242182664668221334313546114138823738882835756558576531211614266245135335771135671313433251546762444674232811565216515532576131245328317187215733144666482685776817714621531771142578227157535233673644664752556774663568888577415676753315557815163386875711222781472462834674877776542778811146241887246622776565828784754567843847463182368685284771235373163137761246843718488543536264247542885161654645652366631326431351241626688734165253825824354358234216442472477114863234656258762258583317516874476388735222185361286236877276371126651277846474253763231625858127374417268576683646836517113665511511183147674648833681266544682623438434262685385231247858135267261121116863163652666237187524182788711284566533675188767636685572258248383116374541436856236754166151576846242386848682122466744248763427712132633358561764227237625133523783555847712547821734612773731218535621556377245238256214483571233664386625146635322138138443466781838362542212743515528254466726416413256164244515736418823314842552537844335743835563234452743667737527622856348463775282143311188427358451775388667856651182657215112553382887834326688765682127678511846686548677357812541358276717787267873541453841164685371122417881678842646837631266485467365164238724857226676654481626144621731777774265833668625756557528368147872817466414172226543312315818654455358168136358123121826516238564761664547868447458211761274117274316432777733544535617473788626624436515175446568646345532461718842612827238845526212432344334288156828637583242462665786785374286878423842262878743373867266653417348234126314784188853778554754585218576714374481452646362714333441457748344373878221856637221261776622242641645326313652231246382633754188728822628581414485785657611275624526358274825331578112573657828447163857158558623321475411718713627661475112531552676274861822848626621131751716741435538681442373622724566557838642262736432668542771837654144868285844584452422386485822832428885181228555613588218787671823778487516123383528518257823112851568425187124172182116515862237274773152563576746144461657746621718162228273524385632784347511687352571157821328858215388257876322265237831667224714833544383685417622575317286377631682237587148877643874454277852171813658538177557745347356158727867841563546883753177861375863631272847752557413776264268462782421664151812658616432527555484513531642338262212552678585631752765438668653763625883518143284862524457123366348784752723632237856452764251582472536317647457313658842827676771581811362213514841581688523767537527351438485851618375337371114553354164824221371828417733813155841457825144662731466726276473847658122626181848573364642486347624625556833526542745811726547178427871363582345228716857263167518113131458288777455121836714555262572277763642546155115755882515431554432662725287718354514452164138268316455145782483554586663736458476682363723152414561216571885781568483444621527562582356112572317814348776437352421323823247167765381737277814223844712286511146543583111517881872363548715711262481461527376172814738715383176225368171778153241623251456764453645544387814234356343387162124457118147585624146672572247856362238748368831832666831115517844637618315257857725275275486371451786437823418357575161618815647686436287235132578175713713873648142332152322478154332563566817773715587421564148268486651126764145365116651234752682133634417868265665117721365112761248376244666344412281376583341334868544521311757577665382375374477442518236372235683788136235674477345857555445115482364654372386281673225451162677462846332262751575514248253176534685187212456275632726787613436562162568765473523784444822321577685522487513555842155524345451236477586144468551733144174381413127543844342314156322635224262244517888183221335124783365442633178448457646766148124427863785261222623257512312724823626616723512664868421227415557731256745655828885834656183628488214755431578247417868665816543431565674438253663466183683814353361517858861847354853778776367315426828463566158241288674472318721278133458762372452438574412353132611826588426638763476524628678448521846874646381517161432866822848648337758575516418253856647483156178465171511842737788454858865531264342363454613552463468252375418433631573651663778283728144251211244263115763127637175546863171184272452648816371774318615871546165876247687433167287235473544257445235815424782227131648658175886168636874324245825555122186346851584772371382744115576453276443582846664714655622271576712515452325888438454832828864312422665716862862427576668335735837282647114288431775558451643835725686556676576342784521544745426653318163422615882121164248647423423386535415162863546161542451382322141287454617663331181386332261335424351487254247756576376281383732837563457743235888276853582532784252453317321875711356222465614236872372174732128111438572713285771174882445213274823777827346583361656861182461758233535436745143215762571427253643112612886581477134382181476441656877166383141723818215823557383157735565546577677265457611511516155663723152871466613471286223537155114418364361631674351163485867147578223528273856472555582777652416184345831235571385852135512428287688873166321156622412158711675524463471168673414354526164743351767215868514745346486213574578563453626376767353618135351768436647611817374271157856252385835268116116435724525376612517282615615872622873885582752123838688837235464367667874168877831766666255683728552151426421714577724538615144516762724525513651413555283383451116787216434365476437617817351851646233743778474126585445741533353873836221725237583784375137154418662848682322246276621281615713378144124743834313862642677228244257328411463514756627473364358442271782844352346115522855452885771761651286886314836728324181637425242236526853423685574688633361775567886383384531187124156871135388755472417561245127274573555772423162368633643324733277213456218575768442613811181874685186624577725755686644658646223372654177831123642126487133742641823887771487623434731643574457226425751885737141331355574688412718182177322233752853212561277837837645567347581755233876682185848728172513138275457723283468864512418636131825251683127154527867278758528371486523484886247812781472314387144366675672383741138634741861742274543221126382361834377362125711364572243573365438453867738418435581772731254766328673455863523742536778452517336864771146415676545224731671574766852855355534275764226275711276577634338878864417531815285284747382724468835346716784414528171718657252745351631176486455453214161552736332863661361625336646751463645344341564312863465731262328571674264882328423438628416237252786871178817725735713643163745685174182678237722888341644688327833813746351217817538568137551118466441743763633276613612434212728151735177416785133188813474565247327433341825287457444473415638222161885853532274888886237487478276342546761675131838328755564287782113455231418463161643861386745613128337337372257888383387878258521441734337421811445442345231748541634663214255866221311824667333356473611223478181282341327216248747627416622686466362388671182136414252574623461656783731538713441832151222234811555517667345576338412233313518255675252675311534272381582522534113288466554327333423548711851421746343665213833774718675347378131732788368338623784637352156668347587125627571555887724881624355264573245664326825754853685271685753234761288547284675822238868452772227816862686655323413488142785877645883762543742252452132217482735335518468648754161761651587431668216644624666733526552361114767457233361686161137654881562125552444667616124274658115767641283846464212521117261141227172667152765756125685518673612266144726653348627286726345672518361352837827576312653484523778376418367161828226487716855214717445163735877416653583775462552865538718317717251418755867223426638326223884428566222325216244474115736184245758536465845335471842234814834228631443587727435476315456445864546556826385188316146673834571841285846673882783287522422861524641242566723162171418651513665638421644133318477234268731253433175626171417856746854713588533837116774575377532824364683343636243737876262185883378417443766487441335823738327325334777755464825155227111117746148527814522621275683413221664347356756765136615242258161113534838574162531388573388313123133483452527371471888334824883885835266188736532332761338727167351445244783556341433256214162764518783763285821538832248656518831526863778447152154875727147117655343387387684768854442845623277778627417374631373483374525741628286814437761565465763725118137643814424387112655782273341751382588631636237851415571625362381228148272781283214538551286885614577186246862858312237843242418837637128772664262155748731877861711328756184527624865518516461127646633388451288642783651156767648467317318884538418375447621252258185486476815456481585364485662247776182443184633452575181327542376583736613133178316463415351145464624171484488388686147348321754835144258686585352636151657414714124438165684826148455122853418817326124553622385337446617558215817616733681788223863284125833583831528585544553515532833283413416264123364688616765135345356563858466451781462644327818142315651664461551253127525816771627273326723735751638472678436485221252731874425288213877821231728512652448772112878876635458516157283337373188857722285432357623448448336243214555732472226158118844747258148261754553671145845516852764347865116452786481142313815743274661766283138677443364244624618146681415477452256581574853223123382318557358342816134281412314641546458884778845617226233864184645451346434388551838612167177248784588733337741443462238143467313738417617252213318423883836634666324154865785623532571871523656477753821486655877743787728682338765236763414168543428361211348886215558411867772731754545545145435171827171438623455711334845477676475753886554768146178544752676835261266778765431244858341168737845557316278633426818413526258843518435654684833374231252764638671681252386481625717831713276752486578367124656287687438724416225768766564148435784634273521213476323676752761421571657626616142344618481244345868685456786187732258715575876468418112382657547333311438123746776347544328144766215854426761545346682224617772212664723518351444278852132727645572154874865826482487312258521177351654712113423533423214266762666317648856788227151137424717834665416182777658534334146126721854164661857381223343716415284878353621622142743166114455831125151873151362415478171526678788364462334426637866841158334324726251281213865468633738663262253545621342585718662642677582676646268868735365812663812467546816581587146644231414455582352643118225538363383413844464216432438457677512541746717215632445288732268625776532217638368574168613536467143383274853541217572522565762643668574878811126542663878263116831888354854163774521715483651154143835832184433781577286553237537582285864474454577417731143563433518713851463722638127188416445366255517244583333241628521852588871117722867217587551272764174573348132824712256172151843422565411314262543434138315856867222432568575416646758756823218187831774612858383875526274185661554338661532462436875313778855117247172745677732281686835537148521334518667537613378732885765387186514477732367363216412555284653421727617412337616844768855821322114842682881432673156152254343243614471331148327284785626727138151514644645646222272448132581516257327758388512726537246166276712341273662638567381121626415653573652838718663552564543341525764211381877422767134255245286771281786852414577386463877517872662757214445511318143811731235412554172585613743317515348168616533837153423654682128654536286821211585883226375454325348164756434153242534268464513244641283783717288128115623261251522411356544223725683854832827676876627443424783168321722663146635183817848835387771837685118448658825611381788634687566736471443114641676453886435252832378171841112148472647881226475361347133731812557673572381817242235618678431672226474362337658548178623566312474288325118542212661342565882211278166347818175353873711315275313771572172156258546534531248365651478683557774617457471565518772571126437323383785541316527262426237737328547834258256528432244853385227178532114638386781124116415624483155234356743538236334844316625127316683176836528258628141627871677446325175634358722782554158686538861437667183541481622627383113885618466233284313865213647848215765478763688178243361584285173538844722276663647861181111274544487571785267413768845146632773383251216471382578148351673762167374161718888124688531588873758654762848818471845767887582544118573644284142732385744663523531558478818823763162556173832854816525515414381556772146411312418122563268615367615521332867114176243236257381162621451243854138754766548377371221855866337442483468721647543631325778118521458615376357768612738176844515542428624356284631823527273633354253634265442425566535321258244651681166327566771533721445461533383366618432718738772825252222217241817431217272135327531637558364132764884371283772532361185138532775764162177852772618677187526755447545711266422577226623474736431872128243575611232881715388583356468174318568558715885222177813625684134647618271638347223871843478557523843867847838657115181144881422626618513886868638218828465476348528548835338263283642675883674546261731368275262415371446725236551233338254467677273836665758221211534228463231625177442817725846865157182871153326662852611362137331111785861788562437315317562182262852414284727862487887724571616558661748822727554124766832612323255341833671316715753245373114111681744628748278742256444352467136272341235651384518722846181511377118227381181447138221575332331612371215275225687576342465664714542351777156523142733876154584527744537381653864717165642656728663723322477441727575228852643371652854767517386224343818243561213455433853788461511562472385125227662836315718831176882182411123785658455643633317187863214372527783635858338231148516834322244828858525444166147187476565688757753665875187712262675433867544375323472671226144812412767677624325534487471281377215343661248566281336742731556436831717537582871861242384226751121761238155248816137834446778556584227273464364133536536822764274515181836363743285458247181568835185258785738115656337143651658238444381568261633133883368382874835124661687437641838322822221278771237364616441441143314523242676718385662116221731662278561337175824156357836621483372284837436884188735388867666111721374724113428158647242678875147732774375383315241632788477847432618144361362482464521254628552383884486574438545667688252216143143457263216237714244736856337538431857345558316772865527856478383175878442142736673882677382821388573486362441774764888788587686252562784116174251657586256884368422217677343465237854666135153652878626221266676277622324585767653585727534863686157356316854725735474743341266872726127711252442151444735553212148451318881142844857116558841644386177567642583858355177632683787585158788645111813571843278468277481148611316164372373652684273687752388121424757656182727243227851758731768821756132814687515117184174737371455764855385715423338484766515327565856252643845344371736254346783155672842843147542574855461655652288841745256876215387584538281376872132354818628724664174664463166861712353785643216374722827732588235437614867355851187771368477117351132225111363362626748687365181261178558375568441775752354833126625546572718421488642473835787566631154282233748314457417187515244855172285431167471831611527612786484661824537435485233755525782417665624673486613825381458638846313572821261511712487244214767465421512634345135842755773325753184122351785388553335581422157454436552617314828858418556438244377511742347641685644356881774878446422223186732463485172638624637366157437611817824428552232684477251883431287571127544766532646423178132247665643587644314268862271788671447572842376713881874662357375336255346274732731778723144763112776477213542422568141122568541735234144865277331815623846581633256327622388617718841814651684168387668856736663236836188267535235112684334162385687864877611331741671221576473818415584334134215844532551814855765322415577165356661835583187261768521735232763281251468645263816864517137861781512528251676667331672554312486147866582538383623481213333148721517263185624156312873323323285323615114563748135331222554864165342543671851523623745186251257458674847648652633174341555677221187153876728688666152124383264871782141483362285811673277162361346557587434621761845833441666481623442272328316167651665342847616656545346274852674441874645276517258483227263311742786836224465357816377112412175332884623761863753487868168874174364486643448672636473158657262658285468418847126732237788213447327555183186565757137517535765667521631515853544126467337475142461411261463373644282571437813746786773526745176585454484854835672828371652731551783718314314832134632414656413448431327458728583833763248575581481533865523478342638828464631441458353525831454527275788368373875822371533565187573658685271577251154114837546865217266452171883557637122833335425318615723618834614525368368812242218381657212362681834531422232123847161451574424263525634457635676181715751818375347862374653872566246783581488121876715747133358874323647476855823384534444438484433656255857428757877122462271528762177343152813451258816121743476582385311467613778776155735764481528746543328657385561221714723841525776115647464637418441537472214773251624467736567572282611831368375844141738543861776126118716784885381148664851845316824884241618715711766728871121718268371341881576228817856567658645231862862578817567423271542275465553716842532355767175716831267633661854124821587363521714881721656723821478535833844132136265712553442388218468633733543836526348283478165513246286547747185488315323726446457176482742547286787328316827354238877133887723462881436288132225118873772251566453513882462673271234122144666327338534462238224214623576541247162631244854576863481618163657535684465837375678575626583564487536661233122385721378615837136781236221273377555654322775688344156475413316733415484378715418715241457658432448675723768818856247874626266171115584467155121485371353175683651778383615266373522254427174111264784131544873381422434317628485742844518663818622855855734638823265283768238787841246426488157135552747722486252836537264746641866256184714585677117822116647634146343733778127827476574227852223747136172878342771544532486218441728287376821215828878778515116758777573772812251724613328881573251118383251335126556475435264478256243464467661175431174651115631115322738362371521384731447176287486368266111738768313154727544843576364862624616287268242162464632157412564611126543454321266518462322235265874335541138243568216317277464163282625775466623631337615558125841112341786455424256837241142385416642371636244661128813524724452682821681874446156816855117244478567687682733215782567744558683558485735664184541763346713343515314853421431872137453181134151572566868177673745347524536137756128463862715751475844367647523781437782673364873244577317661115154534662585151264237538413164548188566482564551161833548745266746781281854478286246416152665128665445427556532743551255178577525261472743583467481475672216858235231824841346686784137247711331514666151155521761763674135237288252737511638615673626181561178511754312364241775126433158124172236253471462546227526738742846128645771487658866487742772576378823487247578143672232171217533185182516362835261881258348168267367535827212388175217238715672226675277655554168358148826585476142348612264347864777448255613167282768153146834377632317764242557442413627167155835256611274841784511848655162622814664753854881152146677281443234517143145584386577746333446451827688663283328143874226521866855382365274523186375763185272534263168684116815311756763871244237444163163741862623181385375688411876882235832758268714112677285343118782381166154641641565484625185534621736513533614742841128575737811841667537558118784515223613213284832654516176133483575552768757257388416125375571517661844821412747787556682226866744414753554348224646822213716246586648185288662745534724781415234565534141827712132113578586715832575681647585384455418145626326574711475831436842183683235554277328357457561225482467756818476328812656473282412217843311355146547768187174321442712743565136456284711577618611468353616876523313481117765416223154122471232133137138573224445422831667647551838633351678174333475128581343115148362118114234448621678421727422125325833143454335464122753212463555724225161463661247374314447464545126581543521615433723863366731831358171443568678632684132665465166165216224282122382454522735832617825537124836225851478537727857441111567831518712448162751616252268823775516473687382253324511483372621846275522112226224645374377246781528766864156364418886135455235387862637131437574444714155368515888122532642286311651225723461658232172822237755481278731736488472261157247583118727661621151815772484365131141133586237313811478384421831845624561274122412125544153745816164231328327427336577653887244527836158681518133377228518883355148432417227277123784742332663747386516875781367547688823756287134454742337124875352211285715565511185884653721442538645785128577343438515856587751472862268786322535182377543385134387222161488623733757278517277227186763822554513544362378787675245438782643161825422418385224735177826677154723334162161273533736588863745826848146323147167342661364618761422423621621527327275827448822664473624486527328785186781358523562814448617218757354818645356678776771557335227644714735867336864558311714885765216346413335823865754844831273653184645637826828565536626614161148471851443141667386565216611664328874135311163863338851226244373277371866571836256727436752848743561527872835421182512354448133176118566766867147815231532185111677234577264845415824644854131687527543356452662821382444526686245165312624771673477583145674185262758636113746171818814142427644571113722685461527515521422852466477425582737556364782511785643146488138718654857346217247467673178182863815161752262183446374388257453628875632858725665451575512144375841514358847224625474134715381584615142612428452115565655875111562643423622367144461833236337455628537565788263316118328138464113666133378266387815514516154232458727753778218166326334146255372854748173511566785588813385883175126684152768555665633567256232748178581434345523673811783123367372717451855267143421288462685278161722864172853784771776536712718486643757813388437473215575736373846883684678388137325574126451622411446474124184486841133364443551655311473472732183285273624576518715744152832726132641673637165845536813783574254178223253658811568821266121515821413487751441267255732141282448456415757753846422182365371272787415676568533274171266662741176537666431173381465277822765541281867371374371187212154831274271344162756351458271455445554878123185372517621637644878512611568578274341612742375671382567382746755755884237466611731544443334166352852835447117752713726251257851145885248111572633522386128475475545236186742875844243812858185626348828383551751234232476183555245713633654336148268463167184275755285122254765458382568475513658867431342485831456674333748215662222845275347151737327217276653471335748141455285876414382824767882243217828435183344768622167564485763255668348678652671757312351584876424844562414662426217311166551762833371581534762583188686127785187383812165152367246273544321526325226481512435228533877121248762881218268117581221568147752715552572475173848562685288672522764833747425366331268355328241124574857366814317371825424335146584846473141566884686887181584221365173186111461815285614451742575154151437475535752322654418364848441154817432514436661677321325826132228628548188422451782831178757661388241658357413242142728682527224738761786543867748521276385726286774733554717382213337527188775454744758311245333325267874522164215582238844146475583341413325734353243233347552217423253141334636622812333687868671583867856138417587482636534252826273878648378115842615434711688476442865881562735813223611336864627425762788662837751276718414835453886145517487373867548375638761661444515422341243667582755641423554861272366166434773155388841362655774872377131115177574275213248623271118778546754678786373684235121227763387868183868367643126335124811746213728213111461743235747284835555546224424237227512742536631256671157111271812757543755235247872557455273744186557781113334177313726311685664126565545475751347421126743378487141612841182116545213877215722333381542352432772112461787148363367383524334573371576633143138363713754384612645361113816326824811273228656477125125475767138221335326287836317726321657466178678217586446677265864638133737466184723227585478665184617187885282543564431647562737318117554244818233343113538463314271613227275768164162484187425413243222111386361377473573482888773782663362685688236452467523262157382527484633543885287521837748265387713266181185372143145575288638165488668435654867247456146115523838882414676164554466171352871368725835411224271477153884672678351721162248644372757646212455847638612833756282133813221852246576257441483772585742734885716434251881688873738878252527785548824671616384347233257168558118661785765552655278451337878441323283646768135528255247612646375364384171671212134358681855651283233611468251438722481273617384664814526238267821168274122526874332383616681488456162248381675774173451676685612825788485254448844851125655183751148658374475161452524666836278258234637236431575785867531845761751733623156174321717331182547371468316663377411557141746861417412117764268575632413277744572487218583168534254184378663722822718664642511526123127174462361222154527335487766777576678513534435856687314651387722171132461414186432258581281663837617414551631433355262351833223654115457231244265458375377366683188315135625748854878276618467347767172523753655711627175688474862475513578524714746352571438876631882311238268621143251814563835132258847755487588775845818713175217757684833358387458641687815282664414554588528851885155456133881416763222741433582217418623118646488421312345565472373831837468128826654874111545441333173831538232866861461282483433742284254734822267372187837341231426517172261357785662431325848641411365278275861147351378873427265767373252755536352156542854461553487774625367563734485682688752786545867562327367777413573257444265363628822447283184422344255332768146688531125385687838414147884764241788752481651421432782376334654631675575647388318258177611273222358517638445145151557338114313284245575576151235377227735835251642868227774716185573853546638763158676422417277345647153333778242628157718684128658255254448324552227115631148675316473627528642734384853637663288846768337883172422463786351548281876516185811227362322147667387143464161366488782121282568464865212225353657243142137271687274464683375246662162832656735521656785274384137731674756448667788477756273355185263518821883363327153467661861456474865635152841456761336371383631134686258124761416215531338553662282564446728531741151271246468648483716185157637414438558766787444685165346726656661282278765316642318443122444221711137672217772678624683736225886865413524468336864181361658855223753271584274476876613445336748634848668777225774122455684438312462444878467813124736812455356164865464311772173533734165656433521127125183866771268272457257416278877154411188772661825487247733422716244822455623371521344787116273566735871413717868851146526715233412888646674441116276438178353218468148377723838226551234761677572572121812752743215775368134782111823861225866874363718772766137725763755858657174132818773452831417453657578156551426183314267275136862786488712423228121533152321124853582278422613375144411518411756173886535676624725333183881865344214864412668232354561525523224234287637415487231354825535823836422285133248657384672142584784216422684678612541575476643682667821246371742853621855571855623521385533663445316168614488827746835185123133664147817126175566728437586488753766634442718135617516156765422385537162328822572843355818241471548416287781815765682887778586556484771358826483133838777637158468544545537274247446175524828836487757462855371282551117211281438871787674827116753524331128238727866682774654148357482251773752315674838384385881788672358642732886445444571145282758175625767664868573636342826662666885442814462888358678542227142411155722358527228787618831482542644735137671162147577566226142372362534368873753572185774587375278433738434725241351515821758147877831448522782783544145287682256816851867647536847353537414328666368135761631125826841681288165458357845674383772266216832718142677238686735171314835274235638753566413775151746318484616266653676436371583566354873343121483661361518654572316662665836663136731856473746874411546746274444736778436372146474217442256562544828733562765471787618522237888182175117275488268618227381286213171287176375368738456256843334538327285724841881532356617841161812721158121728533724272845652648481253235224763125281355526747683428712881464642852183252785632871521421224257454221542682335288217325837354285377438615584124632433136738855253686333588866436271578332284778745478434881683417163683572838411124554853682683411636172774482553665167316563523653822266325431487682487755123148447535256476236583713674746257758572164412222471336552146357788657834142321465215531681333723747546612833646323775545575834718368111251534823251715131383374717724411128521733571154771727715546653665674437475467545523811531716748476771225462275414712425562846754212724437253483848182327518745335277371113347288267866723384787415733511481326214686344371751567647767714513233363866481573581862647284545754776143473432757414575164235361655421434744575336452137446572623835567617236661466565171747876248415746651333136354828181558248646331656455465116267267871461445144216423158266773666255257813413584332586228784232743168836766283223348156116528361374366841361378528282853272818846448184217732751468652878266167467477767357583546213456171744682235873414254274714757265216545457143853475563151282827115651365766663677331383373531841576263726281157757844332255345361657648424236862363656542663316843613325737535437661125282278773121142535144256123782312236162853857226481513724281172881564358655444653414682776882642717844765176447488464652147322158723885213517457812336517385287158818575816448385135755251761472368834584834524137568684742578483375615764326681227287648784483782128216635464483362613247686135747755237632777264414335115768258615225687873656767881417654366236424673567483248185716578665885514162175535555235763181856253474781868528642854431741432724252236831553423527637772472364648863323467376545418843752177158623624557476741357358212471883822253318224784521423133341835824118136518884446254134158748112417276847433747231343614378241857475236838822714434762866742547842254727426254316451647388511165281338772217514846126526444442836651614722372476645486611222864346376458654452723363641422377618116648371786675877822561687235736467465244778833785557684216686113741132265165244688537846372553534216123581124241783654158224574864563528681675762734218627242237355524548377424584674653136826448866182621433488856878858551812768547416118155817265258674772135575135743418681424681565611513162272732743717511866683254312574418242433378236773553744835158588471381237742486457342782166124632432521412212756376436333182132362283331411355871684836833215848127122138754143272565835345816875773556422423746511763384554747176488617551834382337634248388117414174746588835767317672612682113477533272745827457286454628585544356374528617428837544613622363367513654572134884757875246441637287551678577577123727133743866652277346261135737775575525573728144564242814583836552174637678381643237828344334886264214132651682164563156571676318721788852682865122484743877217256733738164222481288561737548164447636238622851871737871612367728277412448635478568824654752331225832766716855567561183177877858157315846647712634634618586152564412165488866138562513428624672787865422164744487327231168584463331447555788345164576354221336556311733313183265331156145144411216376273253478618475246451767584273417723736664622713215283617186844683162648167847238624675572276355523783358222534462538754178362533767774453515528778434748745585878426563721443876731871824274338362634513516562822825677852385888658176117721613412148732631826752635136774515855156718863652344276476725275636813643318375476462726588623853653574715431145482574711447631565534172635338845251241774324477841147272621412877667656777833676487872724851628475317685275424663566747713862475676442666218343286848725263877416752174764488725415384862835666158726281341328431135238372525326718285328127856631248747816185742462864565467731722486353568214456554571274554645552886321737843654622781753283728115416181741776255185677813385355765562235811685265344112431833375833622818147555785765825178816556524725325242427811213776636188712244472116817385426351134411471365374551742347888385314414428542778285876121776416513651763676862552156337173473721145738157421366167766371528887162345727528345858435631783458226146388121155547242721768724616177717628474815436515252238665874454772431477131346763173621364628787136675457573848244475213561241611445681515418171487167881115743446813134261178774252152733873337835384312185832156322412418632284321722636881115747557787627516635674757543224784358234663181751138574885327684721611734743778887715885136853342172155118384883634321533385688553755836566122185184154144618235517261424285382857463477715487655432171455782547454618256366237367242756433554815243127451733655161355665687184617576482162417622644876146542878443243151361638558626482643837748264246238867884856362435385271164177467335234377514727843562634618556151538664424765366681424585521822665617651244446215227276715416361712664458483278652555886116738526453758415338312126366876226745471766427516536415733276418253617372181441264562151168426832382736115116238346252328351551456636816227816842253452447218242565332154512865778231145426427572715671117314571161234773134457588267838635741854837876345487254766621288444546586484678888471767586376822432652316442412846133543276535468615412743143816518731627167675513753634818286546586337242118231215145545132683118642222383375883116627831768141172784183471566574816685748453222311628527341188481736411352334451287246571686312375676677527853643464772727124342766245583455771683167821332763621131376528767834312751583745676486225874461831421213353214442271753146451453552272567454517733578478725737643737652287628282415853832222856818475682558168271472465554616866825255817822588213446682633331188365735333441151365632862884161817271371674476273353425615673743257882861165474425637385533466782341543526652283435731351317573777587548772817812252356876642675414325364251857663758253584353868116583626712675837523768382257655475453184867437278233658544116521153433428832446438362325436275851254463355286581433635877353745832177871565823535818564188861524682171713485658845552836434573122286866316437338545488242216517386171661122521544274658445115512815843622768534117141685266473563234215358818368751828512741164177254455453376832524264427181515822457563857622771214345655762464316168135887642633256727813228246551533727582734651188886717688455117146713656722581446124583415562166727688377236841228568525143351883438836346687428346884568581256261253584854663683888445152774411573533875152477476387553441757865825724135842778515332362447711383575575768826564267184886376473736852445346611286585645378636566253116517765854278654858472247731717227812453571222264113833476526335635547715576414722711127766251684845782121751718171682365851176242631833175725684464587783557263412262168517276621158734746361361477682222141418474434567215882146463284467225768362625513683853311681147621213711678218565437735884664133124181268155668828752352475788267274386812448336823214143532227833862558763366654172576415323776261333878276543556762173322688116216414188643665148226224374352643173283133461562453765368752825884811211227271126118215272441838128716527812122377888576476476154612851457635764654572831245546876773835657341676615854578231784277231616287263533788254734471814687467843468688165652632748486836671134467146718365217348887572326381416212558553164558544413381838538356173134341363733334521328343865643526817644634833152174124112532854224685755247223432411716661825817173654735647651756527271338581887734316747211356117482582541686276564857445166344744863233858647361733366442775356353543584568865117412213381426148178418833725183583374663672153661317351218415625658726751865312838422412847471645524851853243113145753156765836254541316636614118252553841111726247367647167565251376367474136627455875743215772571224628222453814468844831518456148466158262557684555627634666141885381876288155577148423856552327754542832734842723652626472374135486541483477358582663467316368815638647673118568713226846263231664387763234787747651421684124751251644134114777421457137585577613446446756812644341258578247864825636127768833464246214174572678322821786386211625335324738514585454131736257276771127152123168674784846358677425486818261174822481852646222851268565473486858114756571813615623368827734528485542311161336775213752214553268484521226826664252234814137452151478217561334428317668773584617415436253872881527354843887137748458674638537376172446483213647453826446116531385248445662616142141752232772771452815548321132832674886732875682472116644616566732226581658387543428141571837316488255287726546575558527372618455161658437753526163122758681532248861474361232587886147827647552445254557571316783517168481246157564688514244731241824551672876641678336452812523474717535681232211713245415264218345118374357544274218715832112836214138334147466584234634885785315685577678585841833413518154272457865443358421223264221185473625473176178581613135144128666685241118473332418663274582527854565545183433264212218254473847352716173485723731611234667662467355758167628668731854887751166418842857426454187253248624787534188254653415774251274153232842457838115456881126145226546487618513514625475274754876516356634544862841547623218684854641121442834684725287567134486867665321261648772316754663663338163611626657336233825847325525223183132464863276544138856177666863872788273411722334776175822218563748337544326545583317551677314345877613712456673823448574314418683534575687156324265223521636586526162231585837152538757731556814372411131621225875821661485743267174286828887282674727436812885683118761357166812344283451641761777724526381881785764228258336882461478217264843281213284724173821534445838488717735714873351628362773476823853415853447663341377126431628165872366567344345438842544323386784622338168263476176312431455212563463146863872275875728435145367215518263261358846275137318735323764447664465851345747375728351613747524652313136227112674276823857775826617172381766132221867354618381152728638616425644412884864881855614676324536767318187285554545776814345758535433388715361382848631661843566765115646771876671211846147861547715461657416141167153434821141882485166814227872464416765566622422835376765331476733171383532764134568815148274436741461773866138453354564242575765867556824576273474416822745838576147615754133177487771554253262763313877382385614458225236521456677863462257734871852172418415261537762666111514356134261712435147532665176143235748835616825131571457863346526261163614855554323825427642161687661131186328746118647478376113878648628142523388834777676187342314345821278118117153881286831837362751547515212176373162652325247184155465854752246523745646257836188236587873264433666332524474653663823677684714261581627755237262454437764854462126758643835618724724612167411273865688877218176538686764572611663238723384788523578363681431454476335654744763737324551318125458258685765823352184225743424856547217352853878254265426667624444365616752256732255457734613617134311856242522616328683751181711887183777635763254231216763821621486531853216532622782475447416532244236257871747824633374732474354444161724518481561758848153278674287776846743585658618524588527616272775336283534485326466178425284177367867826426824667863512181165688465853615883138583541616683353865422442617177146856625384375567676837615214874541812516832175854614274752255478476336871785456785213378111648353175441235632111581538146271613176281311743641651421471167748754443361324385432263277355711372785728822146545638644438168613753234183886247721452712667348332544641185321768825652818433122246326376875663331416656368567773114718267782621737414231753632818156178537466541357371123476544151635647272816188736548574287361348874488548818758273737214642362356662226777321247281862142238162687826551883527436184384477171256644151228476881286383311615781432833555581858678317334415552364457478615782358885425826442275686245225755581286737476682526156762348875442257712346126847543336161125636548338258737472816888583315737243173885774683478168178815455361368237473812748753622328864157142634272468644388367481343455236481427351385672377124625627242447485887826283421787856287878721266736538814743512484623271728746275747438821261876824332871852278733363722835688371771677434557411484776831115114142275528672487237675345143553637513265738847457235436131153475733258388273188527231741552458111125854748248667572322843188665667831174555233846646836816578225614613737157322686346147312374545673836438231115611172778166537656645488862878555321417325634561844441147785756848186785367432476531332121363157633413516451655877617726513766348641586318834488851747588646366217734254124363245328145675318671538855137152175564245323821855518562644221325548654783741846464127282611413833858845231381186218124352383282547248662457437747456742142837272866818742255818342635785688114362638361476844578712882537238533465383312562131862736656466188382532827644827662414276483288688857746562131586637723462446475847737255127144417846258881388584343155364237275668345112182647272254371654578152656754134717573467885662728672856248312678216454813566347363138753378527448751247364885433715676572534144538321146536776136383121871342612343343163447121411677463287434535468733244853663642257464823335878562756817372615436274362565754667538321757875127413885753414572844834575163642583443625835141134287555168138355651537182315465574348523423154521543128245453811182643855851328848351745356624724588751146635538522283434285547884448543723345857777122217657517528574432756423287666776258176438343455547351246818357878844254185432582176211467464867528844821423578774262375722278637527528562585241554782361557271513351884143363488747562584373483435434815742247782245415541451481143181641535414635346567213252223238313863564544234441268584473616584586814864147582325244278518835844612217518828742432555563135636717874412414455267128534846271856624224132443558157172476781453234313416221572577453252547583863881317838873217628145786622618814582374848228657622317838786656716842332824588352157822587233821374174363422414226117324646114712816413651552674382774255565816784484436582431568317434876543233643775412645317338677645116488323617317143568158184868248745477645235848363878855318223766412835445146641638371721618555815158611865645765314142723645832447177175325453151464643576171282151764156617524626777616421211416158553874642761547375636726424185657825186764775323853331643153385186652345483835827221372356273387853754383652811632438622148348241223223274364344254725836831811638821735362463548832231434275224615465857781255618527667673764312517114841832213222874443685722143548584663771762836467346438684855822847333378563276817656336488876142571727432328176728557886452236371137872721677151673433775587273383246127653565383543571145561451644413878212742782151734177721784882781777852712173155533825161231415174746886784166676677272884635811482652336433262538424374654854551475527837322475177515847838452111638133555773382748183453118276246728172235232865762277285773564743727631823118383572816285212583534464455766483721517883413338688735272725564413561868271274711674317251314725638722616485576525522487235666241628851666724542663518332588771752624446135258122143843288666627565161464858557757252137812374746414557658374656547757258473457265521843761843266617431467411233442215488153166446381383734523854165371355353814688337667726278375711713137125482424887461144863221861271653882111255188661236225227843167866764888258133146468657427685282765831745757223566582841778384252644737478852825535326365882376146586884575764173225822117215526333882856283562881172888776137656126767477442581215414158653185756248157483623341857153875784366657523468417318484255254633737583852817515345251566757822882611666763324515131754448331236364112754782743426482712712522725836162227418646853743671882771471147838766311166346325372256881162465417145812233832238442147745187515478831751158832546626217614264777431416277177332663173834352388148241565843742515824366417537242636648214257115513111351271554434155676152553621172623482453585162336812724186652584831175112674717115377753235475438414615763321632336622681335448388358413485564757188855155388287781431746813454268752336763357737877633321265372334454781235625468832734712346238374631628882415485667755851263116261817886617213746222774782767285872631417837713531427764812437523656566368216168216878441374143378636358861543153422432456531737487133626341626654586713562355784563585315166713768521566763317665185225738266154185148422653585685874234642454753133665812221786145467718545617576844541352117373875436387527372176111213111847783445641483887163443453461425812212675782752638868875827856246327583778124273645634875477257581811874776862215744713446723647438284573836654817487388647862422432756711172463368765738213454654415176154316314877432157358485535121686783533677121283687614257455584843385624533327576123437871417882326558517586354622835428266822724536183523244373546777412161352465172143334462725481847212743141255126858366245385455736826382124675372825238635862424716515323642365237656621814622258421648623421148565816584666843881532481743524562152427782246233282442282544552654583142362575762662781111266318367548475611756824214775882683526847876253337181417565152886818311168451671546657411676845636323136632715531255663742515745137446611847411273751782827288352163741582447266118278841635352535471231342224532411882131366171687617343424574774571354446255774352245154228587613644785471538621742126285152472356483816668212242124731382431332171862634252443344383373533536681487327448573724848377287552782746338674543581673676416328167227842818431385164888648147654165836734437134616716641322176281754283533116464251482234318824818175344644157441271468588452448147547123235148234771681685846757523484324525535673647427513245616816117256676744128621476462837328825432666352738652311126828747421821784535665612547521817888736488275384732153223675436232265571418535177344365618743433315454564233617413435666646658581236583615643444687864618862871114623571755251535383423125221222253517363478148648687551263341163471826325836861436382875771686815613315585753586273172561236886254244464518865244448365385851333744251612314878381226416662754635231352187276273362162345172252764561746364148842148841555442525147728452526221472472146646415561453864233544658487617163613366472345467678714651577374522555361265617172653737876672713635358135265541715285853336477441172842164637326885457381687448116867264514232782886732457718771143826177467346113472627564453266458234546161677535764572133828362754278873622161554662442733456547735373625423544572785164476612471175446585418864653826424782845643257816224722253245756836186627148486128256372683745244441272573582261275428645688313454443317556443127666342776767711124814456151162888538474232527671776228584552427141188462288127612481348765613477244751566278625854885542668174867343161685257621775138713421764617612731123454412112683832677248625755437668711171816261147828457134346111687655745433243583537317432613667411672885775244454385115242175585351446534727234321527612878117638361181467382483552338176686126154753461316423768657533282511362344382187441783355717187824522613218328734768761357234675244425485484374332828154744312535834164311417747838782875376238772885875836726326366432658347736672271761122441763575317333272441657412474327812825456846234168742342458747345534746412734881562612556212133353636447226273831666827638888734186417876214586263852475345724334671437155514886878187377461788837867443863123726483722637614614267813715227265514783555184264551417388876654374431685185178441257576465717286348377544743454438387612882677178814437878822335222853247876774772731678376561288854338134383731521645578336816812183865412444213236484384152317227475622826147321856182214315226564113382685226883583571866188413473623858162766283212718574125364313357255148427718875513812217214431123334273623577747715823413556225547533784213654234383683645836587421316474451738865215266661125727524853414157142532644361868522873465676272646416261664762681585538167755621836651434866745855424232866285788255257245886573681218863672322833428341438143178668652886227862314714553437433318845211787685576536572885435753453564613547186721275174287764625177418464368627385818134762731314245757852721321461468526786486428614485344335373186847383683444872176627147646542716643863316462261532343166336527847215413741836676772647147615281667727253722271834718314142326174863658511738483838765868172776834216636716423426463826534468263241823311621862364666186244726142784782754721646771541231312173258337471832563347188672722571562412221818763157564418576415158315587247732114856857772232447335871615247355411263552641874414583338844446187664136716854164531464437548218573655842644112261324334877768484651751682183878626158244186535112784523638886425737447727471652736748117653165545356287842616846231717533546217643423723181745134715538588228151382671856631211677842456475171178314478648465514454261874458566267262746388845372465251665582865472536355246442387874547266154668822226712153378247218135717261123742572486722436336236476851133126375485744184426216744211221432751155248527651366612183721733665662883824675472241825856135153586473364318854767735422622126846644172212784276628331468561362616111887767252721453561423226356656323285521768725737576758561236567744413271237327272737474554776352752241751358163325768275563315587662454148853345528446664662821653567643644638272133516843632464626371514667686566423276551386745463571657284747156465287834217624673744654614521234323713228552635526148421538557658638827544717165631647412863744667365228361663336867427212242678115684677351341517448346457685516763811635766837338853515161581864364114356826448345262464484482575573177468122515788832472787646762178823571642321771135374145483516114363414282871181584665815226526128821111314864588125612281848216818511216664738781162856547538386844861616786636418355126466355851144172736281416443514257874148211228162747788331571163537132828112625581448168184757221821722683564728534286116152464425564311363312364673441625868427634734757288332468461443618216166248332112541646371125355876541832752153773826625424858244568257413575553752273685276766284725323641283275461338725258847885224588378364711511552164557426548164152578665623647515867466281714868237681838363771347671461246234223658722647676772256853144765753237116346725153845242553685272581167652411826862483327583727644611546447445788548772316675445826141475735115166554474123664226577375768176271813847458472511238857231784528268463878486644456322612487811534442738477723265464645444315865328563212674566623144288388576174711122845813664647164563532711871857713318333617261537756637383887438335356533341153817567167353766318832354545556817465377661156686346542683828675123626174286822626841776268686315346145231723145346134717374662285866171237133334844385238386473636414124533556117446135552318348871152472733144775555127815818764768666526421515237315283674531873521868521572751581761235554353314187828144736855648752877368381385254158212716847873271574513248454836446583877665651467785615627766412136235568231247523781332115716685118552232326775752754131372512217663846745423654446428547587316163134417826772335876517856474252164522414188282446213665324738633754185451471385522877471438288465542777882872148386112724381314467543337576477313681862167187125575777313642178457222827784666721367715238144855466665241377828522113585251256718236417532334856254128615336614586847317581885362361311413231551852472217886481324124152174711713847737524838562833415261641487358232553156178773778416131271625585452733482145834834544632388525257111416222711714255685485154376146657478236316788834543628243447224528247765415164437418471485214363776631247445754311815144235538813375868411545145246647751474844838232262833587772413285811315464887272161431714615675272868175574353266268855483552745138843252384276764355865731814274735152877355142174631821577665248621714581781865115283757634225676734853631786887474761588611245587888258387684217572511277353718367888875315425371112285628666563457145673735121237126355238775682483627117321181558885467143622537511326225725561436663474316435376874685744387211464778316528216415831222621117245338851667558118288872143723317846838556422188167826737768218551818735144841726378657432118634332365548114685183154564434384423221762343417877873186488884183325487388535484887384544413513845451841711421516315756263331525636727568377438168322845867185355614532566861864565336738345532118558365168236273475265758328128641574772651875833216753371253623742376258224726634478614386664648446758641127457713433568285666272853527336733678832878765142331285444834527575435681347747672381512115236842582631721562138335153258478234851138612737147636733725768643787711647582355625168347781452642277852617413145557258618645775884785623468643864456426377745142177618856776744878526845388551764635376563326424343187383858516136355628821568688165465757427782484866438582167635372434363228858423755471656526624854851368334842234663415756485847843645577663842475326888347713514478813766751865216783374225243276176434166733341135134556231157333172147432455435118552741843476351435364126426536573366427725157216611772521374112345754586712528855843665788266186542687377486188571857133658426141811647254853522663146427131614785436842313362517428727631311456668351152485515153145765853618132537633573114325681873538866468688163177157146625368683346554271274482754658136654688673437426532846232257161733757633166525365138647831437216483833235566181553134886148456753255265672186113123573744755242133541775674182364428361725331141465143677774172121826587282813118221288133431648311136825122473112771671584635362165656845143111375151278228742615777562743714443844822644284455848463613584837718817732847358524556487743214654354133827621642667123587875822343423615244268125583843416818733642113233626237786777638485835868266188422245671458237734836433146652364545611753342275275885818572715738161112316282628818455178827416174172862372423171525224273524377655758644883282223432528766712537728784843368451461323758248413252136587522136278267153167724688518837776871354242156131412457168867443787823447221574522463371746357536385481227843485318616757173543342872568264473611572826632673676832658633172213366168317546711261146128134245437234662582763858623335184414627582655424667863534544713221672287824462738682522672623644772656558583773718531785137318346223834583777125877624287875721238122542525124578442551425167681661574342544167812734576244828646382785655652538713357642131655882242316873732473475228127254351564684358388544453534443824458462547143641551185858161863465872243627177614711462138282138286277451837617175288183872752362681586588355734428328264445378545364521125616727726444448173114582613622853511142682116512567137757736828878884228188756564443228682184178844126835567332675666513417513266668137384124847475712152878213566141866444735674725627573253516322818613154687148317633847315686784352363683513211163364252721266218342322638558363368772824712422122358583228142477163332362121888224261252163862444636864672461348433247314317448472765211154757612125826113457465348736743284732881157458762267713476246136518458461316288416256252766248865412147276462168754168324647285746827485117215771786788751371852213157227128284273538574528311482383275143553876348766387225851186464677132838631226513181683668166444814164634722273458277522428168261343622154377283222663775787671415363548144553841614183237176226321575245512755533183873771257751517633378435654131837272784638777351275285431431573866256636365186722312424363322617488632368435224412253278526347744677521234425726848837785571132268881128152313154557183527221314314165146776253327127361268818386681765543327358727322887577574744836157456878831652557365831375435247643437321353214612382338548633487442361162848421616416122184311754547311515143271526388184582646787538645856845883688317727882347186631882673742777727581145778255875575748181878751278844488124411857218778876728814588617586636788216275178357825375243662342571216425571573164617773218111738718557713537744862456644314183844565153866646714648873374478454471143318631471722415413427458714577724477526257115545576188145483842458867251166271645112625222323427115432584213853234483625813844742854711382256546655833173467828125382377214538284654662115557445562751642781326442714672837647862254277837655316257622725355712823317267544271585824212316777646177562425411455657265386642275751316528751762147821426752568732753571226714114463575227175654716264256533511654113334113365656138524864885161137356737734868373214487777144157751311148446434451758644255537173714465428138265327858161583166444442683513285676167845111116726222387315534252465338436534812384288836456533675878538243511438548418751574418117556577417457118621213351462378715228866468348317135137265168848237784537433154833433818426377356135188813715867377567226551346111378348236724217135514265351837563286125464584454615282627477784121488146582617165574323766516628667678885265568184236568831688233687357734186866485613362316821355177432531334538711634834373828574337251271683371453723812313737336642466516531533771172273265588334277784144217453537625613257777816745851466873282134384371135832373737562366256456855871651754847232655872567821565731816178244667513187125414467612762265241674234211112318352283348163684457766886864755687513717421655617442247884166515853311647774441885225865138388572872545433534574782455528454118257422652111538525421843557165652453335483226144573346583166532647666276515778846242817862234418766254872168158443218116221336271516652767341874215772581283827637151384637626716881226246214176473522672431112467586261551825531557423565643541116681412214757774625178323367174621352572654212241418381624137558372411263341564212142764773617343253276211336447537365451682273417782418217743362268414433347287637767645231533341356611785521174737363883615846672328458677483773371576414118663864426844774637626671881386221277625321465784656882851685474517836535268458882271446122331646546818533434323547258557751432746447116321458761256718654483677388785286838572667855771828344751386825365731156457815867558144634322528288262413311887354334687136887564451212537637431453883363158523627448288137841583842747741668832432157861325171362223617771641453658515644752455367588863613657873531665217153545165558528872351361446124425641356528442136257865525777331814516325258167351116337726618386423145537212836844636224845572823284427837127372752274638753842831433722334163815128558131485584387566618763663872487461561685724532368826278244483286814543221344231122417377726783171414383426716578425224652882316824154482773411848531583783671172586886762122726648488644673677437286561642821251281622258276136425768743615426513262456842314843221262542781242465666461587652874657723657763576144441266118366338277253116354645276874371267512581312312117267456144268355123872577714175557483764857774452316534115578685282564631414525746468766181858265383752563871562265722127278716313354412481123311742651468425653144252381118138174818823551783667173278841841524875546488535583376384385851118256666173116663581371626877845561734543724151426145173462236778533174332447548758437332255711753628722653424866518313125515547575426373382747185185187355476345757253587333233412811733177667324648585487322652428218277852744717734863612534446464472746121487747384362233566871325118467114855654777687822318887514242858125241625251823118118451862136115238362774775776656388453263834454146825468544875622236541513125138737864785882423546367837886411148546683372424447135434334641745788124453651682264327721281335462174585436586621752681375427665461481848658186178848547285627862112662647327125576242556735522478256486227686745531373652278437121658841466257411115362286216817841744642334175745448368878366131671712635118584788726371324587662443626234858388842366364784256462688177261211171814336775287715541248136144733478528386873433576667672153585414465382558882756524158861271432837134888878761288365257876136776358654313856862587674578758214488442862736184341725843585462422455518452266362821512521137878182327764656471672487557531128887635572556382865765322144143613172581455255857534156832315665671818845437523433745517317542718885541683542755646257187452647286747827868224784421776613463353647586854565525127713573485772752277744287458132463636676324416672265584436415213275841238375614732386716216437643813526522183262317657347677218218552878148865753635158516427344757515526473668182514264764357441282458166441118368443888332645362414171422522214758118687732165272688417256444528536183546443867714715537842484123678133366331217387827622527821857727255785566312781637571453147831446882528756112135881182816756586783125516867242646426566828568357626743536142773521757241113814433726771472651178721545313353714145421267311114676617317231262563275783633441565843663155272845334724644655612856281115671542771822854425552417236743162283866125322331753684476756231811314116585434478645653145757828548111366578873554178484165526477147642388857268577386381418253534468314286674318138454115887852467885471748265748652258725626431825134215688371815637366715247216418736483886177226154384875365113585883257563855651256544772442617114881413717368185318754565416214658381561364368717453828538856872567232368462358164133675646812258678862778621586661645215516487153816254625661217772367538844646637318771824135513611268753286566817872843125676617331816286553358644718211447115517685175646638563158831672257618247746166736684565528276418266782342858381126173684578878864651474645342343557573142681687628666787182385657115475545362648666123733852274185288728116776741123485387276282667328381567351167417114473117845674313331756533368745284265158384324626418123126681375312764454885837374756724454143378532177147387735317556153266185828274684274866284625482614421673367643752327544625334512624783681432616548361438867128856433382114242582238762638517183512712617682822232125857875352312458676456354547615217683887125867785212444864315886362622121676123641575548161538833284813841348673747188563685578785882355176155188555423778117556153387866378874841188134835687164111566314788841125637277326221381354644781782784323732663153282384367457583342741224886368378167412843463613576668665452488886413517522782756423255617726464722748681431612821836563421767716681525355885274277411713855416162783325875281574185763127555833218217766843866445523722344846854463255511717422141122236376163226117628785216171278168386161347655426155573851635333267574678541653355874866848563486354488423274525173261431487444146286184123432118483236345276381126385784746824733746541124454222421111141438872363576258614782834611425265161854213738315474547675787112675461472632332865186554243641767374128287881774443618728844837435587174771554568838487477442371531837186118565435144473386171244714318621564773476832727435216686686655377466762261113725446612372613842754112227387567272443647525776152462554881416284445471838427121834248348356645755414266275586575861512434717384512124382756215768531741737333483655185866684872842876635455714735814212872375266431114316754736437845618547252462267565822314123564615655137874717635384124183418561712325611787626715217323534287737738316173721582778322642636471253788564555575761652523383111626673331752421653618627856823165714144625866638868537381678185335318472874347312855454478488577777626474524114266627736732371235156615663764357535424756882664261587132115282854263545314261654411323484614716828231761784528661757267237615813786531525834516573155477815483457762438183444767244778378585447874236783216281614743641551282881171458641138186577442266853228826561534543211734565352657148887344384425436475888485361632681232637741371584251181277851171718833413487126232317486283812557521467677171418616246525713565376123851655313844637876226241677446432264715785238523215538383117617525865142451878311433158136567426873286883881826861832545812641415385171371142444414338728651457186215311374224332654643278835745555683681713835112233527422882224454628761658831258262828775667213242275257252743421578234786516537346833315575537343765225865387188772628737456877222613266783362316248138461764376427444231436454137642545337723464378367372623136886728842724137525253151738212512343243182114436648624384374444235221578455815345216333637268352771517144331724414734766681226165282615118677288278336665784217326474154623412186838586745252174438731368221125368334617734187541181277265763411314461358328248845633441683141741774875827442213676687356631764558147316151837365834636175253377848768442241666336361177261555351886842633718288836882427261676666237862217737727274326711874557862664455844436211348181677214157782886587841332853832856444446385185412265854756245112446587777383481523778762556233134653437833773512778733677167461716728312555516381844328725538378822557424132366167158887226244116752611761864666473148561845425718675363428783287463385177528756635857261715132865754463772737561663278731113886448852841184442177463852123127663327528627638537144845247421853385746774557517862465686218215431875353724232838235681111182211868484432555647227766865674754541456568424555177724572746288341453768627873456835154345554185711175856741655155652155372657344143514774526732484666215137732335246682754414343767187562324243434254135145576524334656457568722387316877585244646667124867728658445741658741362518121417251732436627643337424545257254671438363532366616125548764251625434152422255473755326363477537636242141762426653381876822444814588484477385152351128662822111438175481238482686784422324572581188614683243477156568486812651766384431754618574816855313548382637242227354277367631861375711144554645247265168538535368446521663116371113368831741146887326478656175153458118683654121553787738534611812578457483885116876665675155626574425844833114788236651363514227261732222232317381562658865177812654763885783522274416814228676742737184364583477888386667535276138815138157413252756424744138632372852867465651836644725834714148815287835167867282634737314468465844714122715624544836734862415868426527455886112512341334572668376815447844644514488238556781425225331232563188238757671138762341853666781151164545171183168761555788238814877148517574856533375844534425423374345764238748264724844475684123224387666351744883386612871448366786233725861158185733531345747527236277444441155385525348823461251537362573585725376827461374455128553411728468816255188687644325266424213218156442628377128141324632142328825538752375256761458722125827816166113741423788742484613864332634415385117374837264514487531684112332747576845458868117566683714836267682885411454135777547524824311231326833648147336642411567518677421763286612581362178613563112851884874612466254138511836847738785874322135751821777461224684373832838133574366121766858875313362255125473876578563828574174827288412856214858573841458754333123653744535586254445541236625887758244354774515846261383525274668648775254311865283377641737381855883175223261485481254817783585145154632855612811132523863827282614766638315166165387351248167817852375263775183677114285287655541475552511118467375365452326747442817265345778364762124243484718616588173367352717615186415453428677642645162213664348845281483367712133548721184177673253318612473382545284854332256273278141355254475611286285421618523534221743841426283513122272714753345875371878617155136252412473767166581388231613316628735568826373648644646367264836465833572221552135558346661223436185144233247357513244572651863542743335311245566787355127774217188322523684252511386565353664238267128358444581331556277125247152831735465785425271757661851466256318445685343757514147184236523213734483536878648743328312134822884444757255185646568415677776875426562374553724561128556182658357521715751748253852723223354876415545137817784278337656652726556162274162852831563415166815551337543628812165638645812618255884318542338182335215616536558718316861151561714372822375817855576768835688661665836752123475883676641816841576136427671634334352173763424472755464342864164488356534543647833545535783388615331851174455215168638374374821441513312423134617236765268351364432633464744811384147254286273333566471525523642125738844533832275583544113336215447148453743632256117524427717323223267118463247555463824612133425387268273184826461452877687615315737445652724421462226683264654813647371557851653574221534616657132435172843568726847117535712515427133724261623424822435175243354736224517378581658881168671625165477884687326488245252681657865211666145877383817473223857612833585818464863228854845231662762782372884356368732836521387271321555322726244284377818535323152763314155746855374744414816827182388411144431847128251322511116216123187537587151133754671472288511771333658534317271328456573138276866843762362776817441768247663421712785882171467372865541423432123388457635668257451525326321432726668542775481783852453275735666414327212642487781845823213648478772358231361218711388316571278734651378375154634631667382428163114238633848418473521826237782612282754258665611832628313753521618785867431112264883871835774725661856311427384688667751838471553628151258588535512443213651473744646432847511167767286132268521682311285625378765342854147668435232327478127881275366477724427847268676684151277375771567121574356235581183676424688726284348345137383151387816163124444465461861368662681261864245375438635338465817144752445538134334287736634731614271382541421853378753576565546132636471238284287261288443114466511254844863458363872886284511857841144537543438634883218538422275348418254484436485423173624718184631556683186445854357586636346468482622122362834826745428721426163244314141888482766375857151353574675158725624817545247513235554637218772454544367577817328872842432471526537154578178772435586638837655117771885581457387846275245621227666733473187824468684877521337265417716725574622257553464414321437318571718236157414752282381343241665743336682513875662581281271357517717264134487532647466572373683574862361476348123856364418767283258873186672288582225335818474618214264748168587775377568264641336444585487324152386228786231851511158365286573427185165754541517578216683141387717115541182758273881238441241876784157224861454741731764555554713814473871535866658613855471731721255543283458182633624238872651445186873325885135187267132857817514863854544626333716525622212838486377733865215476784333241411128344284271411825252355676384315886325641471548734861285485735185623854117733372764551788348447566838186771767822173252245775518813873666314616721182823252773471744761262537826686584771638864657182718562131681115483555128575154315738147274775134341553577771877261162548837431534556574858826633486652652461121272888882853385645162233148627635882551715241414617488653331161335482148223351487334261511374317513627215547576421747554572878441477718428277886641483728676627455842444468838688438776655473725176231374366715744422754853342848232356351841471888735231165828547434131631345411474566643782443373755438538268274346117187332566413152574557245371876483223146787668826343256474158787776277463318882583578834148885743222865365752672186588181585736228175218454527427146643362552234182327333352251635186484525445412648163167354433843378412552283337832248634674147162612764651843343533186231242818276121482246177412467781862667246525534748256154781336184256177341763824738212557382881176652582378331721487524143218826558477612245273888621122133532846751522483676176847628888847638114233848317825376648617268637348457353343212745216146524254177571423357335475683366686617213631663615187515265267547228836258133351461321584712535344816283783788743444512678812543888325452441872332453236137847747745842272871614821238532386247572276882751827828617657856232188767234328161748318262826318215652272523126751751334483233741376214352231823587337447657118687417411333474311843677221876856654114114422458544578811188455627287585687543413852752532436684421845515826767251313222164384443483118312177411416488585622766722183133247685715544468612875357434737727686246387411471645368672735514444657154815518643846774157327738761376733881835838576173472151816144384383472861588364222124615466565814742615762357678557125232778336772628865182536587361741635337863614687256127733336411441663136466533328636466718216326384383111633132682118656374866582687688637611866135617885358675714361744614466241476276322346786334327375438224822638867767447231532266471317751571274652565375418323832667214763886123261415115514887131542535771583528326484644241623436586744714132631368441732553753522756344424286888731873135172188275516128417686676642624772877566234585435265531861118283172715588847188475515388461888354544651525134668225422468254181211243364776741438841284778845652755773226866661542636624678742187362584756522345467235684347514332456543865188545155372625266656418258116325738882536687372617124116817548728728637314713671442842611134622561184831472355361532483466535482167252265487834646853218522166834656473678547123415383245127462746241428343215145672856234872732146275171451662816268772848127333621835541314514777635821538438381478844671187375127371181813438264234258837733435833538688532425814421321763765358228147617728418527516671856253732313163525233274612148112784744562875817126485563636343283266331485175477286318533837326211534573256682461717752221542332375411322157365855747566581721624325837281877274335777516255336625327687456262661755516332751283781336263486324485156358242367246368653862381316868565276173783486153425222343646363777475432677481333851145175312586112645471328357228384453173818525441657656578161168222188176517228885451175178643364431147785377276427286451485437872542127646142443338572682744387253362786516652642311438521858742767824372126857175728477441484637231565736288666245641281288223143665215584426717163252267761234116684321332623586412285872862173328711511778687845225421376551478338185734651551233442468734568463842522656678313516424383446451422341566885732683435432343657616841553243485661664763117373721464136127356823178136444862821837111612444116112825335628512364162742673154451228622358876124121261185211523545277364152451433225335423564885213516872724827736136668685751362338876745384777556384251315443342831321421784321848132133644567326155186143564365237441464787236832417773141233656167712851661361277526781414476758646432265257762584244885118382225855642227612731325621772416285777323414765854146567622533343737625635128371785123554716188172428853251287234342586647157123752756678465877128255888611163115282535543147846567656584366677764526272182546218162487535351246588876152816234216126576218728445434718881611787561824215283246746726722553338755544165271564845337866882212777142524643755821528823563453647428261612644343854453721756186817422552486776773288267221528278137254154638173462175766735721488374671721634661875223863254288726855516241614687367354541525584376547352822157754676712433178277888685444345182236816646624638285124368681351178638111643773482611114663356831874471522468468336316771763166224267381113841544275428486618382415212813214337342444481632636567257145836438851715321371221866358254424266722513684437221263565446488775454674614654532255512746485343585831181433546362787163328524861264261873287532322275124165233346333427616251187266474757466357881882733455234122355711214841646733676638712813144384425818648173121671232338343742888456182881887633756558441484374326835784471351612357867816442531288647886678628824317218528778784767324878521527628416157815455888737786647716337274571336578768327286768325647436581384142885437347672573744547814833184853463813337455435856454714614716723118843785817264818446474555233114187164531456524255863425588715825688748854375687374283743383572726662324652882476563846243212878626547878748683458744225436332383854422416363587232611854543478635763618413332242173174418444473656824725254135233117524264628674433882164447157167481524155821151148753366668143553514178232814818581577221222476614762782672148665624245234442678265822278452337761872115418376281452576228317764558725366762257283122338331773344726424766882677148778673457352744456833328543327883832734665746882341568278571476438523558811588431253142681784547256477177684313325688565525165557266831411747861415358571654268675348156211584332734473424542416616323813667182242376587558765116785675847726617533243114547224884468531463718553574452875314751763735768721446382744883233575553815258237743273153413323341763164348338124187884312631864622634155658336486383323556548672544626288737437767116322665611752823212272684237817516663811552641162846673786546483131177613877142232561758414721278854735288514683546582213282868532874284611748711568651675768473671255286772457415141715887846711576166351286113277865454324612625437633718166155557164163533312544474731415221466333446658781842141281832428555748751585561532716475568376388574438247682722167625338866656511633247624565668446641633165626658668417564231642475255452681463815856663273856155366878758583753455782276467244472741786323668671766172435311424585334663881467225821723351852426851274463176814256235166263864636421757743233525888412185183265467551311384552112643832186313541112688728741121873742851552573278128187543622716186248864638126835515466388466245726724853755224672824623266747318647133474586134733252265551456422782138585867117113331882534835215875511116514174427163882485616762322483721335466248148377744232338535477262614138133836322741531553211787857157837822554414264288576355612524826764831846153447186782363284272468827573374588465644846725814757758327212637244625775557725312143661452325148272655377751841222478584473883561313786638631453557273222276234864824674227328245621828236521823115131557341832484185165636487358862574374167377684887461765612254113127525411748838643328886673284262131342325875848742447215482427677672561667328314214835232878727542388465716784225564786882733357587482678158446514658418588584448858676678284522176677214163264226784438425866144418288283278282837176688253823151548555743468323127446362224576542164557765484685416714122247852755227664724251481271258153748772368286274668325482227183173827755735258686324824132412325377263443555281728862342578371828612643158274332838153772778777427678655548633725727763542385117543417532584746135868234151662425633176845181418655545142674823255531724121651532776457335673668272851462135754188311138567811438372837787373478318878833484513282381761667513218187652616124134243326154572787764541316178588578878374742581474417235811436184158877137247872482825263826582616562174768364461323716787427385823721816711853875833573135522223265753214285254423632141253841357543833358742888853133718614715258243544285174166445476354414821542765855458566766462766316615451514268374347631334222842288582558545571625174774386157346786118864272321427563858361164441657512681487516154821744851154236853128767677441447283584268648834112855478834835655661186622322628872131128563714372846378227876745624625248121547313642558857517768282413424448348211126622472857533474624257647335417168863635278536117471822455862747332664883743128836588732837168513741215271483343712344534111867713533127763764111245265566438271231213575853331415637252454472562572811283282212462256483746654727168684811777131255582743268556134681756745344428665855763788262337314554785387254426881348755645445517174563885483188273655831534781355313617727284262247316421451552778126817476764845475224838655734732482336613767325414583257642682841743571557846256223538451288351112125761332857246588182172676473255733553744337877474652788144468112867848332235674116856862465446388173574416142252827321234664852831885315616782651172764717383456123643861521472556484574371386667817855177633557354428723553786556152621181353748381742254543718271122127758614548371215631617225836216853833154673618842163452644152626665671615566566731746811273321577222373736288568623321138127276667882245432485436757537136821277663844286316858582142522723842614685272723214631522364445418546613882243151284313548851216662488487562573363418621565385137737663581344662577541564288652545172337162285154774542836453674777177754771176135475635152325484368124267733535671811425324724827486563455665844632648871361352161634668816467532366351476128275827482148485215842267372871518662266461411681282418716111127854672425533282867215185356154721357116325535532318715411613782787367686238478361827457285462322114561254717782783535152667886763226313478758115337541674243426718245544236633236776455738777528148684666115338874325867423345758775222533763637636374233136512556145868842871654472452661437344825522275363148473338463112846418837615283514213433148356511327761531251476817727622353124716583553378887644575357251253331571512881785238354851462557487152118317144234768324867274678484672578143266551542547133482117265483364372643666827486446516131531566152786158422837562388683725448711171452464353171878845876481177143188382424783482343532276855466672571478854363167327413217445618736542234631647278181476826444384627781264387725782488286542146418258842472721188218187457523138854428623564571562142583425328311458882847413221184744242474162274164737635146645286312526521787362354286367148368656718241221827648238555431153878636541358321782774681343845314276587531563317472822542813134527777641654585184382526414676138887327454828435432643184458733787236872131563273327576628563443832588782725731733551828846257241315844783145235171773763257868565131216421614212356344226761637311187616466854781471572255327124721351176463748554212436865346485427536863723437758658346756265774684377265218155621623864681834114413785413475847175173412252662167153261228671254653118725858763334322443871586132188147313785175576721675444757657522123417673242871628368745217636547544113133786868485136324177318753821223213868465675426572877761752741727211654833432776542434576762554332414854884638884247685448282384582646136468868441211441161218225478158356158814675785858565287683514541843718374423165138645165135551241212285536514213734312812467258365175317665755245566754671185673257688223715128343585153658824816645564514176672831212277646236782124573156324275785128484166423335441625456535122378325383115334568511143565663782774128371523136687768625887344483482138256231881336715184788887314127188712562254842547683283584183482448552467568674213533587657884737754612524458471488455221171451813863782216745752516135284831586884868158741184244413188473118787782716451256636677156862742628264324666458122776353145788637554156278534413347163134324256128281575437665518473776214681117577345854422868426752472417564183436872421364322187285143868368318166778573815162857138322825853728264227217623474377775177638877614626537166374778253741614363133262722325823166573837664782652677531358817861685658125584636415354188556311438864863128553813115512163761463431583885827227238446358685348683443443884673362715411161664311544775742878215383713616634754775831221868776165123153673765824117288275738513712174123388541857634357412158136384665584525311674765626487487684221676888421255643861271686555866615414313138568423241228735883661871127427832563784863823223286254855764327575531887251272487123125367711555615765651365514863844572467283768316742667275373577613548367312232873128887436452782146148561381278451441858382542446726734458444171181786473544778156688742756752756683812362318262517572437613465232427521652344255161828677634723552421555385722128216742561822877286218447686414472663886158854433154865432677773151116762766711263235378423317671381877731311887372576434435753783856411437336731578277621816252224855567367641467373222868655576138283681531266612181384231748228237264726514372277816486461143863448737577565751541851263337331532174718353515525371814886736541627768482342761487287687436147678535164366153288828754384167746718872417621636625361681763617854542358831818547661716573722316622557446214127582643381342578242814625133535182325552356214725122153336586662783425641831418577771223448125314315446548341817453432775456844464625138121727353363412643447452878282161743634657118841771675441356263324284631487872165184347134756778214643353152755432735338322681577622846828711343585685327584218841782283164265275754153712781754734158166443666213314352541525565831844257224715616232853172348718858874753344524214111467583278145131226516555145243241116824884567275783555238441665443142141553162222544636362415521524687341326538354633451367788746863464415255652731133758215758543771881513247877657144632216637173162637612266643413536626171754122854632558328536578357623317676863115857485427666367131437782555425672226637313548128752517438667345267512187357868722877381355251733388158581373855218114711383833852524163217218686257617436681882744242238846575217148572827566427718683544812538181844783646187735414638675838517288634888554115352371858523438757427876528681222351445383216152581358617566377421224342632344584678351773412828832163215145562811542378538427472284184388555622442561583232146226335722374445656723862782165647177326544555781473636523778224587131642717356482432688847526673555526714618125727884855316172816555813133841422821465814377277811282165865177246871541635151821686813116611284488428373485456526773284431241688311887843485714182467721845571467267552861442556614143213351164776648545357168736242237451236625448381682485378668748384326155388885651451165538573113242526153613865127734377285513534675157427373574354652247365637163367677275431862137228655325782175553177231286287588531253617476543517436523833687321433353261831782532843346623214846347352124788528624127355563867357744825182841578852487624826318281672852723867523767531522153647614858611653415782312338282465832387367834372826757676666763463613181551655757518863638176124442457274256737287152182158467573435244335818634211425382218153816277271767612787416132752724771188776551482376287481575724213863752274333156736572646875462758615533863844327873723527154886837187154327746345383644136523776386187238674375514835145454712432712522275271742732113645125335166388124643626566373246615317522311712245464786224415273373145862813234447436245576762188464566767776782641854278855135633656433777237352454543435117337313813776618415256662521187581321262456284134226853712871311487215357666145567738216364282711532234886512727587177621286167131813868678752377675553343145425566538287241844613725241122661377512527812683133415186717841168488347118834244152321887452435164665562125588611713588114824431584626738155523663878851142452211563822726475647613667733667754872778532346471857234164147424868624666561275871618776341778243714247555571737764728223387872258541486521281177238156156844756771478212832835325832634324461144753733533673824526486788845826188473485664636165714454157325635533768113476753381446417718442185858856364826815816557144188885286158472544231732457262361236342127555728742822236821744536867241883145625524616158241563166776543756888547627184525547515388641833632345724674642815665351835824254468146414448535217484576675712217713128564283464213637166544435323322844824361488452354575638231258314616713817753545161544527331231517878736612663331184526316831151524284764637132736345676345447161271533685565344638286517217125683623883218744217734544354733488422671112652742532646648237264676745523444528447318574264856434175244547161525113862475441271348843384252878288473386741555556541446858626546545564224866182716451223172745161534613768475666813682681845248262348526234716265234314384418486286155647774517621257254512247756238313157277156768254522632477752687668487853385221368417633118847374378772617388133834463674535163262755125415424667715248318773781875444755886431777182183647826121332616383512381186255228827388128855385523642442134256725644223728345586736132732326568131222583586153432215845247582462183321365642541567163343182218825316811531485547822745215483181587257822836547448531712457426563357741518364767436427338662474626557217214277887336638682416834641462342466335255735365222715348343144377671253782188526367757453466852626412657857418112587813358525454185362227835546753553545514748328852234613223868781854422763415366441527416783443448547685142265871687447134168463137767867774378118753623235743642527875768864564456485367748723832788842535172284483828461358643438183353751646175374822626572582487633165748144642281168637543483235288748441774654756786251566478665545571664646783538712867563248414127755835514534415567385328238237164356724863161536436554543263141236724876254326626342412785158763122516337628177778576565147625536644164715481834753415676415567818413744151718385213466177644244181142244235224412358137782866842155861351748888235284544447738815588475168635544734378338213761815714117661785274363713781664454115473346123326744731168713345443861852264582363642428116382546788575712726141475524231731172332386464355137265387621711567667486711733145758474823618636163778521211424665311463631663366334876563574821217342321377372564157372631782628424345441744612163572742431388212613844687154837375136266386874224115444855115848222835632831143151564665866436457312845117718672714741334647178811662772338217147422222355151142677562612682152564483638815866615553438557331576683132522225456163822744344383138382554432177445333226322747621651862375243876126418246822383455148346452756265875458257156168564264511653135524738722226883826831477223423141424465284843144613411238231444583581128274174121462281164715334371358264248642355261346327822846662555161515716324314746547432115837482557618311412876216117824217824166836736547435255533374482781256856511855615886226424554448455221547533711866377888454414441838673425453521744614241386717512476684341667453873314131621547475155585232166825852355183256115367483176878642737131318332688776635881377327467737527247476352534781725313156518427233861363526682474564876543245138383135447674877845138451674876476456157732886751851856881887412646143483578824126613452137867238541878814716364542744756213683643717487875277338473835555432756216825461657487436438842281373553852567334143873382376166161436427535157433387326411216423563711631243856855677337418757762142772583857543716316646387262343281148335166153444124423886182321484124212713216325726723523331338432852618831327711248587431523536488351321852748534248853122144451385177674534254575262143214348348547473445657165278381371715716367676836253155371878824662813648574876567534168224726358448423837322677412525186575761775723723525771332458568324517655734716235714514648675274532356548136451817357388333541114216842742253841646173665131737855528463275568318876754327417783312757266481321378651768268144145237822251278376718585523274677852623437553257418454172881354221848382714725565278556753755836636565713885548757378164345718173746137476647271627524125666645676385144368787768327686828353522257727325712247766313565517438351141838278411854371647865628341352124848586552581652257775311413272666322846283738851437135633651786125325635875541281653385551541842541263431882116673862584324315238213146712163747682552843341553233544381217257837778844847511821844361447853653516562655422271264351465357684522367414643536554156713885724276311711862224876872667557216634832873666785854328142514124754813112437174366667263134143374365673476154477224647827188126154672131342451833484852732683115474644344578362577631864114111558878374738363281151757757338182578577627551741446487771664363437482724666711422732625473718723257418533811122815636362528251273573246234285153225528677653472648651848355531743115648465718548212885882554515572655318446411487574264186226445627847758585215133426525214847178861325262752821362674312453262727451644778678675854151816333412853136163612576742847145674685777756231482255818281655238654813474616526648235715831421852118343474235565157635228831626526427753733181515168361233852311627181474748468864516688655573514121124167114677138654388443651722731236114262142674613323678632411481761384217332613634168882648458485235342642872352458117247288618338724684883787133534828415465114156175565824624633735675883418824323576748376351634868457468431568836217285781551854456314217751621246823263725866823521686173221782553565756111663131681484476553667532264562647622777484832374517136851377428346222831333257225688371478826522331183276212581255154282651422512571568275114636382727554682428546684267678752472331285322461184751236615656562414431627532531123116464511367217326888712162743141454724742657151755436384445416452433824146853617357677777338844154143527371542446212671578571655266528856177373661715453177223335144645354772245776333317178127273644348333213757556476855423342213314234152146852511882443436224454434848121475583282413642164578683674643371541731666822785348367343467663634426452253142232235166361747171228834126826741654226521554337441133412163743415484746783285616611657734765725451742287127378125752511687278372133312278514563728861116421428338268147614227581253254512524217684617165257174188472533751237817834442134442721735174851674444844375288581772462661236281314317743428377126333215225414535835415744648557242257446876435687745186557571862784617816316773333542255173171855376273414757172412327785768555184467428714478275324114346388475573332877125631233628644434477536738634435685775756637242376215558427537774353537377182885516752764334212514864352232336857248483526843761356758862755526842846358538515547873746138247542413118537478128717753252246867714614564323871741385217138385235513628257123183782413863717321841883715366244433671867827647718587844547853366241714685231567433227338124457132728254767574333325745627758633512536878437532853444862357327275385683633552347347615847436754454521851715116442362536866527733772847625835571673586881553335624578817211735413732127268412131254655462515123862874681647516283367522438811766154581224662452654216346213851666772764837743815435626116363435661857127782658268411117714644871143442281163158881616157588587387613723535781481527838648587884754284113683317321728773688287271355666683633535263142172851474421157433683125333615413268814423577837384565755825432454852314628212547164556748848274376576515426376143168658344238366872343772416771275651352662657153276222133316175557373425642153442131333234838184888737163377377182171463436443582472257153871786512657161412357215887764653782128272648558675463657514876722633622883747423128882712856518778722611845483652357417311132515557324128355577714522152254122637428837458676434756862753821151583252556432864121663425417273388521746285448541274586236552552468553838538484277336816338474332353316266272268688461781618247834325547822215172677667645325175227347741127282451286637755464643477357128744841668482773176541787383685636731784611447453167224143127342532667687748282567381352351155314472321782427564164755172184385448332122258673275262731645145685378476218236155647722553726883576125412485212365224135317613531318751858568363584557175523762582544518553458475731315566711166831871413725453846144381138185774443281432676177442871641251785311325335114777628774518631476117181383814872411485723455584281166655113111842657216442656743716272743151722674264774658131471618543525567413721767311861874644515555272638867552158216264535685826545414862726638628385328584156466863168228588551148642386712115763761788328234245771861326237774752816545457858233381382625588642532383485351761116285467534557617513743865622628148675135451877447783776857231134667877484258683542871575385465438376783777747112886154351453115881371557482713612464755512772162265287837777255187144654742655472661451214621785686133577458157831666344726585762435454285252524676172433771853256617727311432556334563512513438168547145254111643756217824267741712222636235855212527871417878821642871318782473511418255541583544383138115854214315226746413726756238231783723841231775532564356148651488641742754513622777311874816853826887253311262421857642113487656126717735758151725276387684438137377267351225317825351171281754583175771783231882124238827684151854513382522262174563235885156128231466487512626144153622724536251863662238467143254426317727211714261484181812776338535424812872315424571267455158513722122226424132141736568244765127825614325475558548883516881168522178471628745455355613162164183812426544238375826144351254334581412153236631878683187712232251381252473742841766745623713637327334347233474236721158115364286886132814718822564348745462572242551617788777815145531236882274135776552511866531181668165358328886558778465288864517511615647544856844547233775836656727173414811511555144472662316148523464722742564664273146243514455467826171834817472673866336638873735513386686282361637336661357642263258787217441211813668312233458462321712225133183136164386218213442272314517774776554878316286181215445553141428245381226713273811421136137276761385874632658846554657152745428224713242414168631166738671882428851745173471128133476112162818884578754168767646684852137825762835521637361145661766148537165868426546163173351346616331216381848663361245561671147732442746741664656772345113764647458334824652127763686364541663417137288664473331286728743626824387214761827317837516162138677127488735834425827636443252188851616251723332528453654575751616447161713742884811766831565543876453544524771261854254261482685342363425783576433744837874613314546847184457782273336781262218333823483817387272474753546666585554814755684168276362323851375812857434588616572277116468167324428853378845282478856664566168416368366852547686378825148745373171176472686462756657333263767143712458325638814276665652838718751116617267137243721376246783778875515838612323565361684864322715126225155344562718764832353281782421183387755682235337568558235144244143784121234466371315884288571675634212285338634651718825843827177257373563135466227716811863671156581747257665153884282374512327563325731654866335444548868762324325715547612384735851723458287621857128875114154328867314388257224635578156332651356254283165584834147153346328322687126184341688664536862384233453251538651376353725263388372627811828552381873234747767616535132681625842546838171754384627736165144388423125674636153285664441644741653641817847521818176476527683368633371872633784457616425355657276225213863318355222461812436355636246511532433845788855218581153444665735567738874841456875688834161543756517215551362861285185212233218638428842668822542221637527745614323376548132273365185447238466587775416111335232432876365272532811521336821243353241544732875773715437281722226416222284482665625255645633522252833152167884432115378413761843745217171766828271624635618664557235543321128684462885532456722312465714572242284484614728572313556616734615735871447481447377681836315466128224727667677523142744472725474485774352788546722686711177336636322423283253515764152121558323622753778165432668765847513582464516552267387554537788555525428448115281635186521186823541173627685874546152774573332375453632551617238512776214214333865817138711328371155635713243188656121112733737443812253573778454226284374426237125341657613615237526822158743252652477354335715326625786462343424663255384845464745372687738642274256683743181431655725664285173415744628124166738417641751367365728877481563843754284866818483645214148665856313332325673683666284258732487777777616345512545821326718114783471257753121234426447134645182431243887266858882643256371788187713668555842841772153772466846784762377878631427584533665436775327156512435543167431464627853255166424534777755568412734636542727466588834478815542732751475664176332372321826241371263261417725554442644333144742768153283571185236462585586867724428687843128338145755872665436565131585514414365551128743352117277347565615211452524117144222718541117674865817231211612781861632347775368438328318165855527671472365558468181181555251313247876678331377357123768381827887383862584688474775738627476266612167377644352616888867465753238445231665717147447411744481411321514662822326256556242652388381421784645764248762583427244243242781362525831576712724345725781871666734124143488562615276626721477731338614543561336712273431545428218245281523256586622831675386827437127666157317175848124523815654256831316137812212611162452886118768888268621747618622834188416178835552224864635314454533274758428144353328788176283556562526557158542474438117737243816737441853517623133144833727775157513657815377351652624153581115563788356584385122388462622782445685281758855536453168246473376723338425177541844751671225444725728756332646747223852848573523182547136212582374666431485444624474747567677872858653488848362326711554483772743628655518536634312136533772656534216656676121251358673162886556666348676347368112166848238841524815463717312367262836748411522878536523141246621774238665787156118326322315147225547122651565743744563371574386526134881524214145263561524621142342717668645756371686357781584635575318874261817534231675635717456656542625663135548266748835737163483365883212736324664254514371336363423731871362344431477875665482411754427445335647483246718425256313344184584268614587746757441761155262681264612152813387112785767184851636617828621815426353718577661684164756484154613134865883456175588642872356584466551128125634878553647544863365532618562245281222283147181424673711766647237848235435835643717247285856648141623733423553833715674741212175724116125366641626245388116222453768231765488236717147118436533786411553668572833743513243763712258771757675575455716787644135747785561348556118346625488458548388546676313573524275672327248254118643161337248566885734215231512242248348131757524683724334454235128611683465777326387326738728422183632667352154473722552118122276158223655832345324441357228343617331663853656378683325737337688588355327573827553555135468215754656874613612256517177322812187233827458486518756634263324431853812727454225167412825816151125113844481867545372263631133714172366722878743847132185264454558785174843573564446653231542617644858128167122436187467182343766258737734533743142555352255433724417276318384655471113335547781317686487133486514312515725512413268517422426677215333514735862858726324136781317712627217412557215737346686724551433254681825636875321178626673725211576534764153681485326882261457222735172487464518682157342377115858424364777284254166786885653344756381677187571676363167314385772211247645263232435418218348774682625356731743853261182672231311448662314175148355134358273223833481586685385287412817423711713223742527627316254114756637775186862781652458745345777157886115468547314226251374538414384561227743661742437263623233668785514877321885217634553776718657815311713788171748814352533268136337414384363843711385256571253473224621746137177127344867643687876427283753567431861434884861657461375232284817515315455757821436122642521676544641276462224266678428637315625158274776118182426134587484565242755711567446355855475772347827664841116717243485113372462831786857828315786135583527665537514818752358847327576738563125543848535737438221668358813275446731751144543465512234185371531761846621165128546456735134146233274852628827543775538142213485474766718667582476181511772732468523781633153816666423562441544156143163177145622151366226831443126831315711372144277765258381652131221482535418424366882587551338452282311541588886545414857651612587638344181158671771172727574734563567564568213882886734673752275242857175663852746231564546635215412871147343284714566627451142578463576882816457511348275871615358677476243758316311328413144576545848264528247767766664178216827473115536247572467142521442711657558777258127252632854565455487321787322223617437683751355511132172624713161514443724421671641638786836814822365314745721655627364133723715618835371867181332655137468426674574222874444576348832368872656671262356762225421423616315166641727651136218757568716236311172234568568355717554215734555631813355828712483225335775337866527521112748857336468623256611352711786567234154351838221571673531265832744726218882724778547551276776636725145115374632353168684148312653364561655287821387753336264848835858184514162182446731224615617811768836183368473736558521156614682651356244243486742682473244218134236741855374665532648653641643752516318717864434657281264288271487775766531568815725417876782586445822332377845523664422767124637385228427812432764716851452782381878771367277824412766428685534523471214683475785532871758478737645433882831178318417281787742323535484674387828838644773557455317747372376265124684233558361712373676825382711378788115638478364542811431372315142822255118634147344347875113317476687767547848348764647828246684834772335726622315638231225852442538653831663881134156745481334483125325158127137111371781524838832531783655234135668728866136888727584831243323455444312111366727664736742741776326727524616188765325666541637851612161582382775376543264234676346251861166841147488425514868214886181686357432832531786341262366635612117726611563648134121854687335542883564336352222234126475878138325342642163255145447183341754453876722624116221725231535361623572868632288771533153762388137376273153348884646622158888558486122836226773256735682386843788556655147426788242322456747186648474854413753667811623484263545543646287463445215766763256527632162672175186663255513528847677574627533612368352812231732268824455215545447463561454284421827324511225361216431575664113711613163245473458768783861142438556463744178185668518815826726343888848447326571432138686168683857542243175483123325754557486453813237283683661118374416225537535727634611547614541541353575315886421586542173583256871235465831263327648443453668157747352714832721384335671824586462886244686578228318763531881616513774224843551482134374458221546825144517464271374473584523266537738271183512515654514822348887461155154125242767734386226663526622787386476624113582723551818547727324157785886223461785576521168411463323818226164214468776573588643864835717221512614583347264837282674222148118831486376763253872255247417475167676412787171167258471871725322268516373251257641357356135664541286831215887468455261563146152167767757147881833128144117428526163745351225865864847358686628135176627311554252512117543272772381822452414828641827363381548765726663471838863652458455428152582254273266138182217723352826763855444651824831127588582341624121522156145215776683327253222623445646822217682127351735644876887433272112462371265814275574861673862733146771764135443612284323376551434768752824438415281683627334144422163355766324543362541443554812168482647146481624548553577165342757683286732514855472748323714658527746186346488644428426317633372635144645174825367866586131835217473653257321726363888388852478336282563482143675675611516424343837755252866214768886123664668668514688776416541448227445582454165441438645186627388214453265673873186566233812611321663671724773242715235572642362117443481468773634243652782635833336272388766238311346135364554877313582477267768788412685251648565725834446823713628578265836441128372482171426758673311558214273126726131763528156474148126184163454637712268164478781452132247241628111773746381331373256146562588268254187437527522484287742666571252632461828641886816457524877514767872664617454255416228374241334683736886313778835657576666786232224712542521111635151434214787815183313254262312527321737767338744145457545465583484264822642333316522445878115424537838761151381628553246727325468767451426533384255441237621867745387411653578614228817741833377513314876811462868451311153382742748817585643485127617713147883673644281634541142723584565832316341656628631445634554667861156671423244727567182453428816578326165348487744641455754455611512327753412375456417754385556524726362322247683811745762486725353581782613447445271434548821223568528388313723347442515454275588547247135124357252828552575714765671154352657164365777843534667312817838265868162241812231387127375675612768765886654546563162761385865623685852386641167161344144586238184356475226783518441741766551226652386578364285738771554328182656653872574184543236853452452614166165228326341564366312524354757454633621355477474622834435716627652681425831334412565615756575457286335577527168885222617156588427651315637584171383533848317816677468147564678615838883738326651457138776844723472862222218564526431477738327222127316174832181718423316885677875476682155732568112417784432876224451562124837748658445457316875131784862155748415826567185454566653628832476174373518115227665116178847752121557767475616531712416166442652376231634811334461522874538552688862813183123268377163513257124661531736248255141527877268866114166746531143624676131546211812874338142753775228433546854625561813774661147521568583376424662668626283264683626665651318365518466753778357286754131736633874787244437151541336315875617683647553515426542561717412633413676283451657413238326633856213241736677444251464162642617335615348674438552668672523773273328854823435877214677511845861712766255254728511635585241784771126448532614631454523234873137118641363411573625176167435488318841864374448416872385117347844784487586531547216145522153443883413858623433854524776878833337537531452362653725253552415434884614456283338661256527328537624255281826226273815323655365133547634772214583858147478615278581864422518165826731548215783648413742613368567226841762142172133174312545282671365422573481351357658521116864887248367264818182866775772247544357842468435445338666233343656288658563216621843816378278425732666623134675466333157635373866114443443871287431483355584846326362513866546465215117653627141463284247818215386886638682462218434545382871425265584562627738347413118886817424674282338618613128486373864473546136728486324336345564836845216875567214716336121374634188516764437817385688351475625225143738738688275655586315567876451488478817536288324125377766477274128671538858847321545478684212671358373864535336147585225542771712418683752352656472684755138676726453414688752211361352524458112454684634326486421252321436447271318678616436648452348452263551577245274836261712846578455721448361558817234322265431444122736661475376786387212755518867252484233631176313783865572268652861171321187435614617326511165838536668474387554115737248223415367615348764281681341652344575672522743421718565466447633146222143326625315833268778658531823124323654252425638377823563634646175351445677827825624747122175441842175254113415143127875151314358457578651886467465331736554158585322873672485838532675337348385687486661571743686751154487484851681134187162287478572186545646676445554137816652366476281452186441153255546377225731558652461762766758414618222715726458515678536817718355877154216552417642514752633237725237528764622476343428658662144663274667216124745784328273487431748823613325458585127512752382343832363661712762831682843778174864281133714147842577748686684757777786267343234182533513248325253548335638828137886314537536722273163246715718254885315734425384357672168526233382738173481121225584457428288137867875384363145611745587264276874737133538734151135652244558723266666878533637718174758811888866618867821781342211355853118683323328117756887275721115373842241133111476775654232238433674518662147776461545625715428787824782652441777817266427856715384343468373467227635443746486623743251275282861441544887516844835217883412268211361666517288347868757165872813536661421816447315277651358516468816124765226826212866817528236723175532714115425578745664586835241463614611741164846273517382472585455576567344788123164768677533147683426711356857353615673133416872274565616853474625873353551247443481536328247628264218225346741656776175188436124514226427158732561847424864645185275526138527745481847834485862558122472841682331884684732327242228857218277877166516685787327581582363352748653474751336765684348246442336867326452282535154274218528643848746453347481666282677231285155646157183718565842178583578654838331248186821212468434353337636651642426677314412352786721358122753864282132573475632328145843725162457662575584654755755826384882717541485811176467611318585175333776583653752274112717667273365324833217282365443223846431637356328346753858254242143743725347648371853224741225136312358751685323318587172763143343265227856477466883711554525751764445331545473773138784843537222535725871585764633623766126815764156622636871853322567866337811122744573262266285452825658116227457476783878377571668311817531163821556732358824851541647552264253718252384872343187728645452874824746665631824331763646878643135278843122164583271121418361644867723632845165358866117542563536468448218613837784584825778112627268171131321261226678764734516438414416227232853677564624165364314325133555627673216677241377778777171383534168371824418534168626532637586683682458568478583155425247866643662414451168187114312733588823781837344147826624725184324366355115718821413672263338732238551132373844172851233263715888452234353356332536218523461158862784286228752861382811756768733813137648282158247348872668552813712643337231644245744167833781647573875486432545236243814878524478346682334168348854321378317746641116336443466338327452843733167237457288413715744348544423636518152837477725868383814843822543244187743324872476467738132855246346732131227136661253136722415616485558577181637348648837748116655262186785537357883883763461133558438174344141648885773228828242274658781311864821477456355368454571238256358427532867361753415521243238552163575777364351656215838328231316355418336737414781444362852182787834537277625111744842137243372763885413372758813484514385388533432173117381241271617743367382532718716333817133653213416385225315845635533132364575885572713341584237382381577843212331516816866141565615424825282834642333688481154674882883468338764167833568572821116212227257235582152125144242743438552146526643518616272385446748762543314545416364182277437173621572767883443741246832665548462225358227538713584887131345287121513234144885821318178713388286727747842412564682361257256246838611261412367314242336658463135663671787624125246338684537816244162721548151361864731851447227235113257638423568558522535144736134446275227265237745878178552855866674263678268611357245787141246562685838545123218823267568658126272364335546824423388253738681177322451112483815242726188835143435361347574864157231846511274224642455211554131521562383321438572626813665237278813213212312268186387651244538238411721542637317133715876848852563522276126446721766155625617535577762133677121716318777125877243828628156568228546282814553866337786663138817563873148562768257847572571442855344355862254131581855261224478821815113824477246847154143141188658261262266151311723386287866843856543356837657441638825622215457712145317271124644215457664861642623723547515646137373146583265186378288151281854782782422735332635255227746833378258116246446318781413886676674551257442273511451212481735468584518124348386312438545324722376716718718435155715728841483226887348838567134322753427133155722516215727632731873835737111377518786467387232781688338618434355841274173553443427111842882174567383657824854353153724673787215631813464725857231213577524414864632874136337251867833754285357422576578222684471371526642236165883527518464723517631881211874464382112658246287521376486242654684765136617486755544288511636212278487238834376732826543666856275622584283622362428763111716521658518587856258857832342182641472343368764145642432633533664412643648573684857667887241277535456681328245631114864657466825437714885526148756313345283542254631176345541386827857544487563613472262636766125727337674481437365578653186318546176745282114441155682181382225524315484582645717466243863755417414844218871236131752227288486746312478147666161223184514524285882786667215718581711857166485542427854664852817657441246552773882457835177875741372866628554523667557726321752578672111526867814736325513648714342518637335633275774344668215616466311781861285734837311887558213513378146252722715243312227714261565248765616773414614476367372417828755133317645275234826445552144186358588431518237231862276187483678645358471881773436354551165444165316745511557562286358323633131321112533674432321623654576886835883255171581632484335774368568238414528548518725757113137154863774836881527256612228538385488746825572333628181877716716323284476114314245742445326666367644788466854878221164653325652486563578845438822825877821472687422341334464156858524315851225137762852118212713325755126648818482357554462217541783865638316246172533536657578337621284732225534446616478717641568658712833272526866261251621347374324174113332824242333185136854853251561553652743165331543215366573546388335225478523647664782548668865887428627646871344733884526223628236718361868613253118232444775618475823176553837848823763242472871548526772144845516478761177363886815583414567125468426421824774232681686153832135176675446825347124178452654527132461824314587815171126757821674581257378715585264333617518534673367213771316783875253111623777222642626646316384561846818877366481638461761486541244885471223538612314182631455475532671667621357177574653458666335463216668484267633164417874364771216834461457377384715518636675462221364818417234672882522251387261883381842632765824763157657262732767757687744346424788635118357135477843737832661625347455141828427772262824257721424366467425157716128322383275734821634136548131618281436742832483252235581583221148753184354453445668224831258724755145166473787451143236227186243646851368657161232141767347828381643768382767541655738328722621772134131277533668818532413575351138582628548475365237146184286216156835548486581178574381318781466735376272542658674661667646351643862561771653371754722253587558543465444268417278522613563484448485886424461878517678642851455884284813828114655188821722727474511552854462884118662658847343463527474427377377852677647141376315243355183477861245568444478618381526773781677362825531577445142218574754887432378743816322533713466743812441568521416215164325652413481214127541686117522853275885882127571844664464883155431535735133542622178224618574784756435515756687816525542561556132432188242861731177513558272871684858471563526381252163682776855111655318667316473286565641316526347878443373172816553287888526852418451777773574815385781422264125661615344567165364453484472771843184325378242638764274332266267536654783663816771268357175757272844431354351585673515378535154715324821142262738656352214415786885456157372424171472513141386652287564187218317845213266213467655222577488335781426331627134566675813743643328131461448812167636386636617581568263376267171521248568886656468366684177545387377885885627852567784862773112418865534683245468255342481387517214727853374577463884713448288676737524517656418357637678665334526144555187334251611264211381722132277756276668618633228755786688874438144427348772183647234813562811575126712681566887422767724622778346687564336576488263125273837738388626245861311784285371363125642524785458271268575268716274448287347478467184648236774252655272675131167763814584372386433557425887781244535184473618322374122571121244684218346674272411467683714428448855786224642848586123313411855757184723246117157326326554651712562641834344226518341552184761817763766857168736621373282538385278432677585165717415722645374788717176785863418358517633752317857722467665626618355238572323767341554131258731422132558756634555372671466358852232176838683225613537574365837621526825854733313323741744187861682371536628825857332823432888864768823284256447742741158345712244143433414746531411173113273314478777237363833541357527843848487872455378342586637151824274273541783827752617142744715883372343172454245116876767258715713614823234227635124711332278736786258137551183582643362256716473267742614313638551787671156613888464312647667624368187783531471434464315272814846826656675724434771367542718811557384563214356632434788161826873712835255346671421861863534333261134515741567325422165488787712775746486114445644856256242583747833667848388554626343624873837781653226123677716442478744734563315327688864344155283746336651672314131626156267644137426752836123126157451176527887746272362843853537164147411288648327552426717137445425362857573224136874222675536674372263182318473666758136276424857762142842786733515468754516517452636721666328376584446857524331583731864566561736842534855455262152257322537377872612286413526732814483553152545785162463632874262372584818651318512748768136141837287375752748415651334386617612586472566757365831531821377655575273446782627817836188724656214388344178822618263842421845563868711818786644522415357348685653518561246871333141673177844216234251763521423384163441811127711223816235367364777622628721367448745468152578866735566425348174635342717153828267785246731635615288161463732354283314646726153263176724663417824224688836632655831563545855444736355858687558223265186652815357654246762586217282652487274616242353518658475882246145454581325417667311725412385881315652474532355785776484524773518735174133338715188788326362522582688218488148555582283531652667844854561475111561775747774641235587642776387124658331777223836555135361865366413433172583783217376574632264625524832687647825453721244847411838223357232671273251875141886558562467256184113378174675634186141774251835185481817173525524824818882674274481571857266487576144543717735835871172567227746116462418287472576544717636161472184334721557423146284123331167873376425577178881311763165178564868321435284783828663861245718356244384574851823558843537214146422527162267256163654826414574326177545657241547774762273531128684245471312323161244352371888838821458285387682316748547343233784736453682231362843554887326256341873212332257157171468256573216762183885112514867125532345663158735235412228326177347173328521511183688572424288174458671338186115132171337326222366214847557234434233363154473576757357264553686271223477423441136558445462647366174372734235247861511147873328874413352465856323361144838262838877263116382834821835135823763466773254474643785477656255182347123418723776136372744538115848717214655141423747522171541241682513547258381335187782853666646854778311288388488248144366147318476326313882847833433561332662521317615165868423735772772848716744312778343872255411277452137468866744648136218621445256156554426187262662258281732316627364463142767642526432274325584186234448683163825525344732182466271231251163451663214656563678154176267864275348331662124352857365678465551284727755653187154451125538244338417853128485287643321471365457188855354863288824743551583118525271363668647686777143768248687375822375838488144724781664311717388284654381884346683456557247134551635164761352511843558378743318843525812634754748162611544542536788155825461855432657688743816345847436133225364211868511811312682442155467582812164685683433283414618812467255438588634664184111142138845668862721351734383461464374335812485644471463753788446872174342477543856853885865576841158273471813217863868536672376152175381171312765628642126324838684883882687562113874752474543518557857637541452726752181221237184875454778524753247324845128737283717353725362273112465674523418648245434121744752868133552783737442651123667751813583848288237548415477725386354323674588268134862225867184488587755812788783755574231616623662556714173138862535138656137364475763862741747667236713475712321416454545378643565343581777161271526146265211437658177663535541312663356867171553437811824475473345642348724736748545637242481614365161847187663584767548778815112315866772348564151472366826487327825263384827434267372861418247686228258317241364162838866541117615686237623745227112864325133753487167848728116574641663372257556164737376273531855112186222637432572128713753735135882583433863187218745172334844281328352255531327887515418468875866588474514315112528238776431887354353478871277441338866311371712214157125234545644342838666644532837746421571625245118866316361533114623341127688888753143776518476818723531481876727633677334872543125167163666428788237567156871387482868746544231613268841245841656843886211384365577248853454538271268751678662736641686642151648353344868545437168188428385355882773341261411313882434321426123817218785835834823262354376644542822716468633132814241244568681782548276725225326786476844511558764487141358856516225575143117652682565367261772268337532817441616464651264322118132752622255273786752676164274744881162844238578262135612285361731513717877815773883563657175167288265531327816865228251855238627235477576376671857531583276147861275634338616488348368656467822618261354381836567465131443385255248774211864527134544354674751164158238386314227238564187274857151841838266647252624784628614216261754456122517776265384231647165227363842188767451656278824637221643846716681213777453442484323846316677824185878482683842141884584858751331474434363624885875314411473472221338655624713352752313827265346168882553141132727745646428634337127741211724163544124456428432381665453282367523884336665387224351483412588156416425778378786383117345265171427131315343838527737328846424253636667868258727566118183412887232514852846424342852536564758553618265821563756828673118272244461147548363545814577758466377681483326841762132475837774228557314582844836681514287533124845362431325675442112577842218313716111747865217374588884622647688488141536754543662652638764634241754714555111173818678655785711782878814272876347215777426817654522428536772225816171828671126464315335671882272581658574385612238433681648864721545463718168258287124788453834885283244146568257166445156341415185311322748651424134341145672351472288461835644157558523687578687526228273447848665373252626555416685623156427484573815167638836615244218841685744231417241743571161572146772262552382173764722735744654312127341568477751282172532584875286632747473765845748582757826442772855454446832275143884445676854125522652152241541715751478172278712547751144785833224233741835763134478458747187316738211258415775724668621238658848826548158684366318862851523216268478381831356557542413162473165561285355371642166867374428482628645831468211474761587641376517573145758765474851816742576287652822216741357643411255168688152818286861813447785511717743415286215763538864428846527467718828516758727662671634386713241248668844523456634664214541765848712366735667487534811862127563211146685863668522578375574321382386635337262174842778145443562788132352767846117285766871314241143347422816516383545313843424428653152858366616137265238366668682674468316174346661353775558478616653571857888363387366427335263537553647243131365752111813186458715766646151654241457115125756627881635437464887688511173355183783555785647616273233717744344383528615838616124433474364658775286647332767471771238325762346836611188776681468557551733667321877683541226854776382172414836682457422541283241471345585675445341183313883363322155262446146562367365564581888652875188488223126744886823612634532112146655836661666467645477837747518262734111247781625763632216856571624131245681633826758168634178156261841416258141726388853832833321314123637617456675677171731253748822871617124673856621461553446117783821733867223582315331542852441713555447221277417612656527662718764817737555462387134473858211673274633485637427381418682572356561514623773685122232682728624167285536512871183263142381833136815137788844858846257153213423164373753424875568752353544552738736218257515158745867887354516188426483753465411584351255373882548848231246476243545652848714164658248328667178123545641371684226736338383782653623756585332448688333867224871723268524826627687626578461855827812461852574128748216223315864354211352276588244251772718155456574268186722745752886173155262826844753214477628578287558145886587543763877326374888322385775511165327323724442717546665351472585787685836167828774142643778614273628272875767723784854818738357321224413156614583575875865562481122538415645184128524767324224783613554777884185626111712872161832353612266564235513558447214314216164351623183314538561387485565278664345642143485828615144557155173513774878878446367578535341854765243316382733541185858188742287722658148838348147541145186216674526531488824888411474644432111558712712711385836844118428228235722863744448133383484113134854133388641652652651811172475547647844577353575347417525431874618261637534542673574343546641672388338272283162471671145375428345877763682115224872543776378868564141326233422768631615113816523837666446475533252328731777436788362116445887224113152731341886883768424111587675172831852627366344382368888456133223877126724548665552551513875787156564355671513168822142186673178445867513564846415668567233541455647518423463223651317787118725386716747182361315483877358832436176457726121752462425257241851537341222584676483334755536338183473563388424163383477117731715654762111848855355558166816546278355435277273475512224861332826858162657433461682421467517465252267111724167786145683528836547325223864337727277756664666377221313318618272811646124276875716717637368374544228786812581246577456881488744832427277344127673178434544435588417225525127553766426572682711712221442152566421753526643733574783447618433765852868644836752331262613222518162867533522366486271127148356264131873742647854348352152677362674638678441842466157251427222386468886847847752266188217678578222722273847524647124834468427818247165338777713522122127166733447221423187878741117711613856387725826833671231816677355321821387841531417282772511143541442442836656613223161822632856686811781155733122127116776632117657437541778751568431724484662547852462456183758653443872158268865718124721715747272431332755458546518647634817776678663558752722433184736233667135163185671723663862425614677577242147566325372546784835118826412612465717346281436835432384644412328886377163713113316512575183331826225622661836257577433617881648442661533586278616246116863147647715537774463183624324677147513181513187512522578577635481352257277474815136772746528735721533356862323536321152418177631384385178372341532314251225677626753326325445415336357431185834315547341541752352183443248683173314245751836668837842253188867887477654654136876432654533586386611576658128476236188427466756116254835817716238534443356133643165265732363552412556882352586514786361184328236483658572611427766581256587222827873437564613258565552221617851655668125553747582146235865457483528437644687244458238636868668837541174251875181111573836781454274788815161678345461453113248236373363871547147375432418684313642874333853323252762518537566536385725766118482337254117534284883271627185532434711327161286562575327226346578658677252277514332853732465784458384711884312644846878283778724423783558678734874573213242188532427448415357446862247268377882218551261763266551644462465855136688623455673138164271176673243573212557172442824443142715781137145761265471363776686544174753237712837233236464743584682767281677741351543281331651626881776545435127273267812146625322151774874586172315283866344843245724322437636536113316646281472654153883735178458486126736544721776743176384731475157787548687643126382521111744158518321875621188327448456281563221623727386155884617341838673165647175422177574854775477123428883352818717636137163527338362237531481477842221177345144167757321321125515634682183366741376174216777335555182311514857176371762255654221428516354628486632777553724343854511834315225554688525566687854321474512138372737478816663155264372432242236828624424642657234552414634717216248656231883375617548577138556262713475242176647268236888554277125461675583234151833578215688282685733378217518658674614763758127567555175513277116443831722781626138544265171847282545236412134746417882268724541764354652865325663227384376337112216563466858285214833137631238358173126677566784744754586616347223274728643172553148187735256844363424157363288568565128332836121438485838328772788351881251463262222671662246322827123685742664873621477668811258632112573458814275821456324341313273347553243547735762518613611628521435641664144687427485335454325355786523524883715342761815317581178637651655685826161162617227283752587523782471647721557468388272446268544458231863637465462858111733344478467422484237461666346188334748442854183576834117788487236272775162442756558566115822342128314561372237773718171633564775463776525637413481455227244528725711222655266222857446251378832178187324732123314628412246788686513144474286284665265155635382522726335752141416681785437554676865387441244352522617826467726573168523634731882723274727615424381248268558514453761752688831358141667338256513875637866455582266841463178718664334671436853741231247442888556658134244538778588524127827841525135528568227177115217686172184316525143155568348536383167247564884487464527128663487364188522677687581643254787144541625534482761581322614774244667636841451543318111767225346713345817843666813863656447168345666836632858655628174727382275658313673745471642556185524633864865841782338113855631743323226374534274374351356476562451737462472818814438434748485316871784613881581831841824841132736872843847886676446418558653415751155348784458713421875817757134285681265572528532535286842742832556264733652514464873243484276183778758785826453727747757372147876868547141445484245121455628517262126586532767353865626257615283354674434322227111338824472166368446456878662268882754818665151564318867511327217154221676858815414161421558346728732566862768468565524345841328368426673568574431648141334463358387535888543853626682332644848535178364337578747277116377342361878413812321362288566354685738886544584733431516254858128568237778734874326347661125623641253612282675224528882864233587571551668444823431831786361326145186734467736241888875272814278474137461854534224278616857175631233841132142563657534381685835844838682413521585145544621811464834754614136752453526645633735735262518678155257228878228463645331251637681785514268271183424647324184534513761886762772888424253363725773731725583446545277661187141524814676813754277412335114815536684768428411785335235646786326676761662378457852164617384675124786731658352156731882476822521561844175512674436232376668887124625778441514627341544217716568646775725453822645355746533858571257437573861612234478143114852647247813756836716354354234328451864435621378651856448562851562638272311117878135341883658326541524355353727732335374648377147751353584866655745143577223584465262177545816457863871758627122615523347435747534787564512174322568513353436286346161281485586344385386538325648823812622367113418644314386437126327458673441352725322457161463111556471475577361752684461527485541788814252888642572537346785311485856367237268376146871251682687853556176853472256411533517346118131747534537621852614831734244624717321761312317245535627788862352181737827725348781437816781182711871348722142182611481746842213856577555666536353368154325585451815668382141376474376725374581677841741642745273221858463523351152116767517126445217124473418571451734575154418578487416754362476555871276527573278138372615544766254377811425633583281167573648351375245876416433653456272245141747352526257567843744433553227782584445737374144828433684166553672683263662162554566443856513536766681133735882115451752278438175422124357853724351413227127885243344741243524156756177451226741162226836757351643416853641374157366536323728578776267432131245148468151337353737244844727748123855752582186168788851443883484458815165244527183187712652161413164676862823738785543417625333631665452221258238784112563762712768322281826736773744152845725158551447138628466327624574152327341174757735433751588656138852682761255685244276336868532537314541333553773861551146861783538641741165841234858151327486426182632688383173468442164874376875625584481487742445653217335881223372737746336542623684434174263481348184423247878345484863875272875875373614162886213658543232421674713741243418638854525847741417855845566764414361472865726454811464627161577814518716147683271786835638446816164845611275251331831253264755252652273786473513365387314771362137345582348381583722358783428633134373574273733262183842851871783217223541531444224574768525684572184417537268681627282723348516623123545358835117574365311236888767772477166643582875223246812475234142756581545614826311666772465461356866177225624321176632547242374541815337511848514177238621817363121623564324274678218761752354253325532654643722617372834758342268783835181877628543442734428543572842442245127548571438861432681544765576244667583535588332117233318763544822536481515518626286477131145526361865633271737244788252856475717515737756418274368251443751332157532114725444436852153137227483816224655785338614816725617523514235357446137687655344875483654744165778273822477877175272527612115653377278484743357566785566474818834728457823818663143665811361851483415853344277153826526528362127128211582671476445116435333541448861186324163667844676771111241217773414867715385668126737727585363371636577617842723585843483185374154662518181262487682117813511562548768465473582427387675582658571456164518467667166534654836544586853471836551363886468557773812514522515867882371686318287477315666587771541635761417124758381833382136781534162772378625622361688568254327374238356338582687754372887488784317714517164883445848148844533134521862347434377768478344457361322475521454472834872873877622751687351352316286554718616575721758372177274581256313274517276733767565354711835233556576485735113766163221263375517352667741317352838746734738155442614485436358522263753715761322243342782284626881862232465163376572737613174471434656553661185748683454332475478822336513313754773675128363577568382638155881878316425123861784621653555225818411228421677456585322343721122137658657635247564716531873681554485162712183418881541218274836336548336585746432254274658157782223155712856316522885152546473384565756827244766622284818423648766418661282644866252653255525562368746822682178464615622241463351341533667873428541717888586823616666683557788411287143813254522758287541388847856456724148257441161574571244818242833344838441446455561674644638572812861514555366484428583833781642518358722845654263123113352482312747488388732317318576572687528763273717771871617326864713532565573461215858685227872158177885111356343848478111855736384271382386681141187585451884533717444543828583388728451521543521362486477346342231766777738751783187636166451373456185575461125125848222567382333813422524685264737441563188278578877746863581543174217224142166621212858815838834125836326221553668725412515468871141362151615862824124372487343146771856126571448747845172825276561653335641484165858236385574231813235357416428862885384742335835345547377885583747377457372571162236832481641132838345261125183872541488564244384834157231636581425552464557657657251643463132733378486527454888622445683182235558265437338627256412141315238652335874367846738168261862471825755341646547771786421516324376557273323676462112753768217345111485727772274485547485125758426165316742866166626436145231237712418774576384522335118228342788848577842636158383468472176823723442332452737754661675773265454384287314376137511368726713115242651156285465875111858218581762814628185642338537271117136614561813823153256815332347112458416586455452676147366467847143571311625252186656281786576152226217748422231483212287523338216737227721843671862786655845556216637526676612378554881252617187638171624455683215685366414813472351838435164185631857578566814218817727485411533638246711567647334786682712765234625166623454844123648738625885137681168174565166112854583677351631737745868434234186245221816178231611864526811476617376477283775413268532328136714632341726151312585247176848236686781568245862781325188674314838527342256654811132317875172475414337551733883856777573257183343346658747136133467733727637827352634564447746784564856676578164844362765327686751242876534117288532478671441673314263823183822762178544377826254671868248441384552275511318684657722316826556118876234231151233661412263524881778182575551331587644531471848824583711833665785236675421264143182443215468827241477886111264471524481647616476122571281267323342352432757256765124711786325328424656518475638337477137431857818332682388468353256868412114855785521726353385211567575475772136576237733228316463722336824623237451241223254756748843281663653488271313524586347812732855721265184624842187383173355121513626273352622772621885781483258272876717161824156743883143857563621112864856132774764147318763215313166528238464541842337814382578575246736743287878672561665773337723212855845331267132754343346788726862522155643552387787232577458653512776352363213643532471285752627885381477464748158367886542371235454568126182657652456662515588241357335632767338444218835285175712611771837427358441313828284775523316468812714655352324344478511736544231112143335467867112862622436728526686621364657237182853213454313642384171423243642547525766864335435581213583567677241373171218723868561771233562183681188176625618565623336654558738514112744812764836335682724756317425455456584684136663454581817348872286726786385638644751451382747156448725424644514651765584745222865744345426544661346863116628712855351568378755787244424756434581732585174155312186288574874411154128584651387466176611688716823171631216815642425655735475264177242328818271873557746444668776566488448826622847437743378253421765668337611762562145334826858832265785526618435631861322824477381565237757416831623652513127456528713574182785526758126177831248238274554448882644322821473414426832457717467217638778836866478778832478325645568227171664472821573636525255412324787462715667625655114588136335364211357832364518216253262755882378275835262232713237411656743146155225718627868778381352646121473865145874766415334136217468524562173371334664264367655513234387166382184467554157534155137237134661576583415571431712322815617642785422453821521312218481526482247751686844863663478435177774617454428671747114423152535474442374383361852652763665585281644568815313184246873826272481424567265655552643311383671736838486868545667837267864833622375881577237311164757324724686584643417872328426463265313778114268225164215744587475626651561884513171562643262128547714826675733211854738155223847624673421611171773256637355611168244455322881135157481223443426137443575744527231566647888812365116161524675287855586155143761147645767242732384541225426468464347525815275174145257365813851351762453647215626883635836378874166863733224786543425115314353665423316338774285416164212336261763113443871111617175586328143128186146345123273581211748451633687112633344238587368141152131851761641832152871426828874284858843626776178247885354723888374875253511775766222717288177816162574514688865684835624228186453682142221164338723851463377134853154863648143632886834833412786778333517273542731481551556614182174412738743523338381126787763862177851782751774478582246623876664556316552547675332123674641426748546762786524755654888163112452823568745487648712782684665462368635311726251781176743378536654283724553757834512353572231866882344356347637155351668788745241444441665545151573511458111522626731766127283347318321721848162642487717526526446845123214121853152548367688481784856344326417674545448377824853145448861228156217628247615112875531174782666274613687155665431643356646878386754774251723835886832583851775232616232761263468222177838127646414183868156813771557142858471282566754721226164236132736441561376138172783411521284344684741445128524684615454473477444885638311868416466623157165711216641446233744487258152867518385831844354638774558162355173512212766882432875481164381467625813285482632438845743268825457627833543463622376721744613815666166272428671578761512177138566878687786632678362133817771317112667117671525418618166414542417341142771537678326273731854652476381438277826754543476543617534253866472371535146455628546288571467213146111312126575248735473535116366874675773212623212448668866564337456582813641632763488183656655581851217172254817357826888231781543561138851157848612186171155721644427813685475426282851145374354665556435671378817154757176478855267872255873433318482886213267373262856511753741488375665873471764566727761754851584162466322458515284641682757716371283824156677813334113355613217226578682358625648125117377557371687653455137568241417243888786463387384814321241872785682636873378718858387812166713478253821214785671368166834322651543431222681235863848318431663326331342522385787658388343368616431131372172337784634555552138733416542428317277657121566465428331581787338257673551227722451883657387217121557774882374276273514444824683645283558656762486317717881138161688652586864278818651546321836156627774171214652637458657641146415851337145417346743627552233541132635535643477258187521444654437612231415623415825737767714356784576626775285484136472838854611157488274454811171787571473518572121615142218216852618444461438517367878668551845613624761711432257823571515258436668142717841153822871887121154327888178771853812115764575242371136832525271462548125533754678373845254373425331248662624778614577851487381521332217146224152428114221148662682877443152156318326438181156783886782656868516287887563548828774531416188626442812335648338276311342526585231437361584524411231835647416886615112157371421411588654552736256764645563572322366348352414221584567222248371214814548755367887351748854587675675186662865655257842847884733356536254141623288183744641778112434721735584771445438413472158263644487544632636268216221133825855184428777621817585377176848511115547283831132486675443744684312833743632715511365771854484531624657687875142145534376672644773845415288411674314332661741827828551646644717817387554547346234246876352688455875632753353862153622444311325813473364281454456617822347378431745762886813845522473214117152685348435775771317256133541442312542454811277865771184125135226176277677613251715512674873465663182836464751481127286271587262272142784838678442337553672265483266322415478171813434653568764182483641774752843872427632318477534487443837787176874724545441883318224464853736225563624337824354846154425317621846315617518812153455416116774765283363178746652585112612188543723155134615342287617748144665147841554622315135752345226384857651675143841444626742131765252184132316211351323164767751446523686776217713841817482763877318564343633428374471278353352272617238483411445483271273527333463873883788883142456244252872387285542421471781613373487554748568733532576325343271576413477415844867282724128343187718114454625112481668641341246173854115167535474226182675715174446446641564628181716542673886111744228236315715842366414411111285367787277764825223458861161156374638454837488612644511564445641723437827636383157275748341724565718666488635117425186587646283474316616378775327484753684314347445165781447166425467436834865418875252266634373588441733786333722114331184177147642681175618157767361436444318661541317745711584887132343744422562588848121746345215148381632575382256768848243731835534514428128221786477361318418533681133645234273528425246154176122285256465783254163674888464176215471637366588656834381837483778337416784243276748874146453632324132411782826551124528831378412575723562331175147566251274285158582425647622836654165251331742752513164516685162444721748833168825883443728432246627363352647336836741778628811578126353484376866327186635386424123754764262535854631184521832134316748725675367311318427417671617353844528712532547277637553534431381442388548613382161522742341878621558564411731546655546632785756728433773826877323564216873537366728116458824625638151455617282444421743434752125687718845435666628353583647856183763736476513365816836282144624617852355126323561368677448872848442246755253261753731362331285648832513187112177856771874158533226344518118274576352455452412423623774655441717283385841747876827213377522568477474847838377161867865423378274673166536565138785572621144628777152424147222281314272246377353128267348232846577683874522144126638538542313131486671713573184354877518735747454288866234288682751521151642286565252742257273138281863186213438145825611485418434127486717657622811442252483112411221857438262158261355265165323412164777464346851152538735164162244283845178444246468823585588474813264347372663161858877447472437414747664516813568557317613525466511177485686143118585133855487748554153532814371786186383517153625176146144432112677424641226274683163364766574422361681722131466643776224763822717543672782544277253841334283373787753822732356138123122511715752337585468681814873275443284368468827465884182478464865854857514453358455554768415868425521467523815552113556514761623362177736626868146113728285844767135574223818474652814521764327621265676844643725575113181272851746323673147176544125482121312156675641522121642723362243761166412545684783467518842226211364814145314742784555141338848866124587687238318464165668663636337757324216717642257735358528228661588568346212383732157671318265884752545266355315522348866754448732675218884285343237212457452442261787744823453463853288844255173157513884736244248555148225428315225464554238653365775464813543152358311734466451548285653817878265113255367564635242413761268273654836228676718334162428532246172562754728558458563374815228734642883172886513436464855463123587354358418736748483845258562777373625333715581245211676641487373225454645182675383431682616235527763817464647744746523653443565447715253373236517858282286553614245731654147457241736146383638154333868438845726511274861734711881286746431163481474542322768458548838378352357115228457315357713453377778725582724466366558148442441235767437578623125761672375221711487286555286218753781625315172637416838457778321618447637215465223516427883584532465318138333455673131886746388443644343836277326325475155455416471462652478327546252457818211824652784882538151735562167885853125765345464168128576471866242511787328435582211237732535215136216685245661572511144713424183413233453576645555236526525884341234235254834441668181751128441238343837827438212212856857567357373245644546164342436688243847763677857378672175338564578443336661126551485614384751365821828555654111225485822366811568262173325736415824213388656463386265467146344816433633358563882377725225526626326648572245414332271368532283885521274167574717683738752867833285278355623281631814545313165482566583765152234872833568446145818658633718887186776734774458628645415685652521815678654265213777325784135347845564136221632116415851154648148615625136661767228671776711422343574183758526384862816287186232246555887755255212167687257746666373468324435826734688172566288886741333773145727744653815282152412544878878437813145813572784541614768454466734237435643588841677635567665357347776312661621778652775547741262158756533555411836724345728716828554314536747837318431812868361772818448684456847777545412334123321824888814618154718841271272571248385386623385746336422446352165814531868817442775576337153221321444517484228183312644446738737578838335726335666512653132175433483135577812545815671871747152486661887775541241415263834631466211888337888878621284576626663151115848447332211781815576224225786452883723641688671217586614354688755787158237653744313861155422176355167642224557885253257467545861243164272217184675567174745118628136222432817843518477558668537516884185875671146644186863584822611268637863533816363168175276343327841444657654482665344822353351155765242816423245646118834766837515735183481415841651221313816434524223237368744566678311661413464753163881544612138566531337372467442712823353252727547547163226151246885282224352773616213532234814364884662114882332843865155453541148112882456576437685861272546546227374228643353173276364238851338236255725721228144442834425428132624383544626637768832171683583435852275347166552444627677114426818786181714221862138867465726464121621567851646455452258446251653481546348374528752857582823145875188431328641333488847648141515715424556177277586482862534554142674115411888648457211454421881255235746535476427718842853657431823463736174673233684788732662654561841345473453633678352477628643414548153188438666588717246711252362266243772757474125818276367182368653547723331642782426728535733388358687821652547458137151531538122187856623733565277654473483114871635163846864557434477787185284224381682385442342385262641256345664343547758644778163236827542678271282666532826773213452323556244254122765633372358312481615338721723156225554446873123184383341423338547258364652831325345348442671212587521673746574275618544478468527846112356621237415431735672311264772176648732368768523156887815158266587447362328271156745513778655122535468561174251832257533168647481184851835141184871431616537876186458222733818886636686121418275581222865825722541711578336314561548745136567328461235164455717538423822348777785814127553711334273242465151548188567881367182275288316518358728745344137713631211841567218272633336436877216337128746236242122314624417738562341321543724185733355365158162765464224516165255547171355328466673612252438652866641773814527256226313522287372526654822174865577375316426822148372733841114528127548857315471127252553333645654177641462675387213835824858134418863861737463741714315782311447444412155557833824111358486247148278351516181357465552266781652246743853558285117654471236858763456718654671751373337122366342353633518144135754254152287588623576834414766458564847156676315561754711357663526621183551757364356414431254226854164326167785816647676463781476578876373268668434267825781817263761288573241251266628715866483466573211525281774542138685335642886376485521384328538554284327224723252471426857517134248567486847861718422163582114125148584257622782488216536633242326233625587633543261738283274412785757473743166174633658634141821586884875753357381562235515617423123377563485224841261332867311673611133468851355163712817747873714524552526523786663834374842228342614555874233411764863353245276156468664247485272247271484573375532568574481864688516223677616265173547853541111837348526374656265226872345844126442468714831656745213484685166412227265257371635255285362847548361744368284837424613236127743775558853533632563834827326167315757423744616858828317685112783845786747217762458456225685863267724187575432276728481866333551882367125535423282131787421462237851633883414423283343655468272664617184114423448631165278687535112868866427758488456674521373583446344853715445371615166762786132563858815441645416563326286861723725375836186584752258578335827756484884381128415287246131437874528628718726427623537217756345356384265724556827267658411231666353771127463732225672582262344641874586413443564238154842175215314631466412335445827312576686384466161767187333731531747125724831643481756576565588343252334734767763458177781451844838268343675467714477256368123423131154823436373432724226128231441515614524858357148532348728833854124243537421332884175664627663142265438842662766834567615568844731348811774831631744225747683766517267243515334125434677526484212524345616736237746225533377458212612863522743576815124422354744112355267452611116575126813386454655363678826523841423271271533557252536177616117225111287747264845768464245512378586675466273344722458448611488425278783176161528632576513258712876832241554516278313834858786185344538281527235753725811586265486441168131724156317888555332532372388857145247468238271371534328557224584718643342226854814116868441411857423453535281357757412452218264113828368754488842343557664681788241676628635628754168513142736647675144676355817321832743875356184365444135335137222112461662847164517682271753245143755572475278616243851113486667821267873287255568562348585352721734332651446581553777616832274863355421531781523886636126814857284433543387148335664333131226615155166315111611264617871668331445848538718876614232188756376481582112182651487721871532766465282813167341141778544286448783462567462863146275645162466452658566121314574883136631877278424442751457575861864316352778637743674388146311487734231315847787653182163413448887821127567826473788663873734471872141467358863828443681678787875256783535283272185365411481775451146155635851765383711548226738483115338534271716757727747226133148243283611372637516171458232413136442463467346767433178182813762425628566117642274483358225183211562285562415524631823434111882525435177225736816567717878135256618717386846386848411385264341172837464627316168818635822453451324726275623178841721463214526324686165343512513252858876385836463668781257167858255148468137444667354136713218274685613323223651475555236223142227458676558824838284774283266354788633188647617637775852268465754487466437818742286448556561156212817327115685514315262527671166757651237716334455147761345413785637356184436447143881531731626841672452411254125864684674425726772887747751322726876321623815343548333774713654358856188451884845765623781266388254861576536736174246532245765657751877312574352473186127555681543517138387333276556827671751865835685535855851612414738522677867417136388874525722815834112584815674323367338562638822388114584738731224653311144612532417467842834623247468271511451362127818768717272635521542377314425873536574352132673616415743352446418724211323257575836521415626464116227226212856551767575757461842251547368152773436374566318164255821416828257117786843241254548736847545251667414155171615131621465788321184534816424155654483188678262346611757455561184213423446164758585367174646426716255258735312762185761214543333624236211412387464641441882785753345153154778585666611456215677672374648637553728456258876525183377328872313642383518513222327326614688488753878746466745654472653788637313367247781135651615847726756284421832666776123758141888365684115654832376154848841818786852437514683487283284245285242444377117264521188424715325538444567377712821828537668262682335443277635576535254122648477576722746675231581775386427152471758648377487423582686117514422485368154711222537787117835167877471175465474616256664226731527166165627833364688852364617336238716344237234511212318436768558448744824734881866114627812826836821813856343488166517818687151612718785585735717237188557334484341386446186244156822777327327458547888555876372632818487226567273868584788523455553513882657463431888475884331585413412533148388884818417782541667815758764758358715652512453438188542525651686234618536668678275748156322477612147681137855748333818532446813164511611186341244532255868655633174224221445566686717164836288514575614448563212758355715232247266434865488728564288446858644562822865525483128435171736411734632485146253554264748423751511831778351633648163216224111656421415117241415178818582652684135743441255266464332881163883862555581562758413545742514561457663388843188688541781617752863431421322581121642716567151226566318311221738514644367674465278528425537327747218313146173362224756476765658276166471175122313375674362516422137433216775675121375473633144724364652431817276272638658523615717263173661245864213768427685846433437711585173263415144781344886888645782161373384488834868134623356513628424624768353726678647143481438462544586238516734618173488232248151428732647382768366372265185882618282423353215148374252461826177864726818778451885471624415271677636323862516663221842378557322752151446314831842515481326714881762716533886687714154785463532278466786276542383664643856266184517286772233822855331372618868131716454277436683882821256743643434141264124353542711475261285444425432511832352243257764454864123533778443565758764517658725324246481335358744487558822888277562211321513557814428176373757624512314461776273385213587771342758186183247556752133472735756783462162145867253456352214756486738812726373715221453564626365645516756274232313454377451153674835676355735866862111542227545645711542675242787665488627133316574584668283178755385823423658864124251141144886285354685627574183415578371476185231565737686783118337225851558178743135752237117137521775732418451658845234832411323311841187633468468577642788827814618367111457351877743687258151277124732544135134575442367238857428778733216766734177212882854416154834811257437813428378542582214366354448388248478477183347237554786346735756452368168854747351446136471162374522585457512837677357586651585846712326136831364258628145612266543631114753488565537112368452126146254581548583716526451866244548862371141656847256588555878112887682786853356247584451615316465745635377321584444856677368875251738837436455886152626454812534374367626332587383162774275187432828357152877616671527812112852218742317285833667631281481356446236337744144371158647777874238518342676777275856831715614783614545774158846433225886433518571611347351214856238475217255128278264665786758548187367678251235728286442777617227811775412475654661474653188821322158685714878324432454464436234836583142218218242156511618327422767248868841461563133681678271834415417853518633135162785622314455855652827551831216876554385732374551628574337315684128554236835457181114533864514813457867537743652353612665275275482875415258275111147221638824533336534258146325828412441138442475747221632433822552613426432678721333113235284121857215815644622425333522637718784222763446565627811832262658547636774137442871642444332157817771467547178243227467557763251818622263667583875428874627634784463381634471748152545176551881144368183447287183754338171741411516516427736612177226182733743811322621418671854466743626867237325177785433174532862232435227621285631263242612487668422111767456686774185165271624563463115726286764741314522253678823721163772465545546185722258757118216184817432756423114721782568251566633446322654831123768625517251733236468332384413358227478814854347182585782737734643251156258643127274323415357428612324635561562386438645761378311242562224742146476341834152153643888778263146774128177571443326575324216411255354732645371528343565552383174516688721158777717752826216162537864545637212883435623431647767634175317638834747128158134877651635226651621714566272182541862145534768737715123636545666458631741236771666738118724886248262343333171614187184836186627611545448616747356653223873355683716457138461765281428427611875236547346741836146755613144738812365156722864365557227583662563415162423571566738622267432345382858287255772252283815628551178345825637872114873374823467473163655885374251658644785148584462634288787221342812382855811357227523283661665456682857447241533344368636483815274438271662624538666685842883522854578612464833718265638838372144267788146181476258612465388261653213113773487164141876283661413623131878325182463532247224252214567565284311524837723242334554161486116113754327151872774248246875653833815444811175753337357523285557548758251827411431863485714835756433337121536271243572123123667367661143713486421465567576418313731745723162478526178484744741223887245142885817272232216541332677483664858418836246463687426655265237524435137428222187836362858162821331541452863878648176237735634737778575778734317313585445817877635584638673111546453816257153573147272748256767214464786267426487325411172465256561641363275424243753532444856373357152436577168322231164236735267633763136883582314472582372557327365575844388487515455558722244147366761765772532776818841232386224466124382422518885851548738127254865852713121576232752735326138472677454733472161826256487787615741673655161777865552857437285448576548156231584228115755345786625466177652426817878262686873624732435367126617262777824367541583483581482233525784352678281828855224331221162611715841866558245634656748753581361531686858761884466741682521544316436737414514812583228171114214727266817455525445456362348758817424124731152616748562462357814646155418214142322245173364765381583211632735544738436631216483222143262823576858588732828268442653661567475142587577468453487338566228157638584813755781681221146765441761636227168615475284217852485243815534811562176286674245341755123363363426384821248338453246727614847346865134255647583824252132236821524726212663583551876188318561387676417342657813682366814532551115742345112762737135432875627427863163364426311261423677746658443428653764261787786764625371881713645582118784561354385781571656882151826485828115442682641613468371868628877848258328483234147535628657342136547571585464574317561415738118334287814122275615451261324121824318788267375553265857888187248241135623527671163558357353134658632311223687684626512844814366218285277543363411152853153576763678866686171121286188381315683832825355833685715272217835581853752447816376564783163463188155217353723522844431684647617523233635813832625835884425275544536811157441278672867368555726238586582113222155848646367746468187654824333217768634166722255164815417517728355835188741163266537745665453158258457313116334144534182513567551113883811233314657233341516158668635885615846468777263283565548218764335885313876661656124368886738261438136822357424272628214557271271288456673231228446834178784523287233862771888533386311386415611524577655422365654185181547117226364111558785832137317852453342568161785642831218188482644637781787744117717775745485335688277354788265643287773377722452835732317784235454237124862766866521347683716357436348316571246587678456437138468264281448438788654358881463321346326132542521453758555553751881378582646515627864575232177243367334265422644446515235144527552144427865241355613775475787328421563336851645315284718175476137782284745421617334374748187661255362425134685535833177174722546741877571131371548557325414237527326142214818853815317525847486337887728378871332468381485342864331223621514485547537667762124154235213831168531443276533432717382562555552272273211463713858458275437551478217574537575547574412611426534252518638256611555562338442764875183755371117724171328334176264671833261847681715533536534312476546558323282263473715455556451665137858865257116176288425126754367758756347725571215847425752357641573863754813888571878254481824872865221327676381488322626428777662358187835252351878127765721283178658442634738527116573134251525271133852315257634473386567286315464366356743325721621434753578686181725566414643624424711725772267216454161534762814452233677482873525882642185884448228253713881227627577457124464155172457344136867323235647152466132747678242737336321572446271853617572455215118716861165481442723336443661362853525673737778132332145112248112358887771655635437512723814524646616181236456858471668651622754574781768224776425552274226417826815883562655455871785327634526227773711663317765452683256514383271232885275653875141153671728187726515274656611865167316475175463231445571227315573123321735173852113551372178287485437276772677747111715663683428528116772628462847127652627536577258844162627778657274443362586413113111347736667276537725175686866344335717444368688572246663838333622213654757786741532858253685527747771352112473515382277246317158534331286345353783671482637213733256746536768727172777526444476768453676433814478637478731368826527883315613742764228282885486148515845113454281228215154513884445818226228588626344741362351762162858367387766556637464256843146813636155548264837631756546552227542754414382681234375531373264888665213313447256254724558865454137215546447731525666128812224324215725151548561146458821237661156317864535578653154855675218275515353785841875742346572717776334866825475234627428764641538738223722136648672231776248387771468421231752738647635226613452515214833128252733363554222566483624126474361241537573811167474745253562117288223662568643271565657624821448131384251171315158684265234344846646257866566278125281423853327152464237884517278718847738261646571113752877616366822681574357813671856625543375546466432537185458445723847363486244554716226433344523876471631442516644433665615134173622784815152486836264331813417748538685217146386123454221257813836415173784584282216524636527867227473637187266356625257875441232666611525883335617271564777881137418527174116564152125514181261511237536146411713674332346121647661284787245885354454554823887332441486371466163215531623173815625765468326833711363114422368442177335326575536658861177814825733653754228672844517512112264744766152261117868328671856774724382516771756353245172776225517684754588345166447126211873113568851171124277823784212358231273178287755874643522617784426232526485877565518837184574815325236776142754825517474538888277611475771825327575881444311828685483167136668274778781831888437874877681124842876836525375377775241178782272141413162618784363587555545431584342527654344741615152373532557673712347778723858565414356577816286182775364328346853185613214881681445177476112714718348366422357113566174482332618518243552676573416765822245813531242417545862322858256331532484515615135623524376262565625451771147552281448543268825253316454258872216727633115664751281835847415675163743118646733727567757518146344234512532824266578465826477222241356216488562731743482738522382436714523167327817316471117847147438776754583354274888566451832665251846812317323567435732824257363434731831438676288771533657552584844613445468788433486352726863134154117525282135444666847312371386754375581661224382143444347866358646716643662266132342435338652576843517871666436261474664315434737177843125438143271324345877357745336335767743137658258345242882234854147872285827543464158718838174585344258622263576672638287185252442837516478337812135651431642783156563272215512772843875656713278412788811221154258514778536715456635632321426837458783415253488638888121737472283668188375625284783652331245124487166812534621285157887622324334232587647778468842741667586811178748371125152556616434371641315381874176353415742275573347875571278643167875261375813887683821845771244632355171546536362251351817523853757453176731137843144145554551736642616458423826272353727371331581452253215454742674863456458415552367585782242111264521365376788686152217822288326367351575234751465242144734752487884658248325337523774757811116516637643541741552538172762773511773644564617634784463526761772768788753883726863828246824112754684646845884672678263825373534611244718187433386228577723646726787377744686523215861612173751241837628248566787142123731213226226644638272667132234426234523811545674313435248468771261278461484633758613826731475557366271286438615675664127165371114733523255282628873883658886664247185372581633477773128524841432746445382831868614176545638743586316532685473121577827472463382527242466112823638421367262281857748685366524587411486821131632276143675884451381881387357337225831855252666663353877724324135484246353526353345544482888818518633455324125841452812652628671218255674255745582758625557482213724358444888548471443585414222281586536685626362416465566155262287522287558743144387842226684521333122844587753878661452281358478652552811756845778732542676382237178371145337865418561715134356625641324553311541474224687178447578621645176647552871418726427376244328574324661834875424735354555143612114567232385514677221365741717577182482527247616484587743421374744183852636514714834764626424888464458688141187276321752483558455587527572266572824886285257163328237873768287378774464656453484877663125835463817415531343378666211217767371361777842845863517727845478276321188751151527567156516752441737844538582623145546257531761744617657526754667328614464217288328252628854427328276388611186838524672677726527283732768568342781838183545283623865627675265145245122466543714767315731456662853434661882248325125315412264161313346132225144326553283366443431462164856467868224531534367372435588675818655674717857145778678388864421186232612564365423456346741883857377455362654213217813366352224652466814768856244685522324285567474274327821584651328121416631277515686175214377465174284536552367416722488584817513883143464587818686533252543181458424666776677217757743114823125867181775243661423886864355354421381864578742751615463758882441438232676337278251784661268471188823747562355366126471414128127878831787534726528764512163562436481548118151718385413571834664474187115661422456157122175153551561477614756587754353532113368185281562144753348442782883385714484251332364687343177377264752257563363218545136345731656738121767862777742142745335352612573331724868713624885224721587725157746313354385444864413232811225865665587876282374385567735747812248414263873627253316151312288824764341347316127158632462342348683137667285754625364461512483132882665271663115537145762662564564681715877248367248635862735842327868453147845451381853616311137882513726467624411463434734514184222513811667718522765255365662783841331864655214452573718346232535255818445832176712278764186828241732473846741581364252532323743886741111452461417838752872733288531547643881846781745681478367822563347387387644777816522557418366617237533314348211562684581437754244583888134811664533552662444565881881768851833343618565475448187144731723472726256664318728785361641673811778464712838872831253227253223887812183283747512523542134345311757554858834684426776646176267843715267756233364628183667472773234426288877225384881836475561758882376335124353728763527634425472218813224646687345283836145644762332343364114435622675485121166215186134532644273342581258235525235844157277366562786578463124314584816475318563342688643524655212368816217155456333863225381567785683113775187371564855182245525752128316573371137484618584123385417315651547657284232271288228638228651425277883176284871782735654381332546313611488584574456888127121242862248848587823357724632438233371262753623224526858423535225513621513844752861665674814225376625472665622518643821161453682861567382833181635873171785252127132562662642361764248787421572185728185225853646132121428546343585481673245216871757511121452712822676671367653617265774828166838614467155837257664228212275567124252157526483866457375281324125546428741551443187585162683262683845821545676853422134814377217517686722886653884773268367785515372154728452427785778675122362461643782417248125258734315538473424463573886865141621137346275584836751251424685754436257875212262857131778847471433228864285472343756811451258817236284318727522814251815182678212777715754325576512388867736643582178554853511236153128857238557753325761137712424475337751723355383741843431543577772556315511736261232262375343121774514731511326111233332535814688128288851848648338633583743312274751755448371371844858333531415882846177725723874876711838671261131417276465424572238723641764444474813615354613825564748873436445832763485565724166522418718558618786715368527532373181647583231176657852878317413423456873285818632234877828735743158446632832513775272138673253558163616816733712138218267153415323354121463744153631624428336837761247875366332382433732455127582576465657352282414443688256623841573625242337277278544231782255211237743643456775631748888624812622563537763527282732728461556385453612255426386146888732574224728665877436225586285635553862321876264173665822586731375378271278753861337426645325854258266382846231858467132331882827715281484767731467277367327228865285215648222268644476878687355875562636245437183211714731536721337251772382212428215658472158258872621551747578266687336248732785867684364283715445878261241881584323456762743353552174258757813345347832213117461244558215812883136826184115718534856867127327586877655255713452757121738327646342827418546883234543385374128424512118133683662723122346717641717675578827741628831752432863821778386745388457321283314512518646546837427153755662613123768734254443355127164317464666621551675126422521387427765318566533257461277131235647421647265534821664372252762435747568486545616441774518456555246664378532267513277614658875215833836686424334558331462458576248243862511131153152617844788464284442363135647814271862126164171581687551822628736821182715818835664438222888742231211146234286654766374243136856646312132526853388534128137473744274874113757757717871758666657665261337523887445381846711245618385128447444377574668826141577516675371131428866314883514532848476812664726361161256413836186134385533611814116688436781168448877182837637685451464211777422315772574446875238242328416717815278346747233426341278128466836142172433844385888516565222414725831744238564223141417575336414166252242717326382387616345852468751675725344568667548741146341785828217682725683224267268561558642367114376512531816481356312843278646231482642613142177475671164637822157282822236412826175753272661543322521441651547326887773646761113755856832583425772331362118128151225815734243487677622723681386327675254367314763314455685632434787473466314757177124654833135272888343163224872781836325335844113546811727375262321523253644624845535374113385587646622552528123546761867267426757471315464166486641734622423275121621836431676456436765827815264215885347475726536264735532628218485835733822464182535774126513243612875346471885627883455676187837723426752422183478772128374776535766313551421464328231135518832215816728852685686616475535584713483744611566613171477847216657854838461174454738763657544875762232767443888147834366672148333426618244511114883185651535567576716737747728875774421264686245786565126767463816458233282823412625377865427618121533723611127886424827461816715564526486557844656744656346684312758418624225642333457178424844621636568687358147484888712216675414631311112826755842473511844155228356826777538728867885171255674378847526841523575445841652786324874716551528476672373815285734827368624446351638823714474536676578421552356335877235673213567786637551675174633156571586821488168824858123545456775545213342858716858731772387175335425726117565852811588788264783145333884451153714868547265314668787256313174435537553476563131571116714622732344216211767736855863343672551455573251216576363538761717634661825287828343831384876133585138731121717432735432586288555728768471536168818257317884525267645388822628315782628177546124555774663534132621771657312871116574627872452323177123541415566221388274188272275856817657314673473387663372466633438264512636164161416742658127352347464234711814824368134635528628255368628426767314714844585134645233782433176673754255564846816581468528537255437558173236734374827548517173316127633115465883872646564168188662241512757324363443761264274617587645532128446386343136451578337768328272285483226231863687222154685521388847851348183352661746816235254225622342342344511352527331456848511342242463771513364267223864584388523425664325548855453446713348756658385633744621852886344335276843443662156487253418748863141732746618775232826837568552466216441722768878246548386748155673437265848814528363867558534713612278778341787685673514457684861748634357314274447367721246331475147441861355488286674768418416117422215817444133387444372782268567477844377751186831135275118136762335661245852512325844221234477561787728161882134234626485438255332771356316526645666126526443643577621152378843576874336852883842373177223163181748368131888341475778361544824117512465261684713156881621213363283831553538661543132118216433412312124443421174374242122665665513715748257735858344525758826243584175686478662563634868467272112578745458183151373636273167877186667771788252785258747644537117362728785762551233173547667448372453148576412122888341217622546443443367117826125655733514428261164412362721482563246566875568275683428352417365556814363878414143372827734652273844876733473856872144534188774248333873832283577773816113157277617666151848366222213418375258136853565355253534442371324518418155177214786228354458451812527181367275334813835841765523774281276612234422672266824575721845834565487586765148441758182283673818424864521782333475155264217185816451828657587783118573563168566862631586422867377233441456428276346416627525318233237373581565868576747365516585728344253826464182763378538785446836423321134243476414434113554824255254237548556264317777711252373885317738681477515388761555371648746321285811352586141715411164128647466626621466172157367462544167772248572525233116748343513811487228263485825823266712652118124533226226775167852612473371257377568382838413885656464788475821646666436446486168626753767855838653815655355667536772258551143175846117613861438127383754855834575786533821551258158881453615754311863324145267168635672143325423478767773188863536211872821233471327765172635178666461658672128127515163843442874322444322531218155233227437233622766367227717773113424734657526613188567358117114313486832473138185143567544825146453155751233732413651264665766273485676658518448675788835278887713146618361372348488477556513163863614616334535545178825336533535863343666236442856757142612655317582566245571665327133868134232141887577235768117877734734726637737255836323878644526566128678557848243731728654713465766415337722732174756788778683346177226517478556643178833812836585173641345211761748348688587224478458473581647487123883447838167178887344375724326576782372258653522126222754883546885671716338682868382434423344148317455787654521516348757188163111516172757376436667324281716164724223315784414767611678765248582661117346757732658437871581511376344175521311145878443483221717228527166763777442876383211287618632146628666212365614685474352374255784661171777414561117248334441178455533327627775854664466711778731144462714682876328653444287647752855145212816648372523513466222177578761156777425564781747436435781646428157818223262353215517784455716773538242568411682717686641786564536227165562636527344174763481848321124371251812443721354313354875657173717755685644668286182456128584761326775145473468764628882826313115658851415422885134131772578578654311357561456138237276484348714232844651613165685418728718786816216343174372546754785375834522388623121125345582147263735884873452722531125674457372535621277421462524523652286684546125131642375516655881711248581868278211135645877546584517236871764474554175371231888326685283241554616265418233277775452162142116273767377387262658862234847115421513311715283455143266656237746486784462181113624816368852486143472738614615543844637533468643877731617735888381324244277142111874624466153857171164472353464228281316668834781716851755158241155773248242388378542626338713875234445136355241714845365826321583144646448621657252756857356316376727222771755647571265116614848677568347481624572588765236336262628551151128543388345555745532681355357131574871871246637341271213415277843132788813273876655473774312665136712763777142426865341332564777455382571845174741162162828166768188353146532876671756828725262162584815327575741886555246323586456513182528211881325736255474286446423564551651342531746355744448771244251322826235221554114228717477813532731424113757765357234572173333273324374636218635227536781631837226354326134514225545825885647441133264537187476641338434155518373516136545154327421838315832551477152672873122731433133226268224686434323622765574776778283671618358451621566634268754448316474161826154627471515251284132478846644311472381116523382412355741212612616712513821221122843534242312348888246548326438224544165383237286777432121751478843125515834611187817711886831885753424613144758521481186356442686837485766713764771578374524683472387561222285243317715757386332232874166883577814372563463753565738743512755226352414427383526181672182846558754662213548861646322481675117871846634175562316818154773173747733215678734121721385671677532472658736766278856853531585154852287167425618282886228845126513482856485532558425213754365686612567217431653284624181574728481356244544676516164248785277783825386352488255423837524117453412882337446852514553822177734764134854767131877813382488148433416818842754748548648758758653811351753137278211261625257233584571362642168676361432657476482526554485682331133146813426666828645781431561364648846347822321355542644616484535436752623442544687757888645717321882721762886455742682333411242817748523722127667517382648633488344212241443276186533467386246262252473283472686121453243867352444348565814648451283527575316221345762428753618574743381487261362748657613671288643168714337324265142512765884727722363782581527282343136672264513748678537581375211228757631287532268128545271752771465318125748655324847562527365828225727367741168464777118586785376855478233836738877654314651774271475377267727776312748864558147273321246535173314555247261275854885865385813833155238152278642131234763331371382715472688654437256511513332366554183853875837641461232462357621285477336535316121734846748616385881634177374143133277557488227477547623547613825313668574266674415867882653622213245781366634144648117848317288123657382665741862742245743652261116843265348433217183376648735842513778324833841621644818788153313552253213514565611287677674561883117128168484134748674217265824382761766423485466411782674873113258233534873536774731658256424418138353721743227311363854566667267211443174165883586872415762358775771784311556423217417872217773431125513337661886614262188834774575213115861538868385212264228674882812568283176626344126218274263421544253262711211223814578812824647163346236217328375484375446712274517287517386885534151261822748256645413848687821173611762542537883243414144732581862517463582472663573177136386841111524774178816264562145631135742584147125176681724628758762812857828637845365456528152847215182774426277725836684311461872556312454763522714441536674448254752186131187235341383637167671135812525321284727424776351737717485226454461523852411243775663262684885148251253484175453678564788888264186772227673234258715255211727783571613247426842838211382468358614441365177767527515644487474822153256664147516326881836732883715222755838686388844644386286147368222614364811465736333618323758467537632728732172362633534871574847471667227425528678888156715266522387768527735413361375623841682726314826368816841845417612737676426865212753244317745575338284785158365422483423364773185612142326248751516728112586455625786828214248816655265472727451636488825411181336748453632477241456357857624456112654187812673437161722384736517433712288356661263725152411227552787627521853161323524334426863728651178774277278141571182685666533312776365144855613773627275884882761413567663211285156845422511757564782657638454856652768186163775864218131575677128813812667523121537211238363174161367285643125138825637535518616718285658657332773453865125853381721352834757613117182561865855144648538874752633438355418614264315358254385265478311822473865186582164161683332738536774632317823731744873263126565321471221563823513857254222778161178786721723163168752373426184717674136217573585268353362141122855364152561425618512835238842686231385522252487358227687372452741761487321161862474323247143734722521858155157366384367168153514326327824576363617635248252462811312211327525473323546558713664614871823431875727172417178445523622768623771368144884668374733781847416654586267223688527661116261622357363175717233762515216873642846374358515878353263658827888141747743683382883216273145531245226161131365234245768241383427615412412215787813155661666114444674882778424312226451226787338316763611253648437273252741334761524455276122151745752815885173781246452158835878551621816474361254786518553656523644342648273367446764621683314348348214788175726264333467668768483464553257748235566568446183148445417473254766181627358858838464612458472724231263818562424467518341254146551544814462211326134555341444286732373478266314677114538271656218183342858386724224544267211721621622877863225543617624281273821682786244565688136714874862851881246527841416118658217312554653344885341456264218786224478714717884217744537818577366671332722367387278383253627222758872731627453847876753782511753627511362164138783575554772557788526548423823563736448527641228777113854823231428724743526586244645146244537245224318256676362646817227431252444734656124727677847331761545676231562271332186751381466137613126144868152367121755768262817326586171556778372334711624475823377146167416432524565314622771714575852782532354777817135874854878474631443674123428323812364468876146151135587545444432228532431842226326745287712344264186816556667181642122718884116475763187762258883185832732848556781211644866765674837227117868328131765858615268333744222875817577535736384772474625737685353216631274511885683761121581175883336314455421551814625762731186128621763861136786355532672356127551543541614883424844617541223167613153674173122266544484525773323525781867246154775735343877311327464452842256685774814888778772625732835122442538626175151617536116386568673535284763145215658331756414347662887432415822254256333861112837633246447516732356645643621463213527838458613815361732268716286555827434482482878533748686826638881718718855213766127646144774668418351852443426184535711874417117813115855214578638278876374672273253715886441164887773272621745756217616817114181875368132675357548165365776383856444454638822745643241435121825666773342214475526532671752851283761711881185556221344381272257415282346156518321811411234121736856741526273162762873813315858651182753437315488647684182386738837618123524658581461446665455314775743284361836834677342456646232466756278138688726357561835624752136321374223712486821811232676788427225647674781273853866135461383714345263323417683656158583382563664751278288565882213238157362335671488375337887627186813535325883138656257123574151751661313787762734235586852156188755555482378128517167451662141824565725128538558426367834117816351738112662226238426326484874615445326543762241153441688147264618346867844665741645771482267545271547338482842516751785523446125668217147817168444471148353122257775646416821821165231133841136515776576875846141531384287367188376532321474744717816332755234227477678334618865626815857471583317276715743745367635221837644674558716187332835387866868411475682547744573446875461253664727374188574847373541884866243384178457126111815761558845536552861576447155713386823813236478643616812423854851542718878224255172773121176472113858546438422838217166275578381656617412153713783586774348875642868771542522787227585181684367232118154773152543388558228652235432314482664827827863585127331461312456673242183451716127722535666718444427637633423121553425142488113455374657685864686814528337835846465516164337716467576525178564277414722752582117466785483326414745383164334111844333462461171222451634224234178428732678653765521641732325621332211437164447865646428517775777515617274375173223852523366845462848467886251143415257151715452243245132324128328812327415511431325875726285124675876374812821643842478717426742148774735586662653462152788241445188543613345212417221166681612867887855788425226648625872157844314288635646855686228423275871426433466141483637451852366864573333348821531483344331234737885375521267281741732865547137786122638326233376156244314274524833156187476622823617635228672174371656184455554884454676545728827678348772846185282555381437338783737666867376586428847652485132422247812688155456427374488683481625263142624258581475534561575617885285157478118727367481117665224313818324834766361675655288711332388281378666161637368558418238127847163616163143575282142632543133411666344318533243854726832341352824635755667558524513383183237136258632865431443513748628117716523246343873686544874555456733552765266222451721278334865325262355872381416148136165137631346173646563671875485783365217231817863326354343463848872482122173541768281682817813481611578644187645222377447345242322866541816766388274588433524645517268865248545464784433355726877764452176837531578838864416112558182788158868834686571631417253223817524467131481757777527411383678437544847157731378117525554423433346447223686322883344865377336527358141176725662816188687126468262762871328575646145665474271617472335424342873546722125414231574624826316384528867138666158124252513744561688685168633384363677748731844124848245625615747166856481282283356232461111272187441158768885726511454434213378223288245712371811555185276421313328318576365333487656775473573572218723421554768532826231458474652533875137124644833245357812377442488168536811451665812458686436376743313163615743141746612425718581531887865458428114462573764671748518856418426136461628585632672642334854583215527676643816145375225571636123274123773231415631712431183662175556481474272451582734711773857421738834153214854144185661155564516268562753345318477851836248511827872133134522168551628844861658214876876887115656438428573327237383171676286633463172631822322741128647464733241117367831237113264217554634825686421883573478616774316448817266725865833777727253574237778385643211468357115521878368853471542832534566146587352858741777748812735387857524128814785748384271433628424333714485541134138257257238147377237534787467571562177861745348157578857472241866162555611714426335737345535522888652378861412182264115227766635586485487137714837184525468132357817216825415515315433161641535483211568128445563675158638783112838146554457622576753733462647546422663778356572367317555378238841727156688423541147783382872745824486155667888683477324263356514654325573342221258656268415736767361738761852634218826824164351247231613654837854813365637268873663638615265626124416541337323388538486671743251582345348746766475482138773184151872273636468114311474352362433437515875222788321358755577432631552758337226245742674743642422547328823611172556435725646588613512183431287454666245426262713651861878888712268553662155236268233826873823237153181713135748332234827861351623123663172223256445437322816148317244248332324537236135233536537843164154885345667432624174616287461566855256631534613762347534441587851263812655782177868637232357653465436517277852448427217184735178628841754321462163584883466641677373324456168236252557552735854477671782255245561685447686853887733477484878432282423343137834766774571647351477525858223622165318447513137243565266645677771122635576486867285412243611264266435144488673562128784735542834374748354738246117857441582654778261655245225736388738844671267752836247631318527487173527514188247763385873814353228171738737418285425671862163155853613273184113322581544727224668615134311662681515366427336664342814141177824875577221658375626717828123475568126515567516744485783752118366734284717235518818584741658542234351517381841532157582464327427548215134688412626176388622223847537287664515447753272238342413265675328661371655661743457684572228442374818844217258284531177266761658755625683227184253267654317164515763413624214386578444445327667752253582627746262213553744567151346363414175483578412776314725741244154558754712753611331367828614128171136414651626618434885856337812114652284855585348644816548311216348537882121612233624474865652183846715823643836318313766843242514771843324616814835223873864224268364252583388773861238235614686638625864768647641431328441526258236424412443866616637643351176558367774537775245475846773876318233661138577187315481764667488177345455468764664874652185832418341542158113545643115875465275726877758621534215272668863482664137713462534612238116151468333315146188248361453468662677612638214813574412257164636862712661587847885313227832812687748512321172462162172534622757382728147725862748643785837161515457128712364217668114616174732446245633725845728371711584634468254423675366824753411438512145831178426651318645883115565667837833864236836817217465182355757521765355557357135578157251432281836133375171674717314118748825127487626281828115816826581553152566438625777374565333888644626543343725453257312715764645274537823812444435323581746816185544113184715825556563546314623234344611781882414756777467536728841361846616556518373288658311882885651427144411838225756476143237714443327357127846282736211233661722114516117768477337827887165643821361832724432362623322185358322445218846486373122141828422343244324725532331332534523234434445744833555645337257326511523654247637853284786323111761583754348278572561815637845187756613234612666424221644235612476254166247471178287862475846751266541362668447436321458621816181751777825461873314326885176386338473765188676814113517163482782611684883726224384512324531471316475762744432557165764287335136761127758862733331863452852265513672436874236256821326513785343361178477551873664385113842543775554417858856281575776242856842453511356358644383847358525815652117214485831166161563425576258836714823213228783848347516727777237538546735424775468326515154566876537372538617224613131546868664127726865884375456751821266713812681856223521263447415281841137857821347618725167575712765538424876822442481613122218352815424813361115825842824731362523765323228821227373274224351428486575766738546172385417713521226472838672283581785333678617728564466315184444181374358338677614247544658754861188582122856436812333417473576582211318165627465317517853122646757858856417844241552254453336168861736136587812664571183333541133265748185555438773553873216725238764453818217286252256433624343287588588471856663554784153253267587554262367682526556138854337286158465368284355622175876176883355268415372477155851135433787124512527623861346588612222181868436378651127622162888726873671483177628721553465225714462731446421373262187844526113428658411752741246143733875253514246287261122135438778263758628231728313814274634613235562548228262758756265344765654327137111883778354147267625777871681282751245671241837756145783538557641424887628763328878535588414847881156527512431837842456167428827673332752682681442387664526164718713677746612736623488516824162822771232588742514721442113516667816638855546754846841757677412212542187642484775131776554185272132342776672238738776418514183212413382556748438316726374774662878815137723355253885238666211184152565416317834771118843333333415653261466321414422115317617657221284742544552683751481827673211881162283247314251885547475383457255164455253667334888386833868652855181585421858324744516581235327735544785587475861381655365557446862357516155628447273716368671467363231415674535443471674653661154476425773246646675751375557264578881565756221485672666833725871478586742151266744518312241417442466722533621484522417388335641484232384636333681582877872445282215412574217243368267825766142248441514632214231223625857251444177118278465488272518151576571575453177585241755625272346664738145413333456518162656586864413376534827261621584438185672778177746388672744771223777423386812645842871652738727162524811587733133372853736765273112588628417461465337517855578551421343858663528718561365781415553557441176434115832624211257478734555233833413863735853844482463887416411621717181543446855288477875336317175751575826322511425374513281515251867436255175234432477754722113181511233781124523361716355255462222211481257611816687184628753872263877814732583268678641333687464463324667526841778448478417352614186144885386445878784645237117477282247767227666353783376177533112836761287665886346664348768148847282372254341144717818883467358875213384485281541137676834435324532527836545311461245617646348317557321844262375868488261855582126715716184227612222744711326234515263763742318581372732432754215737164128226145261413355481522662547146538213731537731441588765836486251761121771554667324262421121715478558583625642272664813174632878832551788364273325416672254352825667426448835766414773854451547772333864527711412875847484125554683846478758716665821755834571645611417373861643815887281517568241771375363314385752371312735755411237752253273435551371234665825135712676812724478474287565233435175741517388684312722244336676254435256176123553685526528377668173615423622847876235757783251235156564536786384164258684526538725462531276513171415435584224185313453232883251216416665144553151152475361556333671413127431425282388733557257125266134745556165385844788374183668878238674351446532127645724257755665633125731284162713475581363518138147682687681861875432235485168571416275652718513723836443648314425741162223768241511745276714225486484675567248368144338811482181346362885418316877121816843212813348584142643842643441242422623647567667713283147172163225156127734387647634847716673582263574464551385758358186754724812258352724513188621321862441486373225156114483824653658551518337325477285284553627878685623343641878665374416337285752484375258344276375473225845277487723447868457253312321821218157418741343345751651588547557438841824514818141223863786248152656614733223787516888748561246127658737126186527214284617638331762325216813524832126577147847822224341687851123222548441832681873826186757521847663626461548687656132367228771347566214734561336685833615348174837225668622722172645812116624164453176558716122276434514863145542541213674452661171446831741465371167312456574388883653344457673458251482727253713247273284128354841645824616886862775661243235638383555173672448224381424687337753278476652555544574322457851643631548172236457815117851642773752875873664178746446712543771163851514577875568271867722151736133741287653316835872658562545227282277644142734888134677847131716681263346475572555673434344875552344565324547688257261385384715646164662626475467854151275233417122447611135233125281268488688266381228227442351738526152837545264856545371273256777274143783476573813412528412188514665852861685875336154685762487555622825874542742153288763573418676468834448233185824557723131687442814348838887581613285264231641832162665252177718128235325388473546773885711646528238461855811824652657317878611224726521171277644516317715736555517855864872716824524464624366436828525878736425777885157551364653514768443255611285462723811366583666622883268745472364551357864842678447422115524412436568136577655355187285724864217561443782533655862757811413724346142137242276761826714444683786287181772865343424652116243522847646482377873282254444635177867617454572446426248648672388673211642166171673414868824143676617448652358487788283641152181431761635866576352847872653737761547576231557881145881666148833654123713757343434524546852712767275135477813845364437221161345638348576334324522554173275865117132856358677241366461385743453353525851877687682118134628534536558141138565115215175524277531383866671383814132611832445265162358183623114123251843684371846748647876257356647638615118784538488887578115341771711822866421836523452858558243724573371683775245441343767442781348676652681822433124386241121612568814261732661843363843622383546417572664536571527468741641882312157884314733881344885158625855737587684667126756355727481152682511878143824266887241156152877118753467626743417328134616585315382614166426637261638218758886483353636168712535265275737724234435485163644563188264753285315327854562583848725433774281382531186158868233725438323783883753752234122544833265664141818882244456528671753166313614665351541883542271352635855182428622465525555661412535786383211143285727863216347566646443351435651383765185476283537868815817571668545232475162435827725175833856522784532217447516454862522414232111161351782328855158361172561662477478225456413625513627544562625234753467275443114843783821152635626854462576844824353542326546627468775631825326717733554228746284232415484585833716133241185674754614221368868816578784858233568131222345887775543482454166481163172865232876537447354726136243246311573471211121545524236542453258327353443144258417732253318322328242455466543254184328628357171152366521274166576577511213121683828232355468676312228838217846234227813225171421682252248833223684485366572533358174358328541516155358627767761674217788624372843267281674151787375155674622775718628356668457742326575814752132882533751682273474738188435235185844331865244582532437142355762165485152646753625535348565653556262346521856387546141184336358836261828172311732515372612446141326415874772554661887138841641363871244532444471566471162115248417182542755783526361144255635645154815156386355183186578642376588646852557153522587845776672431355516748514533682243432168218812163516433576722116446213731787514722262585744121624145335464322464377183646645676781138546667575878486321685261841643666311755823822254838256327378325543387771243838138154373121648868217173667632532286335584354222232686161443662472164331624715634554352313238474652771823384463825422358578223557436437424542531172873436356672525835744267172185844254888534442142276563331246787724271713247127235883783566842783767857738342264421465623874224212163423453265674321878377486724671588514826454886651657184775211838788872687754428275855481527671336821741525634342714144662486238526687626858371366631614814286254421358825541243866844115432713352846844158278466832343573354656752112577265278763166172314368121237344751467822284582383686387166862857851453243687727754473886644818364416381558417881317384835475122228758572133577567487467666274156517256368233171877481256542146667281827446722576126118723824352271278671163281787215146385432516381368143353118828174774123844664467162164461838817846857848466578875788783882842616118513416235634818877743837768576133474766336486382765135513532742248232833633827781171632151784825537716631623168266746817187255728365648667564257447115574186547234784636184266811477845112662475464517323486287846686716871777332452278238815385635813361345275121818888448678242348566377712361362826762485415341874512177212317111773533631332128146244662863463427467447541451451145278445473482217658461326327388517527626653744425133254473872848451333515858857461745871378233168263128272267574637833126831844721688326511337382751628412213542526258815888484376358781676832651475163538147363857744522762646681854776381783258513154712864313455714241828311251553613866383315545835124645737581722277424712866538787833113752711128536677772181661263261442233312224878327286234357231262482632411617516323146237652665874224165232682121484676252185544135113325541448458534241155616671381278483534441153544355476251255874724734345151875417853378351555883176172573372873775168665427887382511664618853816474411158417247467241376268251814325186134757661172778155172768717176371663285351418425883731426274518372511714854785351211342536687623731511813347541361452322881427382458228421864111716844281832662574552263266674754127587577632548515722715463744326766682131355225454244772663261847264177223742447437713646563636244553364325426868626642385537848162365417658813541314231444385882288418742437682478867122112517477177662812471625263844225142786315772638766585228474582666525342585758683158366875182267736131385832461446361634234152712425214766573624117671764366224333524857325356624488572668186586547814645877211656574617373612453254387572461432146287875855257573567133838848224741217411676411457367252825747877865422571781833438223814274873446888114741434743724125231685648384865845186171122481614638211718353457123637385545562612632678315527828358777318536487536554472513315316345673685832764221625772227355648274254724181212744128211113564253664726283363254255243858776317233624118386323615878272165453876224324841662538637612574181175666618713836757636456322682481827554442434865648355673822156728271684414581252156222578352643351386736256867244563377274454776515855542845738775711587614152712167633424856841277346217578351253675534888381178711286515511233581721278725428156175443854573788572358887148112728158422461731684528578381882178642643586548317666371378368144117848288823541174712886584517565158145816867575822767537574112514118561826671843138843467767684182625326582675854528753318668245166568324458811163624845828488813368852483854162388584642587258452447254556563618627783527431145246663177744672623487421853864288852738611754825831742737782276178223781465824523357536176285768452616751843851376716214771133665445271841346142382112156628176537626412413716133813617441355167516247184344614814862425157631172763237533864131427358562381114887262134887181113815458388851455863142331117227168672211113727812875115272683466134225723264561628831124373316868487641823846178667346735752458164835536887265638563313578732447832451641433616558551728367413353187237841727543185247671532426433723677456271256732215328137767756181883316483165883574177835316175742163718175442685114556654432615822858763116273653716573582733121866454752235416484118137871277235761823635843687765638426134627262824383746275653322224833165582671678134717473314526576843288134112624155761711338686852167831347215372538525315361635538383183514143383824252685637877867746286617514556562747371775632423613138781323578421847673245156136331376874833844535151345816325648444712382245215477423574365546551531726112327533334688176246752522361831668278522642516731575434351324186161538753861558267477711542541814166818856577512141481422642433815356323561487667614455588718785182423346483728686218457117685264113147654646675352787665232628721734366746414581776321813245137776724587284351315647614638212675867473213245346467348328288134637465443764357615585236154636288812546478872328478168462744251122332671365417425132645736843122225473276684516715661221812824213657665415855232755776547616636152785142287726583247788361818515452655775336682566445148188155362414578772116361672275755657354252526484385687655841235657151265434148548615241712724256853871238531554172516353414526273547261181742256173378685144432653465144728841225548218671134888216721853524545786777646728715782141745787827217742676334825155366821581172788271448632281753158756816614581427158883727514775461122758814812724624565126181646745582472568742371616325525688161688517664346571552843415642554334874626752265282473484655781821324456117822511658585652211318386743113512753584254676784584421261142468315561573651317356485477582434335542511563663117744383722855184657877635867277628257436683718231688257722385137158568234564464243155616433116817524446851176482474114354354822461772267342187785265382484742678363471724128758176623427483632235564352338365174312323251488372835827252288453484322337143871761133854234666126154384688154717522426888133784111585165642187741587384786246653363845218878738788374654345661117862578564126152578153256623481776681644626473542223447276223281761512168674618437678256874251847684467436863516172814562677647214521121373633317287511465741557678352471358658465836863554576412146244771745483153656617162462536251644488845841875543828233476668648245711862155276465157186654385375726523478113421835782234353457111657166633165154344537551885385167744514811176526631582242747141431582847156325175611822666132275331185886335584161238462674758158137327626263371358856731376778652558822217532234731561265541475237286177582425814527344718727146833581151288476518331726485215557827628428323164614655112582254842472323824877848472883142854325553661522621512248417378365654271214263434282313813441444618284824332542556387545871631181616184587318465282525624446423274851368861723183225773834336541633648686374571567123113545861631881831254373436818386551713765563635426755755446445156634172315574725262443867317564217673564638267684538785322265353786244524287837376845237825252231822841151854658348823425816621418463478264215611658511267511327255561477554131716653448386177711456251816176133488711415114554565872648146621155633643341465488147812713272747427482783486645628116347362526837764528865315736444248872784483831152625245737248553227184111413415337753112726443761331641676687332124124363877851844177643478872651757275143834835884465673547423484378483346788485787866371637644167113444674588138533327881451536334344718735518267481255867621124427585348768376722713151827135247164258215748127867341838637852725212627863761654157647677178827518477334276818874755278184156727722211288878774825444111525814342128247233776778478851527764715127842422751544188645664141531283853111886512817568716271831146813873167438686151181627467233784177145888525231281867475385374453364833574114723571437667213317342684143558817356861483871222645825126347218885352312658642722864263784671241663568735451212465472637656776421777726123138745371523275764273351617411364324523644658312321625383788733824446361436336536557883743635173487674424726575712356641821275224852111183427117211865666654263265136213244122432588153488775718478718231682442617411758316854752448357187337278826852577844181841846445745663532283152523523526366162353476715685886728277235438246137176637386453215623213646666335644466752214284634544528742445126233418335744374617156642852234446474823564652132484237873282215541538756323172237616115875265775548535723722544172742346553112352375433715536634727658315362214382544772414167248611517735842442382446557634445173713643223157244178712534645253418764145147838133674737362774631364744158417327676666258147166211245656257186522888374345153438554675412876348545163287658618251638841218748483166172457875816846841657512247521728154528611415168731652563874163845156137735112585631454453428771386156416117336586212646885544668142378886678185726187444665183583482356132812571856481557237154488334687854773877584326638144151178548884463366273214776477853566531481534531345236521855322367127736586841642354563667768883485845384185768552628843438188345538264344776518361325234134664787312782246516418287421884827486837123817565775484215382783213886365655568623258378528665175345667743156837824752721453857253421261263433235326215211265186385872158413685724244665473558385883168816846228513875221146873567574545285524465334543627175888743364454115518142212133517686647135576547758661541651617274727681715565142875641473451365626176733878582741371827738823154457112116155716484583345387613645526333188278585155356855476447561888288774443125351825523754622662687273527538161727871163581337487872314664246378777771711831748214484566171478434718558347373864323346112756468746662383282178266212473554782743128315371155842358256128568343652358476588253155572873716442464655214831522877435531522252118435642215753112542764872714874874155342526584355483882237333682786382518858181641516371211248335631752414421171781235256237756831162828321184174787478163555324832278172772885475821587441173442351337565362868267373237233246377416734421577212818322712633437835527156775685455474362441444286624231875414656885427538433758132552318451835221738557282467146358488435174313355871681513824641285285461787683357186657755271816483636673158474854536117576363673516274588414588617374113416662683321336843817548374754784537387685438134821775468724881123843323853722722565273124211378561562553712151727435317435533176214865326587371121357681328337828113544863711778414271868887458331652645172138166182748635277272816277646728483287442162686271167372216488317334177352281717515311521866767287553178267818466666625477222641565831724515127484654882773154611813642718371778352652416762818866841227123781776848756218411186657745316573662833578288786883368113633457624424737627314884226674644558476537117841331635724152223575231754652312315475624138842866475562516334265768132412353558764422548843365843523358585426183511355348575846254281146375552812147242766856643752733536783878151474621126441423516536815251766821353131774526844253853135722411215127253321865851323325717624714473858786851156247476634483878476643328624675361724154281187883346335283652858636713223287684627352546723668638171888877643773667538377354374252851545176464612254158774878464556372578276526438512451454151223821175653874334371476117214332524377744743863456465745566586727846787752245157765441666873565436763554438644537232885381523735113134447128277162857456125458138838144846462367551355663815777446451815552384711413548846182745572362884638761827777438247382511644584863851617155885715314565315765737221771386455114541154384567151838166763115325438545832178451228184461742378523533783117524333843375831727676581848316737357342546248777342112673661154755687452142631462333216434431526242857167817121244151764727866272433741616517383665712358643437241525365873427751837234715118738872264368321253853735212773455351236361313175376528746884781422115438558436852571251528618317514757661223675711786844464112437811436155133668728168276387486373386611228253284617686335775471778245236753132588468662316454282723416278152877872557457611281867325631516414263128731312371876575145256787174854536636735431777457864321175271541814356416451855628257256445518251682842354441622387121624832454273373227623371511877621613555834763281653687715763335363335828365382156333761347577765764353758457561861846837455248376718184886528325316868662852571231186256517536234421155351418587367874241181364775587121131676463867888155283241486317376142658655542124611524664451785285432363527335666728752887647263663518757357824266123818761253281546233837476518722777355477466122711111418758747535452865418122782568378253116556182758115174834676324886266523283148828373665611448537325664888753651358276754757676267442786473326412431622167543251714843657171632532213478838222288381335111744584671537571212187173666873827174442412338116825378626112313727228168258736474628682353281467858753445327563135151355265777644625651252625135511683816482835366833525777186523343331146241446215257615172448744173247837568378562388517457313677652425863757424514151883683631416328823768216536633488665638748267628513533753573532414667627315147114124315324566783256625223624281688686327675124116448151188428547227721675254365125682412421332753532311483738887354412348133224247365874223723648758851763782365713316738221252184651317483571261117657648451361713544843317885686537383817632468681285275174521864661621471627356472851265686441773844688637124457654466815256214554621658132566113441216428618162281235238353153367857686527281421443653377574872446762511371433136478317262326261454364413512722228756573472785431864114825263155131785783172582274545643731245357214681654463657273327387373575486432454817243127848475271538235464621611481453354887525245757355623351118244536536444658334261388615712385525277773858888812617667745652813527466363752747877442386422612151456288145226574125321533483565322587512673347426644416643666385245812171172883256684137464781312762666671448752287562815474172238113461482264143718666222388223781137746828324312847566462188167177457721723851625247584654661264826718547784562186522177124737886644387147282367128784556646516366656266656581358847461742482685432727474748542542148223368214653785311681354165368257255662783263614648632747372867748125282568835358233173722124418416523648338735725623615863881531358224724616347776753416415465551178221581332771165466114657261747768535325483265618171212885871434176367724631367745766636882631187622218248366757414743182861866418625548243524321354631427524334856226111157476573616755274616763172652454388126153318826154637645571472722371643173832337371242365314352275241545517682236247174571815771315426844414336827673746884532368572232373663161818758245558476434327552588712553447837584418648142584653383558761363228228782765822856343585242864845744424651728122446666376144535775234651413114744272476151511677366788438616772886114425535211816343286234778565745887412128778221531821357275668357615777736424467226242131556258636375624425568452173842867278248743124226778675558744811435311854232644883562226657247776477471483337726741567813624211848356363315754238272532614171262166368561642254637882757736721676411136611773326212854737476254755464132721128481682144553267354786861258761618345528644862483448216728363441144286761224861872762242677883856143326185468256813274358744111421452727334246546725826782368166122852784378681478531326258136645612776374844557522341562565315765811647738755316437184347444122272253682677217527424425865337556447327546364775334346431164575281627573765824414544247824368557221144882271682652246534132546465145515421581633724166536487685315535177234853214572142341227327567276665132428847747843635436874718563745586542373274526768564525268413867423252246587732474815428838336238151864381763827314526411418678384357476152113541162428135114633735643158228471277826838488423412866362743757565864533238272132334857713747585753782115184716516167817753668855834212672257527222673557782776166474352436855444517454813187485111433343137342688545635612441556668811271664541451681352156128655413136163224768835121333885536167141623135427177571268568673386251738711442825634722445314318885648635631587262321155653674668811448121738326447258674823876837572551531562763284233334528778244468128143826813325344466812732237746427678161318781343634476661242888437144661621324544682838651736761241627775564188455358882861624347368723161461173675264437251581487365363478284422645248855672421727422656345687557248745361418282538665181635177562412615656633483438645367873386246117671124363314747174738767152753337848143431724278632525481376371171672674633742674843452286824587633717831212346487714128327767212257842668563223163265114847335551345273136457434747124165418131135643553867616752358736176876588621145888731525327211567822571458221621354373514482457846285811523551386484352752563167744331158875122427844786853358611731816884213844785765436738418448538728318218378753116671586212222111811521225712217443263883615873833652463114221842857216244382555831174474453226128716231331486646354458862853352313882135661114636778635527721642182861147144374862712151812173853648721332758323281113164863334215747771633324611312674262161581242536358677627444278685568584378537264788241872161846283728346266644181514568446137653615646328181168126243656156438711861653237335214475421786538576278345257187274338732427261778466186528174418517472333116774482686425824122872485525485274331181787856168233862281641355447154711516313773241866111643357763244211516572756521232363385162156143213557711253353248275641852266253215175767213274212436488626837338784172567583118313652678848472332416264633531432463387883787687547135454527537434753318568137768362424835677437564882727327265782818412646281143183345274161246817517478287858365268473751531831782346232527222647343334357847187827617531847167853882477778657156876485186711366552458244118522278528127465482644888561542518324345844381588461726361484252281384745872811547328823623145831158111685845118436487451732834185615771335532445772686371461548126361364823226482532855668624333828853121413718132734482434553415477376476634536426825135286547743676385627146785477656773586177343132284167444558885668888213134836754231632674673746715336385688162442571758224265515748148624332243311242744226677828534183532456653467618632465357221636856287534846617346483176417236888575435478721354181167665285574418528136178624271883321841454552121824633684778767266851563177881183432682636321287754526535371471338457387835815656678437566375114856756246747371157552475623331436172483274562544465314873863112328535541814267274722816864262111633387185463856148816513881712762261645378235846436173148735678786766155868538268474458447113672135736331843851465821731382556468548843136478136525367464281786537422432238738287374787316353675484236328853868414883371673841256548871846811547834833882853664488383254455278168232487383265665262346668386851774181728742168555446224713485243353311841247671824613171886522743648734525173172222286275544675628661732431414633542231481835417435125325336485711838677742187812228347842556237787663217423763552372776882311756381627228413437656731281877661418441253768622447786525514177185638622655637748377838256352731381338114663124842415481783863187672552625187487335845571577743627574723133747677337456522866315268322525785321211856375463163556577731885284315867685248125142718358324543838583852443121625762387885146146166358263174243681881458651352835231215223514648684311862687857471282618846161881431186353745554661447187614754464248564755461434247844421753811821867438536376787353682744234733886488858386663485431225615755124453427844626633876115532717378321632226254887375152375552351888857241452827456838756822244783484267782654588858745536427467673266655781846542485115324167536723584743834345585766487514434675635275275661231416156464823351521117323841833664335573641836685765516887882355347866741614873451127466862154587142716563551863641487774161186812742484426224458455841116112467543348772511143557713728121866772722711637487654585473452257833625563615444366386431643837472711866733147235454664715187515443411784255567722284345725262426737813888256134724344775868227561332687323873154254588786775548373423741717121236356343677812836844735715674413288438354251811315644232466423783315842824175712376468263721751151622528587278373828513452537244375184153862768126674671743564652762376341126588133482473415837225821344142662371226134372575354825555856784522541344443666718751112667143252122123567484772636634586457463565657161478564636161435732545888234637646373653426138628564138123273157675626535248761724714766182156782851373784671431526663348144473575213558536341357634127833162876214131878624321278542134146215425835523582573387223336446236378537151415634664555458758233766436842857437854875522213226164367852727666428513235812371683231883664236447165358528747724283752635215421326857528261628187474323741452181453362277341821755747117143328351376565466157238314674585576178124762875271161657236353417213272635433127722887761256113581715648257258637783561343553523661331825687657416751452627175827621618877641252734578657232384252883776322134876342824384533647714252774656145446684234586527118421665612173626856446852314774323457124233562763216768787765814348727232254831327665351134381635364256178468252188321881421588736223526461356435124124656662642133472227828562734215267842776875833212554527351647864328556722321487624635267817665213625417216313235518723614576657636336753481714164553571584361213486173182148445567535585128116146724773687518736578785116174357816174111457411765325832385632122675785838448223625717687361468227763156867576717385755248856764311523818654815411153377278455756515862514885243327546854816252518166226673753174518262352567475472668884848324764382273146484888235723226217545642466761416562441621842328744127262514645867713875845744327636228368612857615681842485524154665368818652283667358465626188552747635411321556887832118477334515148678717433232675783741641712373817578338327543788671715853741132856556174848374258318562746426377814222363782374274281862374528468786634811138224533686825174871466285683666375445785246452716828238767245531162621285536314865886763386556631882662835323628377535861283825162848637356588184756141765636834278657271811571535336861543313622357743731857521718513634125854278854824818437128166888466863377841142418142743316813551213247842543743343587737275547237548318154315336575135521274583424341323423843267477881814154162465214415466474337787754856824261446887541258388237573165767782546335646433467341718262458217457147372632544348125513744762276677575448283687316567423556744118736137157186423266827773426534474286688467725283482335246511627116763375156636672462186723481881244272654186752618775226162222846421582811354571238341624815216414234382433757831462544534712152535655514756321466587656617518762117265622344176415237517335813261656824628674422615553855553431556754383867418271713687821358165327456423221245882237628352355857318842863547113375147574615367657658722266643132313266214482267141637712546716646828638275863743412278414685858321371815512445745664571118512248847834252312446614767745553674337187313418544322387778335668682462288518233522722386285633687545332258262581672567257676646467616533246856181347728557328645175715225721275271558524323246452142253612428117663571118484748814226254313863346514373382673343332144231487423151284474347533565745855165717723437845376811256417183581741537467333766224241546313632323133575468422734254768581734635137382515546771812378315355337482886256627153748174575661318128718582851435626572138263311812783422364317848364566252552547686635722351644371684121235881738288641563517132762268853557331745378143463733118713484628248781438218446631682347574126687676686616352881856751614673458276556277818615467153774858754643414773378816454325658752637712627266182183744733318371421767631526333417443425623316325412275886236546476338566587338736854541864587733532187744336211862176248287647651866326741137182858644338281866621357138642227324844366843818277373153623812438421823367638353142123472443575534582827451173186218217447666736252121735534831516287538485148461567627871838856666125832515242765383177771443265444646867572434564873357182375881432727533376714367311116812256218447382336816113531647187221836542331553221532572512112483574334466588572334288326527366432452715234252475511182741277526463621233625554671751635621278722251763715357622666486567543232116181131363182837664386752644745221221846223323646646437518153242323327681672523387542288162175277575112141818387238147544648824372872753753358232145565636338636782666817748721884241761418433672547715351332381412155183615874734322846846743541356836786151511632733224585828154314881212823886738727774345311447787775677173653685174427148778638176655158482752451467868523476181726837866228121737632553861266317612465753663446865127174787437785643284231472665337735275825415166845437273125625585773134371744215347233234315822458633756512822553153366463852784636578341218125126328655522487727275626686585786487453122751513171657837354788218842111253773172717616287567277247325882378654545872382128534825416113736463473162217475885486847318258855713716884447547244815435827411851837384435255171441878247687658523158288675343857653353172524545517423471875362634855361223636876638634622845774741433252471738517162213164543136647653567642267172758766322372652484441275187813257245443342424331645433533488662246381635533663616718768677345531868147252275155713471357788322318868752671353533842844421352253751415678415635825778227324116457118333362444613742731633641875745368663423848334177241462465611347774282186178256166771874244245821118325881516873337475486521773778417686626412484733343684742788646416254552682145145312486565216854238375521685785436362887277531623552718567657356878148523173145461227165546348137112531537818413284162523856835386225375765673882814236188672387511237612845215112572871755644265275613517187655573667621854162685833271688532671614573347455284777263243755638411434668412881175552746282362862812475132782861423314874776863734132282476663375523117152658147221441278723251472348655836417228121135676863871712477636476365867847113751624474628457716588643416814756537833112817787214677188376362624577484552311727255625221754123132571635736524386638241883182465228878233581681353774544848156275241651171248745781251315376562745527625316351538252248436768844166835262766571282376886563526634384417651418435338528232554824818451732773682871847462674665766768442636662766521454622158242528464314562424175122241316831248183174412544657238114145484418175483544465436328281312542658636236286288748432256757667448462742152647683616528361637178675558762816442673181583656231615267825123424682562671623333168683544652664111864682454654651586512847711372467744188132454574331185573621737268644353487826821136675846686224177168428877671358124275855336612225237735381886855478632255586377852681835624376584554671386834421258223472878335672255845517641622313342411131568452845465216844675111811674611646736171362526181566557323383424667232255126623748562114848847384117881487266211134384384876775842741471363572654273278374862263316125118166212526512218213385673174272288411337655776784683331288324581417541123566213578563588222647688413212267875313356223214878624235212438724312317686866152683172313545184482582857654157227283324365774871218115746343162542744767355411587188368163845266411476378538577154577575446768471435253623646243611255611174682334721787732426754465616462736661218885745687131476123451214771562437662346611624485747525873686418873116474556856216555223473784378656814426728415757478484463412437135267555455618543252585542744357441213728158611835254325451853383471732313874863245473588572427536511417685758273327676612421263584234811476365484767285346431781763861178422822867785185738575233288257716555753387417147182274188175522877223458888764238356463447661854666677644622645641174828775466811575211638718334282551145378141264672445382382617734517233113278327458877716873733283613573881872436882363631821885236181341114847316438713561651334548544355646246481461436557642616432753184617326121668125756186435227526654555854631688774451783471218474481656125275231376353652442376735861273766141667361333476375855548236278844822347847273871265387226584578831632285121168153377665485514414244363544647213287832542783718324626861114772712662885662152643612367435574761516465843214867835262672231267285542215125228877582458668456873446527685814462381533266173361661138767155412616466744457485422222264666227855358114528155514486313671457723155866387384422841562415217856858556242677186271384211432824526547723687286871676257211158226731673122747136215772517273282772518872725335612281811415424567328376228448618888846656284621548243835466334338772256766844858571533741571568237443186371743361331524338883775326582236867364184225345244488621341238783638114276727338457326121633372541127546877777328127476451375511328248747276624683531333867488287617643137415561788573745585264511462344774337127833816233626776474688164557165437675488337172631755663285587221185382832688867654876285622533318437627457125841845655886226247156875432243687482824124483724228874437658587384256534644822342818428844718345657171251213414511212213243774226875651777787225826733224517825571146732262181342532743888657375156785122727843715856243777666877557131372134421512383571117415357157155865166134838257358688281686268366861241543267851527126256563466751742863886482511322684822837611454622511255163261136538387758452583444235743638788527246178585751785777328387747768671457814556583661363752643581428531122443688136151116877233375787888614678648322823322642865455812578553227221423411274447581241818532744333431372416511468441516268351454687782612368313846865272273337354111231166657848313787516515137414187211866337864214662387582317626243386881483874847147884782533844371168175368462845612641854858873851557752765555785856622767363524341723155222451153381567881853444136818576733484433576345446342742142561343253683647373573826758151727528544574715618567855342217286818768834325545518355675716372843531488726872587584652848264437477186175478518328655546268578477767532766736335362533715754768355667845374624321161322887141835288651788321443556557454734726184156142543685511833368742711311613874635161382871324355245776514787767445464368412787472856316483271171334757657414243117718145433141271623458888271457218728453354147276187687313315785374878322383771588355772672337566852553453646785787833216118723225341376257734473873264761423632365153365255564557732877538868683257285372814856411557822664514826616344182576234748647412833132667188267376565851682117352364487386228614362563288318232467564351642318715568887588428635178575658586137682681248157871158877218725538817234248721617674357638312725623213627575216642266618536675747137486711432615778245788133624187816277327154343334561171442857617186535312742734772786717681552432671327152311475335825652714517376174786677732455526877738246172685734518343575216562341865263417882148143117288712146188223238827718671152866456327584526738787374723834772484726672111448188574165834413227516832212256755724277441876268635427588722287745731664338125578226676624742275434467481462631247875244687773126223168766638651517738858413774186458116666312328718755385541656362868615335257714671316431513215118838232424314377165628441357837787317258241275183335868612452881637418134228684637221787113788728561368342376456745881462441433355478121825536822461526652382384483112188323111717858371275374424731586287184172836432556255316446453172577583686148852646263816353237176843277588584367172342744757563836755662582624283434367444267152414662881738357367754387772673733886183746667582446763321278437627184367842467612154455461118847356788351167734881135647655311112787473478367637437563415843654818644588276625555128821274451516532886872344451657651678781547262136485628235767634467827868755537366715428865735878461234171533156716345713156341274756332344256836627818225445221513336432556315647435116356575586836248362652722635243537873443782423128744133863453766355265145384253744826221425718284672376572617573864355367525441577376682832376648772177586637755288558722846371325433872622487573548226872611488812286437333182422884687534264131846558878355157327443216681783484218714785377718224532766716752368855182638416427542334175366251145344574524733644444852155776752153211228318671785281163511353227185726744373452877681611415677186575828457461337663742777143523846448152755488865818157567886871382386238778642848825373747513532437747683237422364818784611164826352137151752686756783733816455171163764721681472727612152716872847825467423121883658732667166231188333644125712644636764667881658387558631317172512857385651736352775747438244154346276353182484572752565288515615474625682532855637884161681751468417666876643312157534684376183638213552335253435258685633317262258415337521754361818437365258174885175847621123664227621386781351568228571558876874442442727824566248114735474772383247325277241552437521236614544854353541832184214156748466521663165125728827114571761477245813818472158547128566351357163668551254338882713621112747624557578285688384462713764655477518137847576123538618856128636157151452266565827455121428358665231873768483655167568377213246451515477487751166781427245231862573637547134717146285868558226442425348228385711225678615334867626241737457884113371322544187466252722653123584723524764844657464316447741718257218256647873785226522353148634543567818686865254823628628682713158446476641155424655334288161343886332815567711243345631634338524844281426387828354486228657271671166778568866862367681236155688453231777672144872722742246372337627416732146441323263374813215637464757553263814821228526417131544131873766167226337856214877142512368343126447242684124473756674821542441181862611168577551788241812123638773858636354215885811666767717675547522253244748186653116577323867428212523666663148341114713166515235454681256457168665726284742452654183268872387232728237578381253553876535452872133143552281823268236876133826188464371286874367281545257116723728827547243661178218625213871233685546831286762472452547816126855211763558236171823676536835582228755711781168266412252544161847434122757864441787163284367853715773125722333822675664781653838216275724646814753485571215418486714346427175256462621746457363541645873451863371447228854351671642741273846264275684545172625778164757643365453888154658481877852133817711352341855377826822476376647137631832126321613252318134455254636635784275353278368847484866311678835414616871427178777862562316315726873562378787645238353283721452725643868857382711616632671686537212285141478336466636681638342758644218356845352635354124857881462872774248774143248341613262315454348624667138153174122134335737752631763245252255534437826168743583638854265187511851448645387546876432555254872647757728127773441751816522671852316278151545756432532241178634862258622475121364483314473826368275756812514617656684232123728634821321437468214878368277128751347375175832453557544467271852576811578268175336772287675336585753861474152554838115571614438124862676183314416167333311423371564648254142458225645842174882645271782882144133384488354653586721461655566531826363217342562828153687341111153685873513331422134363616724775725378615838631411737764245581743867817461431241881666177315458455843658468548337482166817423325616843456471314751137385743742463134168677415856528457538528756155233111517163632337282648684816571486515172124346633714763831387843651237838421783643236271715318532325127636416672751234225442462384763312843326468272561714126346334325526528252748615673644465265217436177612755425188164417183373223482358414556225728336715141123368482412764245484327858253335257764874737857487585457841234446283352634226642162316281273374861885638747477684721211834853118184567158566136185265834421381761324288125525782328562171111756585872553712152278143841127681816214326363567383856857126552643361453688623522464261647313534536538515266475633726751357372331184641333662212171735551348177257237232584425284243485221685512822514331763858843372861848256355166218273275168163751421133738113623317222485383345886116348848277267851681285221628186681645531146783833557741517214773814236237524777638273241752245285578853711757288227212374167674832733661726343261882776283557142781734876227244318287476748511446231377511432723447775236156757431465336135277427316886367844777581288483171528425675112762256666342351338477871555156843235568213148262666165236318851844486366377361287412881327314464723556882687767325474225843371738642446266828411518831231238768743544366537538681248763842438463484726578133557643326571331363262554368872834667151614416431457668215651841823787535876488444218788454125113453265461178628716676378686817311587742428177167643172827514184141584635641417848843611537816177136566737534388873851113761567177414246587186855841157115658464274615132437283354136886158813482432181741661666776565272748275337187278323348686841535721338867447863781185635136276435435127733328567644816221715247682251843272287562153761522133562674345661748366278123242142387232666348381377512222415216436256173474418117538446556747477158667615113178842483724487846313275626334343286413474834687128844415715235125736662252581862553861256336847481664556665732674542353873347643726747425188827177214268483767216581448627571175765843488476864223134882425421177338347383545164167137366575643473366783626324687517884653727732128465636455535142712833222614573428583315564645886671118345483715455353718841538266774474874334766163341745785472166212668113255822844884171578452278316124818262453413826845882775626474765452383511782553712871257766321425552512587423751628632214743575611531456214271352881712352566144767518231325126722883784852433718356346847446725872851326225265767482255666345713185236425833218555462135468821826415747411682653816276324373875225716547376428421287836824272314572213647141888875765426442642716524857753458446888182743867724274668214525166425432362348787225347266388415213453641571228846442828514454675886857663685375121322843388454623165848217415124122766765626745642846734265733782177765813347473673825148282572756383751284883867236417333542333823817884454416836576178484234483488387388411713436735765854184344243678371451314653316412862163456381338862668745135773831734146445535237315385418143442132516246361844642241786387533542653144771762886272831358288141326271557342537826118135641324423131753354477365566438661718841754846748386673346851526366257333484277114467458154713288522325351637215227754666743123761813234265682874751823584866754824737354481674728767784377823824464765824157446174563156528827155442141215625384447323664625227637587578246645741577555683815645282128831665828674511668126381711173562615786732377822534258316164837768355687583384544858456234323111612742581538641113657431458446113376413536287217478878682635342571877331551336642348215135531744543463274227853173661764483547562575883462253237254847855261834782371377461758572763357775447724122741557313337571716641281643144335852373373731771252241325326425876275174854813624718816285434632416674676773145282187467171451362886164318621718118752321463485255827358377367234776618442656873461265754556848477255688532228253246488554254763347774436255767258417323414887372731263657242834761363673768566746538785371143586234582545213554216243742755765487714638345311627118473337811126567147542272811671238428865177344755561684572611733431837585136212455485558626665528678437617474338838171823671817843453323632251724327471425523166322551581413474423362423542718111836655682111258483382612788668458735381262873832767187744671333315412227126366258828414768562868118887785283425414324317264121138685465154883131433534326425285754357463528818842361362822511175217144313358754647675873183761177778875872853427885458445623477763661358151463838532265714128486631733444552444464682838111148628363613237878173427212272272721727675854452456368276384127356137715157513415242256746714611311761163784744434216876237665763448543538861114585251864411653186622171667665285316364424176456227875658526615833568667176722111817264183453123865833611158758726341648682553756426457121163624147171148712753465216625382623137536617275461676864282731883363735485721324182744764143218145478624863111126752345341637517716465532788581273473827646467854582144374341867866234688116587854737333323176763286533248485886371663162168626113435346355442268343228423152332644875571731157548836565432665815384822661765286771483546624864511562488533752586535886535682712764674334228338688845614734821753382424743435864758885465563258558687242142648772471886211532286163543457682276322377688418524837378385154868511715534265636286821821222325245872445523683412661432241338853121362581455666541358264214756167762621356888221325233328385163755677621176118186378562512727768434713461241626344117248886464116544782575613817115886855682668434771534765265173633384431687237365835312524238153142584534143741134565624213778171335457768723826471523648827575575227662653645351462432181748866248812646117348353553753734481124672545326656352667153183443114348484773427158836418718718126321266245444821721531417875857278852672823315163125733236683276673542641647744225485475251138486442582252845434648887468542472633858674845275511588143866765647811744837213733858454726484158536271678481371635677768275548252578543553287237766348326572466222145187873615542773464178833345425625428758171227262571238451563242344386284375783536345282855348171418788284434386887526478613511626386775375625121742456126334863688173212743842125847515818385332285526361662861264584281271421381728555233476461438557663475212883715484383111623668213526643788768375774745416741457361611171834867126551117353484782857666355313221736546443348738582427641377588341814324558188657788261364181624662713824834451346861556135163381447438788835836373345527734221855668317317561286281628487578672247678271886623332184814727475566432128168446641526873825754176737188666326147616814365827835324124682328674254752254315767816425544442816423584371777354755563687182858317524652435232624746713378245162784831171564483474732256666241131571377122422466528385168353463122226127246158612241716342687886275757247843814635673117843438227353246847185135613568461314872624518868665377714662367365451583153815573166857381524152314333384245714117413712824176817316645751411472337528471575376774417181632471628241754428127482813613443687328341872433445841731167122351143644343543553727852168437633317377672613865344288812522374625248876757721224282287148246324788454246587316425582483377678255761384821421262428565763631254711786854815673532447832865676137776233681855227323773878144726264574544541727626585453154416783727373614373724234775157285444433321356655834157483567474537631858674421671172772647553822755447426554582286445226668656712153755117536453757848673245885786148341761162444248764688245772156156631746587163626182612851133637262223867745613372221412174424332151317252328624542273481813133347344631552282522741676433446636127581223132271434168422723155757274365567483413871428612863225144166684114451718452377275466166144718228232873824653247374657463718437422528462844837653737362528252858276684775847364356774882717611287854117512488432218265156474463865346216416155236724325561877871175715223484177755255718566332441826215454852344838466324643857846356862854758257665366438634285782245147473168742377777357373722616216825323713611245862615684832342614282272548333836667843182286453443657568212455237583588724238541765588411622732651676237656362347564574226466548267882323141872435773362617338326212814378176226662657835467351546747346741268745572461866418433726612872167828176278843681513581352126321762475664358635646865116878366324453131266185356824231587122444856855877257774143423542824755751456112533467478627142718875467278551628636461413264154128553471836165637372172118563564536431534886431834143358816731858582652627432124537533281474465485367248842751774343322436571188626436882247833336365268724783425635132215614887331547571825867482511632858128757877636388882482222381256155612155888525172377118345131633364146645354567366244277376126424477127324768362876161585364115121583434567184358636673828326584644683126533658682836228736175521886868522754423326815777283745511314723617121142432876415756124711253421382315115814522686155545627661415683864552673758255776118433478648132447616157172328885448656527236442818275148368727467133752262875163181262287646553153888223371553763541635216832834281613616653615851634852544733222258226547728475144231381331627413185648586585615237224854572483617878787324774314772367383533513466353674228358634537327371587435736261343274714263165781826466528383837322382725722162628365136526825646745674266133785738337688842272726182577777736316816663637745184314427813676177768513762626876423534184358637412832825256722251173577671544855254846232873785788714662683158241642164723717354134488665842535615868457334131433578212615425675862474316411424442868288412846234142437276275321573488148814524634477885674222231146116166188153566163637611588314812567346827865577521457426114481627128721617233181735244854164183815484551844318873564838143552413653614768781754772745455661827384252617254211478234775443234131143314738321155655633347557631442633712411164318838263685234765147875723831866821413343852148514412671144646435466411763834585585431535618118523251816386325772434274644622673868168455186265174583534185723225673584651454652166831185577556232151223267583466766466182514786152674187524552384847326164453728656753365727827167788566177866842333351513384762557511878446136235237388285332186524678623833313836625334737544813462884353571463211634777318488742847143352314324454442832772333284187184282524728261131115847866343742832281538226835536277662315388572457176817351821317262363817553458266834456525246653851741363515188472584346837311556641367374784718867113752273348878675114581132837614656875716352326536643646446827444237324121847582866387642848444554362763766573475665436312343368682838222541545273776223314541171334722762423111348551787318486175136311258468554128215633537246456244236761785287777346217187431124244872856546825421246545458461581548643463662323883554258652477243727121187278468331715342576461347121225634532262228454378175111877668338452265454165463877558526343833767685817414512516357876561531517447645442518431753356871513651213676287425367114836224344376317362851458155825115634128244754377443285151353551171553264625713224218775816722731856741318746768788437874366126277553248683446832865334457766454366557287537237474674635428131257478318628512326475847256168252581526188816737475136543755731886515822512285814166738614354118438127265151641654486364455466316178463867633414714217323828256821466634254281667658276468152443456235312636752686214557523354678188581458214333821175884831467164884516424526875883243643448843317438666135783457433413614657555417172682241245845783253588155312716142232846287776158128671716154454546786276822337885451547324355625862648112842331876687575522248443526577478512666142451128783744153471335253126386513312267248624563653747746472232568456336265322344538318556766181682325612334257627218261854321381583653853368716627532376715412531413488685376844457583831272334441381335553727361688853167717822857641255534132186653528316187881724746161563448114156654164838521652337352385262334611214557175747832433258443635113228642148688453285527257482162854777178518554441863475271357548686555223135278343346765661132811636745225643374518853478288385127468882532528576268477116813525253627846188623146175752258571653532475752634645414585722635412334538225144225656723451234732864127188211673258536743762345113574144662686172532323288481167183487521486165838626116852635135444766524271431318811263233613356434773266811512188775155836232532616883371411216175657841461373452641145275885514148511644373377458533121516264345886127422656483823324145427842437736347213828322513776825711621264757575564565483661263618472484531388526873222455232463416223666765634877385212621526834322578233462768655376154223562684848432378465282736187276533758711624857411671758268886516848431588545452421263271775243716755562483538742567856585716186448653862332273836732256437114425181357287865338827611441332371746863457252775434314315487233826371536127385438735823238123162411268442337577131388612671547777761415514858632461337256221586443271386788632567262887576446646565562826771613521328744447628462588681145615124725466712343281346275885433645187234822645621655841436148411578182151824175217412422673681647224438472486617225136814233365286316324133761378772178563586175413181213288324863176681551334432611422631338725684433485224337468516661411378854856866254676523138716514647288685458672648467441186647777587554766435516228824623156442312733311658276784753721126466564446444115124358484675444287524824257365836838875413656643481558174517151344842448664148857671547184761565855716433847711277233618245763135575828318641734624554535723625344445332313876325342455816875466576621811865663216443513387512238886654357774761174432332778582257821853717784762812714648588422861635113757815262158523443881657631887378768143257165461436482342832635323224415828435265772665868613332221532228132355448666261716638557576368338261471447631712444116734551184676624755537375527687331486263611168222732368587356251765283431233754185238277821685672387311888375472811488386322546345233733757886254713688186812546728212244841222518548225725146325813777377866284155667226436138688174773365185587734643873585235731377215774111773814262427111271315183572547333623148887658443271741164888638881851555472183121182767857536485177248757627185715848414854653767658342214673858121832483855813648678556834826525677434425175451884841388757216645257286715416172243363327645366782312652288566772175866441177633861635522444828186571235888438482552614555546525732824121634563728868172543854244315774743861348215764684178261511745788283324214447426772788515651241631128115241857345282643377457281253663274848631855136121436342157382321374327118577871134438642241338466468866582456266568141824157552117552212146751474154146442866664538621522814648254527368426784213274816186237148412315214788821235625182415311846734355714485425153363518715486261262613253384861386254684334817635815221426614313625154584555477565253815335656684886825366575337843218733165314481142375134246187177127824424558634568248561338233515484445517242385728742462145472872885443333153531274437538773832121342331245165274324647382682564667456571784162261612142876131166578317153451673414624768573655121841445782426757835863887724125285236413324166455623618551663772462728121277838212448184132226138217178716555263176873185216515436212182427145348687816584845554772151888764864841432251241686771185742635683753886162786733271275421381535727226521461628837623325142714153734254381852822483681753818214485811188682541678654741112877137584384838174753774855132781613137524516575166845137581445413375837385624871674784611424152356458845426815868125273824186828534288637187352834428317426214167283736582287876177875737144527144383653832335631588742543664535864815257157337456331252438558225213427874624425718532775311228518742386464775456126251482278138161711543871233584225354478482115172615162681848162387612347154623751126385356328148586627538182844645445566868874538262184858723274788823618363626318418561422487846544772317641161126548677587352523151381232748417732466226843211476165778138541328155747138826124632827476442148153686166167336766657114417562274218425278622368112517857372561671537826774622377488272625843517347788464612438248124853527465865745358621861584463527848753845581733665458114126378278725621345124351583411512216721768817612211645462662628521888143813663554524757185866577574278448473618726811668225571417583513247587161726758747813123868788264883786465652432288516551436424413442756332262157817668468161427433378827182817658182638635474374512281168256188587731681837365483613671363862787266316381783133468437454327283671367163653633638578175126512868516464726676646674547656466254721534615132613861482833531353444564614327457352457246561513754162448446748371583816634452744217118853344242257455777834264355153814745328215821515164452576658146416888811463181387711567811815522822868676682427758823423461682888676524878287164563514527576635311833127186854886213355128643371448352167321628411633841875861862816761217375876526816864252825175423241634323572268765852658266475685358747715878833238352777222657374735616852525837421517126358273266783175346486817867436233117481641128241878548133572314372626752523243248163666832732825284841652876886563716166351257644284251427674437428285822584164453845857436861628387746616661126111666525872521448884531854645343121448836785716485535377752476757483152441137677836165851155681226223367266882352167551232612483212547852647743848452174821258271181856727557553565441432527212827173352677548555155118862653545343335511351313578781773817832133166623328416725611474645214127431652181881348711524155376784536568464131265223764371717244513821536841623285578666624248565724864337316386751724246326741482645168566286447288661388673613566231787564828644312417446473645138225843834765313114845253427677686752241387777288271615653537167758834753512177566517768688512876856138178844711432765714435531885587482176524366121562114263253777536412751277886823624211533412222533725831385656135415234265284356317558567134486817231524734736533176838417757218528651781874587566766717658461128851641737844411256434385213872547522561135463558888885563761675443266338573487144843411653422532857242765125421461722443482524666287134683741587535446672533661856658738174738378833252472748541276266244336825824216144285756834656342661131222312813132374867888684537336347164835235133226526582524147677272545265447355117333584685438844218682735267735637644723323326737766825347627351122583582433263826277462341165744651878727242283772237122285668732781743356433772561163872425115372825257562545672448644553223457657343185756474338251325687638512835782444178272284285354727647837124368344262147436568142572163541844767354158762524585313226561565128414826481222677268586241874545482573881822756564283575543886216322621318584227513557213167778127358886746835655621417614553161756422166466883155712533688863655357465767537433673836383758722124756114723563831833328361823724266864855373633432631367466447425727273767642175225822737167871167875833414567656254386711368165731284431577824646146476523126366375485444842475671335646845362861211755756154638322473276372568588332424128548142881264583656562285113522236636733518665536751147357618728178432648325837321434221141587213153887735378821831448124743551562522311548286388811728283224347481381342761556257815885724847657476427311136658226766357713375134345732834316727414116857873445775137322447187547645311167818154636125328738548114542217615626148457841638244122235353221347123164735488418572614835324848747612754411827865646236734825856387548676637432666846675674331566871844377776151454673351643466164735864322137233217588364327885138622154834714634551576677444657536412412878828365471717358684416144884757448443556537151888111774771226667312564386758755765724857141323141863452735321884432487383881865837374227658445555414881786874147872364118641862412567546342426811114274125713521466382632731221387326737465436471718668823832532163612258458713751724615565684586737121636213578331657722156516256155787427736365132874785443737411678481344666371448524664147464433443176211818528232215676533643876852238881422435643272411764638171364361812251473411341384436145263268266142751186727524837342755743335136722572331758253846737462314464223377112753667833223626523666278176844638186551547411662148624337883435815556361177255155687137584736436558843851735817564137476736575887443644784154562144488273486173587768325771344247386362572356325218217645341752376671718512843258141714218252176454514154325331345383414185254585625737821453574761627176363638881561858614537663641428746675674487451327376244477538278757472522826157773567573312821862361588482183547565331236478432665484333148451327416435273686551268353363878117457667346375637624316644633311123575471114344673723554627625626672228786372658516868437888432685774631158282752225157715425272738863174551713634216657288424556553451573324573663147434165487113154272414438766141581885214875887365213634317822636783823472161466184126453242875635833341147151451438734255323576175468271545657381363655876345518226231782426256851386472265333314683478521314618737163251483684628127541672622351764256255172558222863811748564357438245453578287872257183826157482472827372757356447344283717644452651247481232435836145382634268112123552332475647348864746721776558771114258323724362743225751526454235646545523151881213655624138452683147666172731757784433733478327528152638718584163275438763384753658872568487582861523158484436717356561428765133641854558663348245582511284666638484426474475461826773488845365272333537173228862225563156551634556571154366331443658162373336778216812445667778152655784283437427117857585468145317753773783534815417263471455573437772662824174632125453157323563311577666775814275672556175812338156781245345728144711274774664561326482832274745232841434851324156755525788774366527252626425737164332872826153675517368611351254283452521225243664266744548522147173212288424457764155518432312111477266267511144455126526454654368186773344145452128472723288533218776776747483564568342661388518254448233168882128141226843561446581428473143351855847687545555325833547553548642333163524671377747762634178523742628872446141821617546542414458327275326531378426741512428731453262361631358867652463215257283276824874676273815247138245632648447712761447447628583213376241242822764788218666375283582312176245828457877521348564881671585868461373741517613256326355121667512316571317244261767561678716237165683431815337874587555585278683232232838422825864681356545264484367236178867431511683146534648163556221124726576623877347372258221733511858327686855476211386728868286883821451142275583683372865455152341475258874534854882155681712813822484187527514853765885662833232132446787655121164558786178868263873632284362167182161345833746711134348446621226331154324218855658151614333145644616648166522287161712841343466884365362881725388468338458616853488823773431156514237161111413342314347581386824137742522327558751875681431627232573681533185861655884847676585741671733642315162557158436152486455535815216413655262672356586847482678368818345828783537847242141825848411431673232581472215876175361321838684877643472667756531264755424171548124357184871311476428161278313211333743216883182341316832827718888868786552532352458757611586146814571216155787134875445582383853177267561255135423567283873245253876483215717316331151425318522575285525183571324485117544586643332471655114613248448718328658858716768446427387283778677344845785278771587833423487435851322411137623632184422757562154775885815433463578621816623787763433688218246284263321582847485435314384377585617111626876326836453583176516164541313552888253767234287758236276377331128142838717787643522846544137131611481342736581423624447741511372882182764221263244677138758844643812157261354568613413857852332373454841865183551561763558467683514188755465487454241264116543468848722438635441535352638174837872764173646752824141873747847635783857282864662236331315166431175162756614176377561487664327182685541317373671417243816447753678213784688666677182458214546822532781821773257864771786827268831728766525436884367126374212765743388612354124127728224334566112341822714265366625313732278851741718178116311863118473667238214352831737267222117613636256244241444534316685562433713225781324168177477756113323254562152751353762578161467485722847221182127482531237842487175241652321538165384377748588354567218412235638225323764723658663588216378448137561556137161584423433132676276881855354757427758267541465688378345572653462757772312448578517518136788745187445663863532478786668158511211151387244586632677345826577368362451775334664413384782451876778885648238386713633678871575228274348832757418738716662728347235636321486313256733481648361653382623638151445637144168562633838717241243746426826184556421473463247737223521778475511258364316372635556515673282758874567615433516738275614131725768883658283321658574645115753346885247733254777415775453538721578661543435573421817218562221238715721268636548631111134245128866145728658423143643443843245782413655631547713174238478718178786252374444785261573182862835524341468578658342351236381253625718553476153644836528327341572233784718511545835377278611634427753843781824176512885626355716243484471432831357127676822558863288336376246232631468666883776762685128331123386314871631574822251638363462652157453275713315427251266113367161575751442447657471456166161544517784835648225168614377644685725512662216227384322756322457831257334444233667711643344176841553352413476651286857772856621363667418754285775541425227588533758366352337825178772461725745186624428353121634313225384577156788282636617646277258658213115444461218561841667141125516664225227817865865888413472612167146568458823465635562878128225686454856527762434881255764756135737738272534664234816488734134366126731884362774835572234614142428153243345431574717826487467275252533466816644121823637161557273836244512265377435665242284163132426573661715248775188825482665527762288248661324424172527444613185362855588627266244215821177383581686855587362686663364138537777824578737345262745748853765341648256116547754518253144372513353768245888732783777677876684838325745415145335513147835515564583643384517111667538137548712351285531877487221544443317745141756821178527837172186434727322114766864473875641821328612211426883256355558721773515543353365822843578734474552778181325658722876811871138442388888887268117376566632731665461451846624332238783225367133548674445277222334878212617317532457812488267862466846284524134361636763551846251422231257352655427761126627188742821115537663312658727485762743845622365718786163845351817288454622728156145748681232883417423442681366866421156161338576185241116133376135711524247763472565363863861362742553874457663581626168365158241486451513445485163761453655541346588648553867475427251123647373837758482377275637218227573877276138648773682231651648284553876651524267447337383124133155344165734822722354141128583584138242625763545667273785644664173584732168434612476463844862878848487615527644588335586141717618345165383767224744168431421357777355555732321685718648786573367211725818711776127883462225453738771467857683414351284815557787475288171521461656345746188747353772746818623645178563868521346684548285754138534556551212213538173562754857786818554642457422376511456748384685527642484335221546673834533688241574638258371114768633185451142188237224658728363245222353457234717688251643366551242864376116487736413576511253836784338516322114745163438222462752244712413514155532534543681865155233443414725368282343528273757148343671732355844775234152484867487466418212766844524835742887614447757748675375487457612887437768521185654752487311771131473336858165531823758251337382146448784617321178164855875475385516576623415574477563747453572747263485743861477712785512735676283548674877675453638851113447166177155121877281561466546442254563347855644554316421162475362425625121681713743554257372867716148557674462615621743647541172773447373325486638428444714813752152556875582765766422717365547323275863288362728257145832476875313756765368527543144536642148536668353571512363436476737838552828752725746748173487761624246447184763126761435464227341365865774737746173785438552145172235774863316122812255276847252145683176117468661782175371162373442425226561514254157353338236572633312667475761735657151873386536524656282667652884388453483715134488277325757523843854851242444751645236418261562436523614415581332745286768773885344374722842671732351134878848541674723117773735167732785781321378421627583746148783173333851157811568175138631326674516518565422148654266711532266627175132341525152565812152877621185655486514228833234381557126785452567227615665875372816424214418366145522648814413511252648755673856265441311647568552482166642517824435256887744376486384154874663875217486237363122651633221354623833768243648847178757766513841334376287253726282776521867867182185775587538858233555342145541351887426871562474316532382753877874786244787146246485235471775341721284244125685142364867656341388815131212442142277235186487477174654674527688863456533872781265631765224853526728573446622428847135517661122313227562711148844716136411462362381113874687657115315642758875761441745222656554751432566232318424485174258564656681824636464316426874366784866642334754517815316562755445542263312477814661287554736341582417648884444422316653283586325463144518114122822684571836368575746214761273142811165127642516752247535621622522575684235155646551474615476335153588627234314126234565661188612661283122457551344481667376814137757638841713586846568183474754636518151211556327544444743737387825532527341132773386441331256627267125858833726116452572264845437231423385344655486212338388832622451458843125525733133562124853267213267265626861231184363457672152148865114756541648643878513628533576683768583634318516124856818826283246216238528235844348681552838858536818742455615216172614666258228761354266647858533413738545253111742858588374814241584227334625385272111625713284213335265386486122283854544421741864456676423134321526636778761826837686845247348367131418342334687557722383733738518345261411838352138768228452163516221736728425525268171686854724283245724435643251137213758837327532771228684161174581845586387726584314878475151216256576265526346464732476657668852618386544377525568763235862554332336572875784157514574176813133232841714872456274383366166167851214855451552846366313876471272713355561286171374112118647333518515153142326154525623254186827868472642544256567716733888676264677528764746111851614618267852321743575631347481232582275166866151818262862772715621847125728575543136331214352524374283371385456338652338742883877156482281613315867762755841815622167846123824577862116267858482264868636634742237418185557554472874427171531444852821275547176735366175614728824116672845711483626472528161652738267427618614673322243251233473118442327845823322443457147455363316118554252271384536111526653841652274381117214533213855531582356141571556167127417713833842164448283227875484731571661832615258748662536735225343111664745326182867787467651244522677632234831286666171846537688723683713763842675181744114763422481637124328243612783881347381435268842138144175331321425711821247232344315424516634363554626636421222347758826256671646664844642434568151613437163737264665736171486857138868445485218366421174128475345718758188378263725583582216432823855752655673131275282123735834828463247762644438158366318763851566477332565625581173711756653466725544352588154763611756537445136642674544115582453518257113322846775335316752684525416864812113771861211452628771381684174854248286826863714678777417873167577467236528768844727638287184548153845284242745784636313263334336581261652732172551851267461551278363117352556318384477835672611316616518454152882488388554681331667128852436632432137673153743821437324134456316461348311375343375275354761287545535236232455751164566113733544714326516652886511664335374638175167735167337647421724158578456164514721511335273332334883714471517888651683767761864158841455215885821575533415413475468211681386478214766617325323736447476273736447784532158557512313741235424155811153765781657447628433661173644646638367418244576536713578818344623546456867483656313367738734785256852355755236524521411353343537328225661881623174772777712134423443576665784667756181437211351451377822257635416763776613447441275567484256364627566883246657735473832314617265632322642114756465457355325143612418661747233846147563115576544381324368257117423268236454724723842457833714542435428665213684655781354331355515227672863237354811635655751127585431526516433788423175536338285337456726556413424428542355834164511252514822238647563767152534875662588187812843758716318138584762537516854244171137455168887461334141745736332114545258627254374385431578371481522134865476875822522278267224865744242376144636454572565357441535125744524174388654511215616465866427561845464416533521742187672183746546771881541868614713276476436651436522373436886447465161478154267528414724424757682818616527114553264245656632517455326577458862287228771424362276615831773431218636612723856164412685643173664643114243247715312262615671856176184268488375576681538116662141745253613316854331174852585458541223253451215235318452621236756735152183164384884841168773267712423323586633188548226282114555367666683156365378312576654211726371828324551745736582866454435721773614736521251471573327737126264412575244836165131132462361556183342533825623233785143836882387638572744416475665848833512437361225418516222657258748168878722413621262748175472153836535263371352374258134643447317132525544578676788418833277775578416852115873338778678163422178528375176342335221785783714817536421688831228342181546526514427166216715477477287342553321453736414151358114821422677668362654112474521226378327442275123847445353664773416115546354735631532133111245556836257771364543553435743466178443757536568621546841471737242145432854372348364554363346127833542616232822827164511812373173136817386488551424461521327375678146465112836675183112243646315266523231381654324234825771567784456438537518882172568754721586148682215633587485218275563373884728646815735641857846188174871163833331821145712565841558144151821841117228481526622463437418481282768687236255586441644484111786164518328621361614775774872861636687636267315362426884181273225542811687134232433188288264555711867184516126731848735752263324126486716328562653345776651152151768526717462516531665412267371436145636364484214867577685288238538272864811186574317737856566436424262368177683778633128473222434541454357687673645627263442384755586883763281162634257463513644764553885775578323735238455376764825875538774725658847444172734286782814588836567153886863745335662558577577784616566863224416671733651217657725542245233374647687133624258637278163565581134712562814135688217175317567567647772662644311227885275643465231674457623748737336725476373763582143772723765585873571225268427288276325583723326665454561578487872624848282233855281254812727326544845834644848535341647526144365521168244535557173723372176578132717633783317725667113216425488241173358558437614512472232647362448371816816376483538428583336231635725173717123173835574584266841488666514375673742381456738274788652873321555431636467647656235667855254828438182647228882662218512287545274654535124121844135682467882171556116325376462744178876676774845313534168473533632321874333386824247212745167487226774314214555875366242625524413652248361626761464774825274685851745668436774437816178384728873653211141478537388184538662658533813574233175525272514566313153344268582785124342462475225277228285154811573814641558247466884714875863181841322177563476663611267455662635437332785783435716773328542774377726683362275732161117563717846377624846735127285285657638578267636637422878718877553132841834456136864633663567484463654327651233776356234547853318333564815825364665387318615615318552628327525878474875843471622344226217856245258556727233785681117328775516623545833425762831547445434542373344417425852255726327766882171171487838121816254876338184263861871463342142664722152656243536384337233443271528434365878818688238522726841813722748414111161548567728114611842783413713576547285837838118161851881247585728645247812717475147237747367841511282882732675778362623558121767857143786621265718661133514387273654134612728468336116864313772153256583462468363633135423712666687326361514411331341852218366582434756873323126257243153156676735827266515827313184161162681151312738476644172351724431367433463345754477583684566878623426633623315313863212554818571738462334361787281262883474333172527722844614581563653167262438387245346716155678155132744557276552182748212448343515656277585312176237158253284412676155821217126431212637624634818372468271157782418643122284642268373887813742688524586622745638634824671632886728345576757131653113141224811658354722384166738711115783871656673634552164617584265421715747516441813615236653175336114657518741411641364681865584711335273664615755478857514731227341858282661715151812763812134438572261114685282858145113362325243121237383778665546626121353443745524354618363777556727828253217626252372325563125487785762772224745641867284453668247782861782743426168574786134857437511276261472755321786551823466886122688613578721766533382547884582452482626387441663688738627147881285134664164242217171528483778568763285213673888367435332321333711738316275232265577217318118381138631355538652221631438148844647611413866512738753563463136487838166833241138865822235537847647315864888888555244134646547177768162232287653834347763183887474347551345667667262646525864618218825655883358172143614267315775747868557551268361587672412181631137651215328756823451512767411111846557276233431666483231876757548214571361263346546866564318751346782488515436751127671777421454711128531271433544877655284211246848513277237542515442157135251812568476366687748273355758441188845781286855616222526668571471372431455242478717851387125151145287844225433113715514116527288775565687287257545613214432821887522256663488811262458717161735677461283212168273137575152134658263258565472166331755356266383871855478177371871666762585382278762126874471564312857223313427162378867115138556313771726166433661524475555216817745737531274516365774148526326682344163287328122261561583781266182167454883454671314121811133688583348484616731566148236745775435736362743225768543223766452184273721154342526546568845357537552818872875844268732424858668231382348447612225767611112645658654578581861758315165643523247728234274246828725328653522745374316773766565116615561533673812347636811333484255678417665656457321677666174216434874727151416334168513812388832136365141741441543263531751321518833416487212733241263215344884744184488275157441456467562157513827827542244657651484226433843281183553634718675324616425411388465376621182866485535874225221757155636486381886458624733824166763115455251741453184564756363116174626842186738217362757151127435867657737217778362444728537171544115557345724322553815535338153464125528167288822278433533537832811252235652353542241214453116267771164335466672565382644114477765448762115741567286126437533318854411677857824481213512364382354611347634582147155476573618834351484334474387761367885862465861626215524628185738288455587152723231358681688843767414654248387366313247214758215652127137654456273166554141822153352134556612376651176576576372624787721271875616324563336632481875334347146267818153852285132185327623524711282764256475578657346127146477214881363676232767588767642176866166761137422687225113746542315112344356668745326826761232333888624226574134566835613422624564543121435715343635763115146284224123733424827842237515615385414523515717875761653214342871272511727415263356373361684488514421183531227148447464111555116127224247225638541177287311772258567153435887528636223118684568532417611267638668172852827375735142713516348116862736638423666777668585338286554333186514832376158528247736453483758118281187784652645425756765142157645354234216436647831516277141814141423511243777366434627273234344473414128164767266247133353487883283612324662157768342674123418385336464587718383887165237245272675137254585522871384814437513741811335785314262717264614434775566518185383668855342718223451814662346463648384738625614541517664765272546443575154684244765518655278434644183365314675868488354473483536832825456585178827821135864376545444158618823772333335518834347583154884573431621851211168564128825374718152624475483166174183144278321885734872527532811315571664666363556844752375465163377854372625846647674867422527523318444673746516335333231158822322753786171737552684676471432238165355668622534664617155158873871273645527437864135746423111156661812531844641741481142128722475242485485531221251831142633447822267476131122744734715635675477381117717528453543681833481515442442883621656676143143142718313124321282354532813863234115113124446262357677574442452733383384715128322758574624556648848838116528217874512864426287778732448666357246516761873682236171822887378114454642748175885613455221548555152226366874244761216384148511265487722588118186264413817465552182561638386312878386656111525432585634254551425442176454166325471613285551382714877373451683317178485626443384657256588337325133567118741278224631185878622271244844888176687262747133114783816367743311676551444857224364522725368581667484584156465712834613318268243647617263416156856324324231121175743235573248534833354674455551782721374668582675622255362883563625421773613832218172627763786258461444722772568567435767257831766577656714667584134272184456514753535272328277576662862826637721661854185613137714887756221667612487767137442782857684823845475621464266177734635555553523152338145451834327681823248186458282286418482831466564577456783727614855715664722135488314671823473575232388736641286683257228257123585424367688677157338151636514734873475855884485788751731242582685514218457514178522614726545622363458315722736458526755421657542754774133372826877222768784256412755855243841615227351346433668414666347242317586323424226151112177368253843713332548121436483567862776752712631755457587714827625751445325487544676213853144773835145567274634761171346347485388783426884863411428528721351588144176665238576225644685777443446552775168676315865312488243244756145512176726861562666656677754434555463112617322558725558435744211443711841478284773848748134421232413466262152546837473472481413521536811276831688187312542552571533384312862686313144854276144184183221183223551531626144315425534843547831852824146657757816428521842411113382715237673471783441512312112342577718566572631572687437588734643428443617762588428257627687653672375656218327851745227154786651788124431363225786175881135317456435468512584271488844627354216518256673533116623224685427584255736414764632464483752161531812175783838188715845287164123674888447681366847218638536515863168873423555311632661521756144326324565577278748676445181782883622744163746387865566675651551827653256142742534751428154726764641656336267381662724381762214647661813625124272434563526334787325322351853447546683622344381232331525317522346663144235362344273315533484385662846138333427442743366322647272472752374676136367564783634252366242355324523326764321584815218522616347486485272211836383561527688388718245633521313882845817734733374355827748765725521226867311345371738371763445114672468718884237327825812213471747155842812122713614851178126762547737688551647677764847726283327616543458231114842812744263585863383338858828471271425542557212141134136878536622631874736627877882181458828341273277362888457226183238787638646662414564518122481771358738683436273618258738567346343822747772418741423415332752253111375231377332864371473365571472576281324123371415423741464228166356175453752588147483215576571376571634178838541356266734258277486265644546257284511251366841651874528548355744212873128661646712234787671362342236444112242522714781355352473265816376182341477563388772686823468766276316125548777423572331557534843541843464152481637652664276672586377584858715747311274558276142666183558231465853846853742253178785221788433625878645836212411186267814857826412145315126826573378761833724232813543214483227425158753132222412633123158131477654531731652758183364348743557324773733885672547844367848114513582842832455226822127778446586722666855612321172771334368674463318885152851838726756351727822242212474366468347688384133732653843776773526127747443556418561765711487416127563876238878436571657466824586111818333276236455587834323747248331251248767574683482531514137636451464317235284214433451754323668312718582777885334348485584851467545262128428828154181328412247668386458486158164141142673884462356682318814562842655874741376178424345212355228472641174177456314715885737416441522271657464661211666855486117735821676481536546371166373848438181157484146667115268487653682651346773284532312875525181836153786472466738866724346453246828217823651418185645768472712184121568511241226451837573634844312155816687716452515164333486487681847227158361587154154484748367358277648276385781266313446374876581335358577254842557753257645361484588253635226832474711232737544563474727115718724265385438888345351718221417178566683816412433565326215722621343613814321251574215423814243836284251383317435726135833326366885372416634247475187371677125661817225485828354833737483861287388762126575227561511126323443338875674432828646417261818823353721477737686531347665456355347638636526272745838415847343777546121547755116558286457272531854332376737444661346573317236378323226761314436552871726348135533752217315347661858517347817461423538438831417281112545385212848268223672772517677438867544448125114877226446774327221635245747114413322826364416387137222783214621828272417855545815736616634115666655482374518611343871344711174448588784714772416464215246342446312847337476684882127513814148375566366712246516314732122285623846568827232477278367446355734827245244826765541137848365854313233454425288328433784621862163355652118327858858847375363268565287867761353328761587782115662747585477224413441468855253385271141244163228434432136318547253833547651838572682761282632246511752233386342276334441273367785432551556272865667213287534111513468272716663348126115434812133165554742418748327128262333515411665216157537535837722622132378822243727667181671238411374468162372263686463217331747866173186874167243556777267857724438484173288571835363156448231331368777654312362785751212284737852885661882777844288716185274566756388177353726735774153331686433632541132374656382416631666461334254237435412811147466244856571613173585742538618156772736552327686823286456876883646436782831751157434638434731155318877746873684487862524184758466334625413738378646764141126658352583111474367843588151263485136385555381684577514276261411624318834254331645383422117125773224176583682336526754634425884362348115335264776238688737483581435332532144283825574533348558382782654735355246662625626673612452574137254645112341423286124368234687221554662885614181682288712847758475852127385454484673521421253711182868765811456584556258345523338522258656667437578262615835257175887721187817323348476668252626822784561821653843552335821273734611236228182866883722314187332418427711466333838721627626521461878736844667632528352231588582381841542868318236153845582421646341152257655567371635881183154754461642227644548663857154366613736781118741854832727374417245227763561224368658517416454875466724747765853584455853218553181443534171563472814281526133448154123477112351321618326121832847816844654856877527556857151312712486438621368731252747651442387587741367415178761155487542467286667665222786363438577418342132785322741181473783657287177387146565721885531511835622171575476618371146568336376544623446182333357132655375823274326637183236458362246462834228657871771263478313283886776818731385368356385883217557845633373812535237766855846313213435361651571783576847283438316611843868886665621311788137665445131324373558227715874457834537247771315231247885254666468578113851677211872747363438142681667663736227812176873733713668716273422214511728267457487332313576535426776835542153788212488357527258426261381286436123823827376158661174114728438717111362786567135743211378838518376423368875785868866855415155651362385354513216183755166563788735662356624631318352754572421861543348661188731735527135744532243576141721711443662541624147868287588547334345322163211315767787544167857152588482672428156832343658522877136643877235782474678842563751531812881668358464532483628562384172346114815852862222443161218313147645715467554743586554331252262513278436773336582854876153745686875877263513722673177778734181654823346583445371388133176183737221244861322528644554523237411888823416215356231645784174571378266277885132741872267345661618383111566168221865147868236363782118725438126613377245755442637815777181587368664247638764613554217867634567114425857812872344324272614657534643234184283173524543373455218338553838127436645761614648346761785757461218538276756337822665654218653643353341823225627575147234716136133356115487565484515174232712114488666315668377414563173733848348826524187182788855822261455151148482467833773664863678784161141678483255534557854338275372155128665151374431282382371427374486461633761718435354558511185434747421657417426841265122631344675134218546457758766465244337413726284755461853735248651763671657367441857143883573445428446527412753828621676634647356717236134728271628776426777361627231781372816577523834267662743536323412367833641684121487638882331567414263217367636472815712615638165253533858678186377554722854861542415686332241437854433535822646573723523783746332732755323254522711722267222552732577111125574435414381112867717835413125668772123427225478755328458662285273372283612328764483337312281665661856737135823157352788814642824871668133681566458347815376265633485365614651166867458153466111346578228352155422367748286784485124112686818552775236245581636214374454725736172564388414266854388411583173471517183514837474771781851764117738534885185838177137273726233116636785111554468872655617186864617376477511646541473823488186553341655125176717543815854761272175242421135775336687371333112228711642325758488257642642153761721752773835874756382253327311343437373366751813682414643163264275813848282282227468488763781364735125135721133545182167814642224382852244224467676741327472251386583416488843467152753567484228745172481384337111846853617721482886115234334234374571522488138375585275317686725348382236116515251368568848677712717637388158544667325225744382248817647324777812731837463518324311145844822428258222168875726744828268532361882763666234773264635228242178134872328638777114134655578754464832754474368135247514237774726268452551883716422848858716875518222476246484286871873731238356378473756415785283847822812736462868342653213427473262452515827122613867865217642868161882173584622118515272556718676735644888167338775111333813746281764753436368824422254425466245287372384827568672814852115671818713647216534512453425332411417157177857227534445486871631746257626562181754217444212275721242161326223364441382613536215785682684113318741868181158636776442612628148671374351155585373524544623383822851885156326724745281328548812786583657476167212486228144611781246118827231642741257263333377182318252841112755872717637135432667351554535327866214576146688433868821144375242753777282722435738371482425681842736645534477536435234373648313553377547672512854467565736467783171532865276462425262422755514572332435123621462545756648211324246156555786718651216872567511172477741838375842163626774311368227852811547138835364143143246154528627442821818245616512485268521253113754525535753521331543465581556743885214771618747453718865172432427547673424384211272734113243145815441772227517682465575566762338563642751371246454527264557651223246388837748445713581653177766182777471262213381621342556484711558486523414718867818731241321473323642673753445213155278727823315268414378321811763441137588876214111248276737521735717357822632613734612285847826266183452624585567118337578841564361376427547112813715323217834137222431374682788748361358142155437361468838174857552376747123362118726416174446853277833332334512573781117227824838682535324774183148148862433733657877128557556857733428533512547412271785558812654513536556718218186165672538714222575787537455134646815638525114333527342773356431287452828388682651244323327537216143212787747618621118811453274485472552885653381387258885861328553475372524743577463358556557262215634785246112827821772486371187662716187715817488444371577686431217517385842347852871848415727485356682243477244442216254383243647114387643237547768241571555788517887432742385248153272336526244814653516633847718284877345628118172432784744532247616146618371884117743337372363138443271618455765541543447362245276584334276751172745785388513222737852155732711875152351217585348632546126863862244168686415118573784216418763556651225864534288448851276751175747438123436853467421117483567143545554484755212511527453468348584625155246623564632174322846755887561681163436456361663524776166471428225434741433566528583261525256175385748472448256723111722344658344487446287763545755847642273677236167353131475537287563447775387654486718714867477311352185525357486144175242186427241158567214521321688711178427313314862447718537564152738667518518666412853813438712674552477385362618415663675236482456562152257125863211464687887141766663787386753264766343233546581857743538825387475771153474744781261284283382286762446752832471164784828257137472536762162216874361352343213652464721827785253276228453344365422784653118324348867763764811242486433333852356858716751211324151763763755152653638114185187288843288272777653882858128387664355655363422773747144626642178215746431743837813776245565773312882314478647538816387725854382242372726481228716283134536635751544486132623361688183223746437153583763112117177673582875577151311263464645243827876132358754743765272213636625468742866543127861478361513172575468655426378645778476446442361416448676375255434143784215383841344227525711442555782868565565581877418176776848287482828435881657457163442215134531728633737881416873327415617751818732125521567266585816543836176531782154227614451627837331885557317211222182184623523342112634254665684568765746665186267131126271456523551612177644332182713472284845857137843766886166253262177542747517417344131717131326232876751677177728328168838832224417151777285874576478448383224532186665581757363577227127335448525282417488173811678581881332773362263828577774523468537251345668555844768327368674584126721374748481543562115643183162743577568278814837135518576583436672314722727712374815538284437763853445373261367734876483812687584817536441544876145782142277644744356117722726571668834723587878124474226115764746581663838484312711888311453514321177847556184235884722544584883152556373677167257416551126175441383582755333725555877846651765881841682382363418186582224816466237714183286537113452241647345667254561558863373688521674578623137541563561414764335361727445358771516724461544143278337632364847818642654426721218733566461562422353138231728581261587784447571475655667326376313338767223647672857482884578276278163551725351546342446565484173675542681835858341254711426584538278358128521215222318221446418427421822541252743541458264824723625374547364415451563278547628852571541333461825838247767531535654315147443441631624287852665236337748354587337318477241316536321161685122445265711384335884323881165364477162348878418567656155722315753326212718326741625881568361812814522762451144175361126151622862131266468244522755767238312417326311627533684566143463463261617138261683533775441354616684635235127777211184585382458277527742823717276882421826758737351235387364783477571457143623428238657152531545364476241227258173515171211852588686377361173746114213323875235781228122181865632153142141631766875476642418868744725626358336881515746177642586677346163813367125618475746115664217512862765366714417683388536824472235172515852812761166121473786511218836123324287262561368214862678243851253367654827844455528674318554646543427561331766184862488112245768117834566621876473388286317574582355427678477233252647158714731135267613351731143174775456546518282557488563244242588212452728687421365388228681421417344485452764786176514544673783524663767152111715126576645884326671666242342188512825581158571828883616716623268152526533257848745713154475662564486725141532575663834368746664261553136776135367352758348183211265445233733138765617243747165177382711644827881132715676243657246484238621176745886531855387728527841468246427687817118648136855415258143452321722283254766438668372286217381448267571863375743746125435332146853777844838421411273776171874546834677762471432545481258756722511645488347456262421536478761577552762682116784136786184847683437311147327116566715422575845344775855676456761552658824277418884178647458716558314353671271166474145457488722647264417123281517818252686347428836146525814855425147814337741618118462122226638811487787368348851884766575345816543482235238732587134383574175416345235618477243116542711274475628318571178888811222482475881462168623681286256868125751425433315264414281865368761153152655552135242651627741737788782133245327542614735321488278735534855456311277522254783767452512163578366171513628667622256324287545142621761788733214426725215156556588542337762187286868255731153713363256814778518366788432136477371353153111136153317812122425828655827838812313611511368121678644345185685784752762515473252175266746822552833271847446467343551285484458258534335738143666828717154461172685134564248516715446348785453628822145461481647372663528124152144815458265745631587825727883184355567574664284314663215684571615858666648765256323544761838865251125458432657388621714884471166255381214166463215775244588683867484575578315526682326345871276186541665366877254473677765881568881136658847634138417782172115664636882653432515516882786866234563831185118356477146826571881823315472877564227888551827514515842151844612728625541288656224475681675152834452663782367156484168184378537671557787682216726871556881524377431875645853314868624824132466371364818261487485327725828233757552543438367123352113382765727563634546541152373251548483664487432783246347443464484134367417246385321841452367613273311741232862561224356183531817345876681784641658253452421262152258828665638413474636544562434358326843416156315764188555655171627363314126426551668621756432153856387366864326883522313113225371876414661758457716534514783372148746274851813443214521665164874768356621411625683714772447583648572813858187336527652763323677212163335814634345727565884733221327611267341645874741181568581688156743666417165426435288645765372135488746513225768144125363767561761652312484846547615338275148125762668514567378651841768443822517334374737336282886841754245412715318443365852747143187221726667217123145682566477456877826571456867247777845248875668251575532325188837488523577655377414863154531374124573831763112517511876118234516654524662147788358443151638158382741227882737661212273216278717673761338211846634713734427118744182222782482222563542654551435811772832766655722633614621761837165867615171637468735366841113471134812278847482371766267238273773231128864411614642467246754748738846814855172423528811456542135188778241445356575246372133243412856541652773131624357262552451355826642436741768815727548775522671421354844676577156521465124887888135126254813377835673754848618677857643234432784428614785636315212865255285475587155535168466846642826213726335747387762418654184283564455258438865722627581581875313344538233138667438857114613818234554264576228838524385423413483428843387678332271671833261218452825242668512436255757662772684755176311761161485867444578455711125746723586642845676785641332333873535585826211644124557377277442455174363841524686252686212525767345433736755334526452768837162715158388674874445642835774552643854554438586816277461825142273247681688628378586431287758866386626483351347717527233678675862613143874168856677262431484667745718114577161717535477225542122518278387212342712328736851658871414434721645573624656848172648471781878118567848862363332415444133786684622512278812345245686766715575616754132531734348524357837253323665735185647262681783556262111166558738388776123682126411516324845575122185367514413213831557658267475572717565573864757523475362268484574217666524816667662815673333656766684155253785333221388387364856686763377334826715812531357458288862266681158445186248352287664661747524388748418731636812478713586325614355316846128371575236473264612717115388667583327431274468416656166565238145873726412844485121734461683354722181447512656368113155684636168845681426687372843855584154467132587248565461564866435587511813233853521764788875575782222328533485724556145883257387528417161326565832532212283823441142744543888182322138227576421385435551746722653763755214723747152327817581453715741357441682557358156675676654248342675642754388262835164536826411578728562887574647852362131772815477112711538114515418512576433148548681451362478528546464627178514563364417315864785433561246116168166524824218677387325438616321376515886426352777571771442148167538188747543477216371485261244684383744584883421755755142232311336671746815856838571785568785885534615886577346715871417874574216344843287683368534565134587877328713228577572414866561886485286763145611155315367622772226615473457837641267355233477588265764211563113276623215241868573238326361342666888375511563427442368654547372162518228366275138332314328243341566488173312824416314632356657315624577828671627457481326147477126172831567246852767888282146417723876833454158835685362265786535874374388682655731437542727241448734253783127217321731113784834517881268237555187641757716251626163286761685362636777228814663441355888868253185431852753875771722122175666846258844286142331372281417542316532523682156285274484111522652111738164361556264561671443574472562447832676318433557368226332474377142816513252517484323545668787668451667153311611747168213277624526281885886527287612672861432843263338874336656283457525367423446345883423755445487328743344375828177136418124238856517742867426484817344223315282528413516355651222843151381867638666684885262373437331465223886531886486828746741571224735182425114621118853634452171223388516614245843815738345448552482122788771172162625258661323538442272238244127271313348861331334458362862364747577778665765587121514786613174843476354512667268286636383362722751553663448353842514812247471353875347578221465336423546155747145338157175233323665885687863644377353622831333585684134721185221825856156678615244347688465674662837533867535226652186644217342435354352112334856655425416337571166583361513587261473831358124782547475485442838846815832818377218816222354526117387881147143553541732154425723553447223886748251743658251418464364253212583468453725687417314647763754811857463442177725346471334318361432377338186835266711781322854867285177587852467744584573675742657235682456253644188244572165817621886182727677784625731836236855642151783337724242635775264531752863123823481722651288472834561354632584734772657744373542168712832281241585461344478644526466351446257876434224363313361177778484715561363472725746178244572531677844842876237478673667686826684245348484774622286521881578724337558268346765585216813527418818765382233566233323763135873534572616436763142351637616852325733584344586512736565845642541188848131181656581827428641814563534237314375815584145816863171113523144147618854367425277483213225421531161553181448126562778281418128225377346387888216481376123185124327243552347357664317626136214616522473673178516614476776213631343186322688348616725163688653743658151288671457136634568511455476473567246847657427442162214623467474285578422723634741651183816644744887816188157432454261251885375365733282116516728745737883287622864281457717157182372642151788886172224855436246132312127184688866275547672165378568647256223271585221855122356868514385624113768441113274178373383488161246421424282425724457457714371484743755864112654666513851487484578731826184356483241213347757262654713422513223216227221852378251382541767181161488866853281772822773728685382847844316583362553611678628748148484524378615427757533554448828828377415833574161584846151547511117755148366448217258854625536547178682585718726343318466121341248715831421168711631276847577653244614425482132112725476831786177255583613865745124362825182468872417774642336587182273453266262172726282181746315411443338853221183687586347538148671624575587564438855678218213747716734471716726723347867754735623815111287575326357642236361717717425182528227453387266814554432838418667241182181724261336735525533268871858268826334463716148288515211366248736146271437732421377884821315255568274283866274822617261887463625341638183471768648522321134166387367846875637517251378152537354681552341421376258287111853458835676862521244851848325827334773127665833657213287788187786862864747811372213278535232671336231315213842127143685224348173765513174464246157387575671574532177183588674155744588766775837115521736415466152271754417817368832662377435282378152113568416455223327261741534211417431461113384333228281724344152455583561716818227717876877483348755713458121688578837613418448885566477156735641541162313323213656165566258424575372478311637664376484228757873417626556386254257814185177563774546267864348462832437612255443867281656182684884786554471882348665781266135532861326761436351234673461161323468567712554286376624661334362528233624441555253782857582124846535714327861456415587127776367532227618213227837253152731234883762512227446835651656716488775738878761675164686668116655411583488175221326756238281736434583518426615644188617487162775781252158531184568111848753581171253867881886123883584238185153748114813668431481455735734116457367434611514323864224683211516311643278346375342754731216334555526544238533253138177688172514663373463425382311868745451212634568526735335462257788334351274547281731868475366743676777586127543686381314432776221718325187558877224344644533252317841528834883311784835388362412283311211358586646786836823661858771567564581251511363855838874538372718227841167184156326272335738125517888615212376124412632765433183753688811148417727171837462766728757645716324185861553165728281765516774575852214236234772668443713167526667888163683732165821282284125378247142111151756328487224575214735618576672757285135553622213372723466115341761331586555742641838863673774857652716168623757557412645633785551447252173157528326442171151672336227383387756654268346158677821332637867441772288724286265833156881783216285174153178383555767537314675161567631645542786473812742861166281654725171238777778133876683478255584287272265648547546266214275345352241863237258118685113172675827218715235546417843254538387588161126338751557853374316846663376877627664321273162568858326514213162587835123336143648661382422785855425126316172155128718556783854585154762141245353331783533435841256684787572624126882225164638442772227575444435225836441663674752534488681148621821332385653118163467114118847631453653725285288116816174844674438351643237447327865368331767217748861253614415863185188765682135128185462862158465644532156241412427834772154867433573445248786685557643748315725273287318887524268641684682878164443873768381325345315444382315651117152852678773474837137827588566863735564552511868468861671337182165687644882557281184232332611573642573167784211328747832662428781647511456777828451328186838474545863627383654366358368653311632877251646827154781484366254836172566387581166223258243768337516664354778773181375817252774635317411477233438546733228383454851467125534747752142253658115467214872242585137842224281282314682771181751134724646126783581868243213384886378411217557417212682163168458753413281116526344213476673688372238248348567882478427255285778813823424171866274223517776852852711252666754542621876755251323214225152714257181775232323422332421836216378277833442263572374523525813531226518748133152388347666836255364821462145451551272157642133368327432546183727833118541313615334265488775756356627277828248478584184677354575247632423117152172187465856325516361122183584663777282484275343138647556513641575412356765815375718662377352116527453186354852438116715341147761513578324618511426766887687462588456444824532541226525172585345261512158213436125643847756387774535786667576877423413275575468887137715238826338366352811154113876324543485735723455646427725773215235575234616628753182544127135358513175223542437414567566441665523482668124334664781644858123332572355337426754233864468867362576322722323188178145178675528646335287126176552555762631857777572261668364538375867117783372241133181686115144347127567883766466743722133617788367134521757264545887616144533151533141783521665222682863475687352536322633766855225872321856783523721184131432813517438182736785166642145754854862615371154718813547458584188243128247324784482625236186552276147168711846373254446243467643356754344445744125251541846422626383434434124486628341485233364664513853124531888534571654151533584456757872147811825882316126445586261657453228822512327676832241823888431328321447338767566672644888518332261865665342185558684751761414676442827148328462411473531266382645784367281614845584814587834784441767386136527274231351113178583568365667285863853174255164873846878123532185181365447152428414158132472282756554288681712758232784817736868325614332112876766556826785353271327721827716381842228815581475224816667428745716537524234842253628373782775353825444754827631652387267315536785418482743313877814636127277567164673724754648515834636125877352738672123584245617237841285632511247351378481867456821816268386111816641351144756547314837526237377517333344476682288677411231524145578878184654573247887661631214663322821353771684481364114124561853625457685755811517617126561633854268835572748868331747563232487524274618573446166652567757177535624754623623431613726318676486155412563715725582744162118428682382455486678234377375553454133823767317673355654578641856425417782388764188651678651655154665241338375672327482127188255633743743762416217844826632527777152142175226844415486235187562347128337826316614251731438873274685224575212633754516526162181458677112323553484541868676842587452832161173882453546171765125436381263837237138142658483182212831524514483856557683548418638728542517826363535455375336788447351221828316665372411613478123525536487838663882118178176855824447744644371366446154838385587117573124122255868632784734158465384353664586148173223683658612232353681746127125117343318731138752272833234814511814382862874521718557872177418265654552726375863528473677577114331473625851223462328644588168258883355427448746574528645522237184121628168624868382323774654253634486361337425452374537114126488484722721633865614754332343848587666425557515272237657787753368243445111467146266642272666584574788186718614882532741673838187233118478111416331572248513217827887783614451244752173583521362757337367328484471345214436538415215843441476785576114226468466577248183736575634481722267262838424373553361541856815237615718316444486784445236786176714341771535664321454544833337817313482211644745778213585635483881285126742235718686123373487477464143427211657386655853817726551621868748474223558155142824345374177852761888214728881778821417626418655641662121671365256364732468815278313272348875467754733141811424215433625371723568641151722438841251287426414732453124763525576352472328535165761778226577642377376475137614242835827235816244668367471216632471848462152643768783547337657516661514466641834574514334711627874612148774433757817142427241845172283736771236824784633227778876263253831621873427777251547143731742114733811743687464285818353883111354511384228633157527213113421212333358457122483755643643652372562817418222121413576727784587745682413131233844367511485444385455356565655656143514618851146582774447673348823861412186287723512822478621377362872177453285555627752411287572778683415425647861623568547816255621137536781587521573435333617776545417157724545283343443673231485832717378618388378531587772826226166752387387736755515483252833545872172877351612253457441531554118827762666434658562115765722882751214447772214732832525184771733454887643561843686547224318373638775328563336586327741837763285671362835227474766516286171361434531421582448423744264763888518152761721135644177485547714465337324363342515564471534175527127725843746183651665688287326785546242436683165837413488832562235526655115877462878384274411284742177555143858753373761212386362548114275532174412685466266861181511135648556887733466754141618766875428862636121164748244722488754855627777551253634327466573555827178554471255435724351627168232836853816173332764218867345857227463461138857742833586326728311653181653355116388218447771776742246783725375172682215881668323284843725323872657837234357755245535576115164338673213688462645274732213625255674111866473555143273484433844223673371185141521448458782153162386631638744853667523157328336566236361351413761232134536458163456158685483638757637177621416648115841281461115864472224724255253627346373174547173862443538742274827626522643121324425747438617265884356276588386645886435416723473424133458477657817541242538737775355312728272147713887746481745462653414138841671145436766841554486646746386365441653345846658617438621448176387353257447274751354235736712231653147788627668782374564825114271255185633185645731884373583177758138282257723416182488745728284257776612571781516725486837424841677855713583618351486748382643427773433688626312321682621585484277427453885522424573625462572516415852327548672116437662881751412613712555234845557122372126237884842256778868414223427526885454855142375368718387318637434878132685434121117617445178478776756876285387368738341847576531863536856273878562216756622834632555316822221143158342674844176747877361558243545236312453721465733666688313234746244375564666851724553471414754268267481567323812456362128262375263522365156156268512471186722487326251656123318825233238421236158474416165116817272452118137414347755133641381718532432112842873735118463463221673872278864768227638663565487565453637235313881734351377833671733755545273167217213832624658637671245423486277117112231213645518584612142331287887777567738186116146327551261131424242622636317528841665783485213626485528326677668745475381521748285757758134757438846166724568288662523222567412363648887455164542664645818728623846546457855126348624872851572743587788655763264246311455511454661251223318236617834841257364431423284422111477261362187871824632812451322358143748644113282365433374466568141384858468355278382626153471451488775487881527126375857886532647583718387326624148514464634585821362256678846447468816846183284387413241742553388846312877214343251144235141146642448287678128182613886456262832736653582158668516885332828717172334543425388318617337288676572475848871576477844764554237853281681354112611164547164173878288234828426653351472357363621246635736435162116745531464486477752341771357434815137872327636478273857154864854537123722641887876277674236233353722168834881587775644634447378557434484854818776448517123446268823457543113147483311217133441312327167448624558456144526757587625283834565577281865136628264516122475782321741886486637311761178376764655346182317172768545353252584856257857287853711652876818737231626413388755185637835323252841613421348284451534326554436682763115216682737752281525635485547555736265445381116237481136251123615372522111127642281851575387524623562763545475251846862387658232254337282686823174472567343323237537453388147356481557352351264684415311315117446468885786721871376577614871632447134214882886682448771375127338138258315411776877766862261683566488171337125711287854666686741456165768566724431282324164447451654311727265528647436813846543525142134541668688243713213557471872252265848878581747727241178643835143314362827617451862141575567248461466635416847142725743116421324162414812313167345511516747746841251357178355146466127662223827683425328752435733541326238186855864266158868548483272564271743411827383776411346365437546681846617137173623416241678541711564212674288431662186724645433441567745852761585761143283735146714544736673748875881716258461211232673841882771445233747481512385268464528617427812355182828117332267388336677547363848737615587682122622155578422426186426843462671423627746777185352111364622845184823417153457684551584635826285674572446688535551426751448124358527653187142563312886686568814835387516477234555724484217765857484812558143415844153261816588318486622522462833117321112631632367831688846715165866564744726654414278241426884542817183445216227543556588358471541448781867351221443267764312335476123721526234345537412483635838312548382822145665265322241411447282232181285437815246362413423238152327344574374587282187116811812244548183482727416223674374335228661276526465715584752886485826574672434647324444786675324823342778128153742386475144545614145723471885876272728471412663143324538528723146334833173346521548667571438443173265541474216857424848152886861887228236626868327428384551724811332312163431837446362786775866165386251461434867612741384787114611826158663161586342177427284364136638312278215581414223613235647867465688375735545167337327877742278657675335871244544175761314532414847571735758274577244862332248233156731373881128713881221314234216848846233335873272851882171267762436246246414683878845721537371233714125665734188654733553851568821338565155232286246452647414466455422676818175718422483231376888111365133131277738865348863538148265448618736525277713385627632515748371323572168545772421378216756784576542627273437661665256748575134784525411453328353878263726381646784445472661315358276155751535374675881156156383367571636785383532121183715214217856681346845817261241227614734586256857253723536321841461858118782156868712235454524552313321756832625616778882444766664185276731618835224871724777444521114557588478662755717873714856836473312726771556233632562157351858858616175212485754671876327474835565371852616758327476727522675213446513331122851658816428656377238845778747643765663325841374754427813557437415648861225258382634384251113741124876688712411671761286864757526814643321432265843138486777338877147876681476147142151335234783284152626461234645712512124563477873625167272322888651838845383777221327242343288262834785371355776828338233523246435474813617383854784474746636166375343528145411455514874226588324457478151551666833877311635327668463277731657821315113735457282715173563635236837434627354648421188323246665157452831625758717713414638862567124813842537217555416845542485764852356468886413158624234171367654848556152483315336426735867644185622883238265668112452148878845277863256273428486232413856551238533857533574278713513565237312764125545883367824275283722513458867582282274566151331527448785448267444252625171122643573168513438134455334782611744663665532544254551741281157212537415135386418834678368462758613223426122728677646363876722683872221572331257732435321188355313434443342367211151357157881472682783737122712564518112757516342232171773638576816523465873587417525661833847315633166352671126735182151125542114172614837545388718874673736115423351344188335365738887247815257453243528148576758725341112624235456417488356538572712523355767861322126112462128768127353486881127788461326125582264188817314363148655684155522445444312732828731686322737141854485585474636225885687536387373483513746371662257486746576872386657538323351266172366875671718542881528534547846178447812658364433252124275131415351727673616128135817432685443147681257135616416816316276486656533517127557885352578314553227547787355722271765631527178357722567464146751417667781287281848285117162744584867713833317462487657265416523628116455486314228642455663324684211546273474552226333588787836323464748153225333836873738322621834118622183523873362521543422475575153222274243431588314625533177578812786816241868716737381288824861751441235278758213132726378665422452545663625245415276875728451313227652678813241365163324831626638164383771765818472724863814664271368355342842456614682882425443566213344584441161548414226756714482423748348826641377718145733862724265618662335151817812452728616774451124727431181777781843778264265364756256835521486157185812138632264488273341156733232788188532418754438331442785114884851573631323435165721815276643685354384423635812573241754177127551878127351741188173655231633587553254876831686284236656731645267478544236266573515867521352565311324644131675515218161753618836637253262816557147152786166636385262185385127588481541724276873481361766364724621742523818386523511286588867111141213284171447658448685653558234344331348478822556433855877761882485535231633875385251415252757666881213343316783817724331572328117687627157487665146566372573451238687263161436111454158217213282268675652612162614718686416436618544628576653531117677387636364828451125651611777552372752255324268876123771757324528311283635122616427685342261578221216578252128666483637851578557377512527478355682155726542556882442661477411678852131454516865626881517125171645545581627315546883554435611641215632488286621111362474842615785135764771423224256165255383562272667713525734826633758847312178323653125218687327568264652768487734735323877471213128245388847672152358524452163441152382272556438252273588513423278415281422724746825374782648157685324333414557346532672755437267756856264328723563642783136828415651137461342385636572885246284635738563366263685141218324138213755477612827354558548277352367211627347146848182825513337162578636422835571475643783286668734484242314858577212577867345885135126346418363281115812483642222423224455483677678345274455346575786348545778634528243355478737484785446134666188818385843433733372435185558867837544188137472611451638372278538441528428827275786751454638387313864575267842187474438568488331336641857328228166476113852552571825811443362735561731683525471432618411316285613383438482835545765613613122543577582131388451686834361663584722637446236147724426454577544825757518323687178572333352225214681226258175773417387634715123552271865878235545174844384563828247232475118524188271521666135146538634382853822716764517822573232764851126115855548181557716186231326484782377713478444322887326355664148334722631675714663181433858168163242414542678642122751136838813236364487623284455247341514282474277236688874326741632483728836115735282678771535654414742612122364741525513355482848874214123248674443854876132323221212613133667718155244456658846867717677814471486877831683387851437286656662712161568548534335168855287554782668333353716316871466552377437312311385673861558563825124536864154273447415567281143622164431746225366674787517628651464824665486671827414235664238363431887413737788315688755844472781546856316676376812787348783573684185475154377638825341371544561868574176272644335836565331374137655251747823453616431133636146712425468837361317147611071454112141557541844834415276341175256357418721572875885213716712226758256215754128517788168426638171154344821438146825483242774478242575647476352141658564622766341465148484186881836841823265481544717454533328168353452347574515646587521818516438442535381411875581157218668368828171678626471511315276658356855558586125761771822116462464258622361173326162151831574427713644867645644442244217853884762215318173427757178268551751334225642656687173847424476562262683236482137742783245353861787533815342225855715136557822652122413184225667858258422373528436564534855281185677226352363875548153555742727175517213436725145852374467621484842762662441555221315652321835481263111212863474274726644337846861846537325531647775151571872345888642541763734272774518586787886767678655515523767827747286873338684531756415452351135551818232667286272533168362464685776351234143432672685337432761445241764835367246865284134272132513358348846426673888452541348266563284155383652651553477473118735742827423755577641857716613356541637246172641171245883351556316848421238861877683352574248735531272281684752326223146566221733756533377753543361275537315378234555873654628625614853371878818164328585634582733887886142142825146853125242332236125531681588758545454868762582363723452227283117251526551421516555712138415723534365677626647183541454881543463785153825655135451582557312625514721278312824538285122748671881377185536785248727425366214781537484653132523415244462152246351785732732173133524152744557353181643436512514836388273545842147663125346484557857732253756522385386577284328111484665842664458887343137158831675643313268272231532431333885138564511784722182744684484681854571637726264164327744774321376445125857374687276621715817813347425167486532126678436126516747378555312525426652684855626167753367514736448724141446164466843248616776286667778783261214865771421765471227613552564385642236345828463255175831754273443266551258665177555245881317218536888874451155521612286384725368665523167741358131855645186631283455728388485168154685764114123164316216242347321346883183462475815586866117586631178355313447638357544852721251258844271582352856312466525636427813437243345531867125446571322228228538534154242811255723515683474834887418774645356845886132468838435835871845142412187661724467471838287377453514418236884337776446465254186126164177343763327852517773751452767233563821242815735511676383565885823312183843432658674314221426175122372563425346225612134773262668867622838254745126326662157822877646815822866264583231115513781332882544341566123413123343588422527733733586315315574715734666585145838387675213431877152585725438532437385474733582384553135345287147537256286545672186166616886617527143322663211316674114611441783563565338551357875383433436223246583785457188774173133475787222437766118777433832882238725283116771247726238527477287636352552816171758273112518484357571743113617751435615552461556122283264532174127554621534341657847362475348657111248312343325271623727143574452266183884225614472321735688185322587577161316645547226785662861228874441162713856666112358415124687232818678171434135857767376426235485462368268632834617212844234473688783711664553673411652145443428417477432486655663744825231573183737336575227482436784124232136326758564785342542731333622525234715433822252376255355227441523161524872784612824241738233285288722378228575447858812425415581563666378733444331276138361735543518316786212282828678322862525843468215575415213742468666434677532527276384775758815638832481853674558884442537584757411526318247351756352124538822453474862752387441265847487188232246631575722325337588317113685526745413172714184554544821351812256783762557137158114216333371265552888151531885816333623522648881186653712762467662618852735374181655514442554437264261818447543375815841656266583666637378618137374877652837353326848464314873612785337477323642815811311315336223445274872343148681382182635323557773771171874822121836681282224883347342416585367151736526644743234635735355782567347188333723713365728342586754288688588571562857435131778522116863583452267361713473161678476241451762888325463417671418157767774562421328535563886147541884763885134736658872772542113162225515725268884583446587464772653324482625564681634858716341416314624572115534214688578871872327656722582225342617633321328241626354524345536666511732531412148745857888212878586345288286311854546445326221766461178558257853113626848327814517525342837673881332682324171237881521373242117236355554662744611363166472352161416138185276417421426262366141181451361454185514546828626422286312337144528768281753731232357877777672611577284348232315236685568884254388675668687488668347552451533658586268685544517118854668423455371554533254211621576118651586784828348355653422575856727574751812516548171883127611852716258356217727483572584831125863288774582874773687824326175663668546656552888858727228524287124175721463652324886677348625536832213328573424861545466148552852263455471327725546244855472363576483817641588723414858116231575335385256772664674231741268284736133345831263332624488113132565874817467544764615254661148266352757654175433784416478544261513644276674827373474688623646413747865511788536832812534517255281186326886815365435275516188615674463167468155658874214828571227355538375857274672653252668687273482311582311644621583768445233263418128256287331351633344727714642624346535435461188423763313474525545215417514618621664884733371414182537188431152127574556752583112832737631335224632184748815873665815338468581623533816563221286784487832756888842747255444563828427816168727712582417658175174875676173835663532648212168474763316672564112121884725688336361617836281267161251527746676124241644423448853865886432765576567332331345831233688143721444657582384135628333663363554355487244143255787721154882324428858741242564741523385681728751723456242485568587526173734326364316631546151628461234177215412813562633118166824584668278636527545774671557345462518426151428261327474518881513354853528337742843476434834141173165487881462536462714314365443446852421454376521667284382712746148382114537358433227657487671184681786751656385567413823477456535275857583228536373335661225735153355114112155371623256737427684528786216213417176458243651586658335125733643447754675512331162885284467617743588523261864666536155288638461738657532688626461152362332278327853713642623331132368153877778642583863685687487681566562815566683558874254581858173318281424181325774386626412476727487235215333582671332868776538364747464515824688472577536848473837434872144428857272614388814216546182813311213531787284245232583263458346437677463248233353513585717442172541443337341345563522163713671742446746531363488612667855883837777233746548777755622574663133477312243816755317776684267537573463284551886487842522734257112348235351446146541663543567135236721345888561725857763235835228881875241766855147885714477686572341452537888181871131545114621744556316265645731731554155576267384132324877251811153267673116546816647113885655457674211571332628358756256672834767885824623582436413187433336663238482463732831677556188428153446176231578363216862662371285518714484242155465157382281225636324334645856153335262142168318687137112564335268472376443171648528336251244461477513824822873512534818881446472812713382256116236634284234548681576613488216585728237327742677445763222618357518438827353282813578562532434784413165817827177843868227132426737241341238517118365774657758312683736716434731427813167824444623652818643633765535748382343621646546567547725335575415331277823246564427265365724142662655243466721222645843182285332116687514373465318551768578273188625275574877178784737786311326357763186552165544127457788831522868867283481111218824781348162264722646653323331783348174141234325546817246246386321284315488421144345735425254443463568118847112113382413127258263288218611467648664724183515588717787454267842518577166124371232566118576877787353231748833815763278187773533167177638522883561444454888252127533485324423446572523623585313753283432743876212161487447547831216158331385175877877788643233754566256275758146532327752732726378582271765335178867758518781178745863616748423171433171838114578742113484313312121125128175141825283237338665446555256635346415584775314237473717424154377584143271422812611181748824318664275164212887268748778447748416881484415365278768427153716444683718816444638663324225162413873823821364613331667646854215458642611333713716563336188125562216433166413384116817426827542662175447658184155755554353714847222356172182286678811816374675586677186352142466366464652738345883488282415353556863445575511265222182888431476178128647218785464341438378136612312366154848245278373276286536466281715765746362361255564277582812587242426151253847482881348581356736878352843336266832133573375568353257142342128327521545764386823214618848112643462332718315866874155518576612158857235636288547858526162442624371183536842766362874552313542768764786187372117213335162385168613173457876154541463845764142127886882787488423566851414627486385575431266227274736747216656342516148636455268328183571352885745417472776811812417665482541235463271358655615453281735151168326512247718846577616386882565554874165445448265685434721534758844321562775457834446675647684475776831117241613254872423882436815367365756737711267111168318661283636312642433428826834532587276546346117351267627186256362158474164475266858732241853545727766734348863327382222274237716353813846881222617736825135763517457458724783654516365464122368675287175265547167364512173216772812378862423778682743841137462662416158362256722885866836464686514711716828266454541318813377138416246545422254525225216111874881515866565382451847535836632626747141457853615488322775245324168478285577857467188264487881157862772146717224123616153513515162326477168851153474145413331736657453338774876821882242444287768315614382446617764674888117452453578675771441886151521426838132858524162273743245283814384366433181417675858861161422556841373378388227324877151183844317343362367371678673247327277615516743636125288134847761584125662322355864143112116884628222354543677732215273484183131143745181364724645853353667642753716813818157422814111846712553581886256752611762367353611562777563288571646483326123473136375133427866117456775486382382881181113861231863341858345475341421226273783561782856572185331332821337324671666553276175377367261264616131716558547213736334727884862345332157618135166668751547644767457668111628324851536376157414841473381152641635778264775576677375371485331318554162228644168717816843265752777874263716311341611482324716655451546726223217377174873321685247212581212238133412558752731152843687685525475785547284877653814271628346742386522432436218261555333754518314136861678416881116238222538168533225781512716867542258823726478458617655545217633748446785188145863418151241114354815241751461636874846561667661221442487432282858144666314276268811218858765831432557287522317884815867422811151716536444544131287772283884165243562826147221246121211585567753226364667271864572667677215177168662248654351665532416886265867515738362683741182242736253611362741463213556356247387128151173756581827854258864364732637415682127261825146614141223156783363241853825271852135143158384637522314663352126228371683383432284424458744546357353183477322531848151534185381783182318737882642227276346773562747677657533384222131732126378253537151773772211411244355853545888662648183823831844336818353848425556256444436487837337228172178514878531841388143442351864162883442112762762743686777462848744755836718876726685843476642225386855286252413738383347118231456118637151761244644675585425256837462333426232363342786118571831774617118688425428565373711614343728576426324863528226167234368546265526758322544552868442765486264636117516761783156181875224712864242183445235541216164543883786717176332851274862564678847826364163463264342435272648211162418862728215318548666818528583433171368256476817862332741761223238823517243511354583637775814876744684215455252216541888455511774324732354561747213858714135111542675521174738545532578172253274453512378757678748156832244233535783831562416186183485366788643888288756656365135861114643374363753714161763146234841372678266258418415248554236337163282778581181842263274517811414781577483213364282418846414242637675282512817374232782242566485234448566756355335472682725235755781426167381581634764123642874431172448874833516154155186374624632646532885352126138317886135264438772876128882362282652132548652231188767653788175826626841716136743378155111575766418253811264844773755426274661377254244232383661653355864346171465776811638163747134232322575632861336366734114574864685851521777416783576554617212542733855888341671135351437844168858314464414263233438142733321765686744751374364514217388676363813344331134151471762466332868835821351153155261726654353516116388184266278686465742244265542347247325143177422812783778138223644246441327126824258443146138111584235853564862347888361533241255377444787271475862887827842567752616772561274472267621574717281431614857545183825484448586115117678762583752651358461438111312745377116473555252287217777415555774685314326542667245588446562246316713745481323717854767524617435716151616415775277634473723322788475226457832256878836264216443481178331284116665264552167623158727657736847362587148846477781447874657427225161732786232566371168532861752864127254576631157144686454116313464881325648642425552853364654812187725481822731872167465537887714383837581768467642544614463843868357627461416771882153468633636328287534332126775878825758737231246668281152688366255481141853834286872877127821315542645417462787175361263634634185226436363112728143256481461565154616433443685315522822534586258538848858327424133822675614476346887773672223673833211341458251746625653842865368246341182516352871153416283786417683467687428264348276463747248525867636235758253767425465241713185835518772666144852555771862767421847533611472574481865127211513677231566275138444247611181257575815623441551265578416426212821527151354126233757384113724525344725722833543527335435777216441527251343367636228668247627337176812814737361578542533815415823561431421216865725848886116585817152668781476655336723233557158522687337175417846388268524376848224817713844724548236674773577155556117818871111634318773717524731486757353424583573437715326786413248871833342661613251682132463687253345646463231522257421654584125326542287117136842651723248341538383163861443244878636852842682581584787518573847511313166833752422867624543536854145322672856785682428543753258624743671575332716625668122413334376354327512657121684383483373781223251162817626445761171125364146367444335163417852725434826422125768883265126577651881357116368426473386817566287284831617482443777727425347557143533213652763722581437533344748163351326288442381311758754245747253275482415535332314381374758374657767824247346577164252544242314282551162566331716773644227125531456461677316457745616785386818152367333733445871457786336527278425725285215684625255845216532574235442853538561285346837282446535731833753676482686355244155314877546727256412662364777853478574337676563218463358614188117163563347654642347671312677688283146346773256372725843272611686612313172863518451651835166733553454358225543177718818176366678824151577282111587247253475624673177782512778538348724261712268473823778666676226218623353571175146322877355864684633557573347752243447738236513542564137353115736736621584822742185187881862251731562627771564441851426413235325342261728763816112743451464862212188261614815362143487282288175375757836886524434341231846844463658222777136246567651355811424676665543123636251883127325157583725466667122434583765383415325216742475376275532577664121652738218357842231451517375357471363271773267451182253646842486128184233456853532714645441345853468883215856226157132333857224537223441615876673452385347165127431742762448714626822246551132572323116211787868537413264246112883811672461224853684671112462237527656758578134364437215453272814635172116811817827747371284451584217468125613265825643438845815482887716344652743474434428625722612257882427512421551852481768848164731662478386143235844127828576635612525255858748434546385344524251813537171164677187737338377463558728586351635244173475124757623452371626776861368676385447275222421287833531337213512626212734635452224567566144384232553642675326247555177683278213257128284485215832211146354344228637627153331884724587771272384866714266281358687743387126213211546164651375125465785653144361875378624652821166323758753755824548117544415428722116553844215558237172181318372558214265675217282886715545448584125587666373163838528161374388417557484738716288147622348447477811621718678358331163217717553114775752486421123178416747618671665326266817876885583276527553221622434682258844454668437843365813726383527477521157867433621722213588847455824888453385234826613653624426115264721126348731166343212323581114576354585434242745733852821187526848168523136786161362131238651812878736611176774476681661283884772632117716542886652675465755241863744631375264516442887261441544838882181264634438237822156162531426373311748852761368434142854663312238874768643448372483347715713635521666687512585445366227458622871857374644454187381818615346282256642122557564883151887227887171444326532175171453122438327183646245718664878671882235133583764287644372371747844154336545533848474563711482856158487153362636242615853567463268675246474617133753445672524517435145454781611545556124733371183367811871626642386865255543521526816152131454671146238771783744411723183147263235857482472453464542522782415638381631855186114135876645873126515375466643423775874544733211462615823574772738436572132823868238622645634727721565445637831814573316876124766521664887682478747765438742387516641248678433474727367812136584825146665215258582134725685424526277741132253273872461616217366645236211432418414327177668285866478271228831867461264147654857563271362862125432558533165457224438435327476131242262277423282345274323737537528416571427717837216344584846755613861613258523433734344644181322624643657371531513687133512344162543775314426444714374685438516457612218247552848866413525566818345226246563663336833884512788383522385653835325577866427363218161358525474672241117446743721633635344553531722872333866858828857458824246825673515763155116518125814187656224272724738887624325873377223412836777237837618647885231113153826552174537364845435725783155156478557127724374734815442657868567228521388486738236472323116133425463211148783413626458726276437545853834873771153714455764174537781283557485462627761116271541181666722532275327781881225846145223782644533134413568377772552144181352474643684641675131246426535228866482662713436648664165685817811228353283146727351427153254822131632851822388115144518832183386831182274171171265525578777274463572466765863676247463812788845254111756311378888416617756447134141625126144641682838664125577578632233844878144846771352711355227112853452835386634665515617236816788215815214767812568736528876653343833124216657412152613616833334674685622157515611762218868882821176525421346724816677344281152756128567352648111774218674651536314867364235235763371728342312612285882111588266212783427525685812466367186164341536775317873231346841448645741881248666434714418213214645328174287762472532873558846121528426543376232372378582286757816728268267887285328838225482848581277114581378867557248447548168277687754777445857647673284212686265527163823165848666676767517222473251217425876523357132482874638121632541714463787662467636716367342263844171356281134566247742375553426825657174154411732575618825866638782358655166755871222171667186575772424887378544555468416716432618557527345866433566567224567618451222623828653615338152577158552643521813574442175857765676243166334125361771674258833557842245447846241328884475448482343167677543767856752811524131852268633546511883245442161263867251721645282252263674881674846663715878215471314343382356352184445531227735523813343235461676171342468813422422726781344168776877682677881648871256882368243517467233183753722514381137518668476816365227256176516375146114122327142221645353671314524375343244545437417114177778346732856262633276684465571357858532724247872316533178217231635258186522418316558734711384353845455223124624366858111235367333777866365346343135516328723646881476771314547817268487178421668424787788848711374223637635613315382276767727443834864337554855184822655447857217684683558142526628572275576187826383614378237868436522738445233538761857447232265483676327717866424516151548756163141338276861623741112136177475748578257824183834545727136841482815832684751244564745328818627528168314778551827468682253284643656256544551658156183217136287423748488825656668867757657176585571476177321546511885432335652316854538121775413482644434618881283626688464674884265215672642666148374377325615772818467648475276721228141377753653686236275411148231782538375557584876655713774716446388234448365653127658546873687124646157674228436353824573513112473657223542174776764283253121235411822333541585343763647656748378877777138855588835211672155151625184713715324217485233335536687817858885586824433845348568235182777476835383743713143881573278457765228658681571872346354373275552264615345311464254881475458822138216717134141166552316543584664372652452835642864711555462847176748851711364231526632778841745136582363465778436211178673724183623855788436871366345811257654136872261161438153756144635562142335428282334846838581664222172222723643543147486446168586315483645676537742356852265285783112165383856617531286171255725675588228271522132626185127658234484363256868748812526788322314651783175748323311232877428511646322686831733138243187718756581733167352431313326383163626365448425847681777121748723284437148551742611485317858582721831332386841222827547318258827671724511312421372133523588187855883153771188626885247567276838488665651628686856577414827572586264618667214861334132221647466271541274651157776758872846458266237825877154488245748828255272562323527374681365746617681774132258216142172265341172721887467283771571765572226872161728333112186215247462683172255283785263142663754382521525646833878556832764626243385156287877842887342474655338568632451325768855776585636251274724565656231716472617771563346438772127417487783831428575478278734832473237664166278683746435318418546535813476781358613156356883724144644672857881832816533828762375628773645542282382122814782678721365648858278325276446532656348875226662681387723167426653346812238716136632274586335152353623832418278422636775475177774752114152846777657436644758617678856158324513344174318482138466431786784241265348741486566418728717287272355786732567784515276144828646548234777132771711425625264144458468856326464455256434822122537164136655812424886236687568673186565732337235335825554112641856363852755555244416833438381865583855237351741382684517587684851815125652616435512167584123415285467131361614831683552854862477184514612667621481742116211325135553123745687436126387114146645762248434658468662486867447163356461471425132115725518343228252765514622235245736144548767458616263235427888267543187642486464671171522172615436733216316621185753722681556771553461267538544681548724747435446471216821732816662218644486812331346537377147712828854381657571261833467377757526572872854617335485482725667536744182854372721326455347811338824173877476225326563284642641642727722325147248885772846272353282873615376156143312485764585515668146362847348648775422472841213776511662116161554156352255743281547272452655377773275462843832673516618664212646664317262435388345676543641515367488222125521245721443526573666523212424545636818128861387565834314442463615483865863157572674265226138111526728163867786164277368578578382548546711681856141734482425122266727568585287512675182834242437711624274464721655734127148352232764348652634711883482863788868725851575725855551586753738785677748584736338575642386671526775631386768218224387434767581345728527782777381638248622472212753662257485235314787751664485637614781536226316786247362721184752217867241777224544342284388435325178884577366327722841136878267445335441844666428673476741354287787848633216817446481235861886736281161456147553288373738535317884612416226633858556741463561138585616824687654511842855813875532253552876722267838734472348718684846742423316261243352576233118363843182432717788631548738245762123118212488868517653345235618562877718617561222884874187634557443278751574385452548155488724334623384853477681752756153814846175314716612262353485711652223521127565735138225232377141362281852677267466458677575481174813815764551164721655514711828318361744816613152284744882873771467423421172186865326412561544652514423581665163364672737558824241383547375758175228463275176267356522145682266474481318773216183621432181826553152788473411118132275851148412477566165422232285811266372288136758566677586476844651375264164328343121466211575811645333416447463441184722565736868452482145558583612151313883348254451232786443763674672636862853188273352563741715348423275132146124346264254742336374368542643844445233245626838324442312235536542221244314866887118236358668331222336734721476886866268736768451671333412226515868656546271226385877334546714186133386671783482681178514872887551555233228237484168688754141465522285584416123186856542622658811781118426788287854278146822868658451168757637121517173671567588445248174727336344743271214654667878757318732436817872162447861458844641374223471268143856411456447577625634678663376533773825236875626876422187373646581873285751483787188385184164334387564751861815322348427522141176814485158148367562471837248854515812226182135787686688261252628761873682452611466786421183354847833768612842655435663743275366636123571744111551734268253476118626645721887553382678254587268736562711418231551374311328243675238371836858562311787488168347557455545216733151216845448441885647858475238234722465626521521742347283765675766824255777545381524111877526181458834122443172111511615123788744687616852726636454482611145821156884345237462814344274278747558727213735673563864477553417258231132112648582457482347554348858138881124568675232423777372874553423274247776315217483877775737248157248137334545854213876266642354744727351761363443321117448275351712534226811252558658164887221782612688481213367381866856667424574454418421323248235532864326642776827735467757347816684732215351148423665222855742562551767383166815278481355486654578352157854352846785827267588826548441246377448237475268635386641573666882445355761154626246826642867367573725362864445756128778836761328586783551882244842426471236255172757774541764755114653645162545427365331366458651222485658423132757142148352326838745411358232313217178674716558244642466178276264568416846268773226351665344631254112755278157145747572123285271356433616671182646582313528113717527454823888623342478446124881723267625164844747645256857154215188761437538873457664436718838237272885454322656582512282242662241331772874246556323517723881174215758156162484633173823322885116553237842677256135426625514272546721322276668462514345483462632174675711266161337722167325547652781446253866581443648447688231428423115182728858723437264773882748721485346782771728215374564624613423816653511572568787855887134463361685846811727753545745257355588657853521317674115576763685854476377381886455822271834783345784178875844388747666651745246772881485858177633588832813286732622737128184753713483651665128357141848417884345282236351757754267228261655171366488775767613185426113665841636346821184425632843643676276341144332412754183286457425614435238233461656625144346255486441121143186138482862116678887248241712761544451546723157646152642438523644678621152436781563447376735168214145152354841677127416286661371655852754825173472332517844838614356142531188144243161754826773228581413473384364362354743182228737778734623151354188532441558232171558122114681115128761582415318135614711871681353725764175326886456417562537534575138547636432637375713153772741813833313815275671251233462622623673113411575743735524758881238116377324443834764436818465478455251577183445538132328236671226417566162376448413332254787576286111314542753783726518677443732283231554445674633343216627881726686622762316468314282853421567744576353558366883123275334841732278572747544214513432621625754543587442312422848758672748835458475221851288141685563417317528256748744831512562787738636187114445331483551666556385838537185241638675636664176626378787615878542276716571177311815585132578431358111354328256826433632788488582452184525142638473346485145184881268521732154613184643856233627315834613778348245571572882221621371642835738451677383587477446334368138517228376726743351612385772384222141165424784638756585761861882763446147184563518768143281766644854657267574884877857267834585152184816462752856312285577147211128121426568622448257726687278247258387525556382373162437845731552342218635334158435345136621346532617667761345778428132751884244174517382375861428478334371414768328755884251367373215314341637321382757778526111327547543615114734871657326826615461734252463742815542171662418815684771627568428164272825155523253631768222133636225116578747253283831727532814373574212785577553856688557325443687178855278845311661272123524584167834158621357175611878882357655525681362183852438576166318141263688435532826736352167785366453383332785544387638736372815511548768627378474746787132887548263726687122638111756258157868486447164473645356117684686271786231617153476878375154284477456176216528757523251623718346788214774546438852273825316781466476765371631625718282472761774532765164646666853843157834173182378785756513714265141531187816682366558278236523233746723618148263884823533284263457718136847552721362222416524435873846211652734866778881648688886242733487668635411118731756322133875772325257468465155187438318553712134355182688881466876813767228128144621856443255843531586467876787858514225241612652771227675332773641732146776858234846421124782233272475751255738281537388375557475671835817552166771528246753266435485176712665441167158714637437877285743578671484281142211154828334575783446573187262888565633563526213156772652535524552672887858676678437513335874186854134771754278128548448633713485587176627786715635361711282441851454683573731153586636646456553354431755647741665438164471632534177753434864842271254382335285513155487742316132247574666856473477834475576381162735768534843872461725448767732522268232375561317455668653286455572251378513241852238251261726341256352763187751178565682761165271573461641223272644273236244338146481464173351282626648424423437766771854281861788458487541744387132126513358138642657213354373156355675112862532467374361615621126581787655475687425843678222278514581323851125867238484412381841415417353163658567174584771444571272526588752465378618744787812686455774761514133168641685246412753481566334614572243273614125216526331668281627748754135486524842565617537381745737286416738238453524446843623763258886671253165136437683522617833728553265543712542177811161451418461486116877718163753431576326731735283582467834276538344573325814534773686578664386822375567737387643672186654151758584742682221852838187751865512566812661758514384213655712162275746621462883138221152638735621765284717186868877583763613844187324684451754653278422783154224625272274861382325237463477766817173862364854782375223437872667276464266653648876255117466338224757844616156811586783618848551813316435131787726283534427441536444276677333275782254363716436261258824423742387268316574833326442841173453558465366622174315618711814846263166363142218226477165125216881766264465356847672155537745542285813135557722376452824465528735386568732573767423271386745435122647221375632431455474835474676716638434886711715158413621174755284234571331371573588452468523737216365365363182811556753422684473728443556826177243428466686712173684658447126782741653423658854783355386767524785531863215787246278775153525154627761677224148436412877845127576123787571682534832181472184522374551377154273666575531711257186218744656734161424144781573477668351785465442284355344482616574416555758814271326751886126471482216758428747831272861548844188726252284244684328462283777247135752646732787385743132316282614256472154811411172882233427575681118272373478277376556467825455455141747685661115737134833148652823887336681466841421818324858611166711236263834573344262337784511357161374344382526611848385642746643347468865736485145674255411732265618566145452533281213723785668316823284438652137757116182368258452441788455535322782287431413158753712444613214154361723521872467327163488425832125753622761816448252262623372241323384532537168554646724728683482737872614577431462758387236276455824172238642485531566351645147548647727473337742564365148514437168752356578831776874575415816413454278714366425213557164332842874483371426228438352234234387276623826864386286738812131561357636888553182421181852735877524173633387563414221263455518121225557484811352468153185225284226348254355446254255565144264643874568112215831853566742357482656711672788182283221781886333364145183878748634846135785434457723182175836781875554734843444336215111353147113368758758164554774151176187757282663517221636621126674171463852134455863613361438166275828722684235478455643783661157626314464453657664238274417523852342687711166813182516127735731855781361354652821777478738468265322448274645717445388847885718841745661681862625712466852218168744166746881652318125717524582445528383172144842443181522166272443347216167227463457411323612742632553836458253217115716163716676513715116133358637217571732281857214425778161744554328382287878666174352868848482483488217183831347644837427137273277218665838658533576385254578516473116661543252526852147516456712123441214481258824127834571827635841657157778362748238657428277478144721268813647337313622388134645284877564718633458421541231684871474832422842856758571313438537535135864635721273231861311354674853516878432258438233823115271572833586216382812531833834527266435342858657428677771761772315815238132857411447285838517744284677576448286212676841817657166232556887877554438683673217872381553222116433532511745755328558611578458188358266357514742756377143177884585223824664744171727238136883852571738815376455437826721271462636468356552816425826668374832264427111766854565233851588658776884712575831384467521541113576846876232624421566428133111167658457741861122664473876854861443345128776854627255521723218821344423412663285877218377564265261313621473768827647333281574776817845554516258834437424242531877448182122737417417258278212786211116378138565816683226784571381412716378335576353345525878168676856285174643145368537182858536273817116237532665574154328263872847627142855728344758741464633524353763137366718351835872122848335228578116753357447816615718718131148655387638264131317884444324187554751624387681431276386788787323417446765312345438768427364216247677335552783813671537134522735614114331515866832854454565658275382384342685878144256511266752851285381255721335441167782435531326825537278327523336775135557376847217583284826856544714338764525133458767266458723851384876338588745788365827756753772865665235776455873571136423666554277617885582786122735566418255333214518228188667842165612637722238285277774651515327558677251841826145523855876278131568474575637312551553221534184251165224644445317853234874481712568181252366466368553647146684842826643766523845451482283532633824555547788151683712537752822862886451335817677827766653522718867221321571345613256588551617551173671388181667554323865632447523456283713436352353346415627135872661156811585722742183625137633451232823572731562776228327251213225464438263336124786635521331528766875813882563741473814684736311667264231156132166137257641347115788872177442345854431282885683742716671125841412554341138355511472126728311822166261368882523327288762482484557771567234342674463328255184411855823432466385617618621236344188581511726453624455177716411721746584645177326732831367118757582327372556388832781737644281846737663527324264143136856145111383226275166254555765431732413438427643228535577162575334564564276657868533777651725127544688776242838557433287845457367434373584774318743138531765268168466435761211742725667312835438445185333458214475522143342555486665265412487486157853853268325172264725531471752547831817745811737376531644331551114614555145285133473514613368438416522133332512548766837331761472131811243153225752552842137243156744834211332427333434514188464645135526318427247276617274181261744452778781274818631228585212352467243273311457487218637255457382723181187734563471821745177574652862631428443447541384558416773635718421262475311835482333177841572413225324524617827127485285842782168317468816384766515784157234817747372337564142668245341733723664212885728831166657278232224277587454546436413775584576655773238664234745275431886144376724744622731374418113663464462254618646521515655323281234572354422155714564186334651461877721838234475737837367613745411857852741377752652544125866517213185778874468542366765467178565763141115143163886278383256113351661447847224262486435622438455182233526418833672372523653265764656815656226581428372324541674748241766564773872516317427485571582545857346312528258682487152717637824625855273618664474855742275163515116275542475581555236355567777177463834743887843536337472338744371543184883774216518354246122426276246642586627135531142748552778261834741427821474247828841187822864148256127723216585286385753831811773251638811336852272424726414253477246117642183226438516317331535146627562367586388356847476246742471236164588328825278834348171838128482541433421548212612327171573487243356365488326187871675713648261466681311832617583267728751464571857177661547156441228164216525326175558618125726548423488222323837273611618752512241476457651628483461532223843764717221146614624162172884757731272681464745266631517654741231324252284665782232253138261783431825635268355568484654361321368337861247278616342477712588225755532643231611332578821776668842214835228378178344215871526471387681818716425146436121648446275814613653355855315863647572868566647818344411637285538854252764548885585143762587621623714672212668237717175312178722287363474352242182881186355343123521854356276345512221513284466534221322846347887275743228636875314185256581386264454366318184331611136646372858114547267145237315414148766863573883416377412333561844722575718768728524354254418113552416657514572113586612228136142383124774883213533781673655166282283542131147161141275411616333413736646322224285813424272872283246517348157246734745761125214287757348724548888164316325716326767588572612356251382683343632818448383134858643767816736751157582487711765738173534223518662436336173168348826261358315842642472158166856555348134832422376582356351826377878773875284438747874368462686254133136515645525378326328256772255255775146268764486285211458541756312573318843483122588342765847548486623377527775612345437123843472721248661215776611823622176382268854886517252428511573456255878875831252136375216362326887355218468484654173264887686156877218716652777343368735284716284171851233171715112654361452177245846631834672753637735767642166236888888167344574356541815727231781456468881147444157725313723863688315782816727281663268248413432362527717276885563541552112315447318151565335777718454622452163551465228622766356267386143845361374583424361562345774558441576374648882485142846471845741765514577544473854158417417142135556821465511466872728565331344768237341782718413372315718588876515331465356863817287345385351521221734138685673457388584271347121768273627376338235184572273172637643624528742332787323231215377223451468353283142861851161554463477125856842255228714726743886381763855526722434815453716712287274266488161278376472638418378113481738613487825321283181125683183673613652428542561576344573773256177341282253375111385743787718477328348221425182122363343671638267267641458557736631521888623345128573328242722254225861843766438384623216378481772168251113446833362373822567625588562273527827724843244167745184622848257518482785176274824584652743367188135724178413765372346222444824574165233171136654758247878451518873116171173425556271865471587276484758564825467745748477216183717784617188313274667363181481442226387166514522854788764814525734453866686648545184566124276668172165685166821278213815421153626524751856535648261551668334665424416553725175163684427852337536673488672845413477571366175838313623556411122855764717225765386355581731582784132272888566163488824617666813876184881815322532234681133771778484584644233186376345858314173587144267657667382876247775244418121437253181475371664518134242148178562542258774441562531525485311323577318344685452363484533138732248566561816557472671711173855761636154124445241324184163457812642346455458674672787314546117262466777484858177866784818316131747135834116665467716884425185168758118225443855636133262647252716467355881755485765778658142332665466626412627854413135848278843156738235314786226421675388744755414837257635326634412687578655256358272642741474424353716633828251138781661678287238216831732444526163136714378762678348482333671186361847873568715435175767283213885656222475135338733326216583558624412621238423383335822341555534545776515414414634783136773483557216423631761234584486242282324181413342138148557614888224846826136122334738752378777681242741423873165255716835713667453347455414672714374176527452366687131361718686125288712354471728228853114563842456416233641672311283254587578382813635856675523688624241515434384564738517635585434848665275325763223238512267422573118624856588422685653845776812322881473612643578752115551821723517626886737776658736152151282258182357141525887741146327847221228152435474568424424626576188672344477683256257216345863338384238644423385162858378445478118537458451485183857476482618516155562417156636172826222182513875532678281831337286775644812818423357273835865774137513861236648175761753451814114562735527372856413275527274345788871442836232443451878783837577263283876365221452221658148786271458754242658664875822675332646782446752624562636387256448611871184475317662814533125658371175284288736318281541542174678476152242614415321142186262335271443357587684785811716283323416152483213533128378358535554765576325683656534458352875237674718246766738187584585654277515183826364127623578888235513361576834567648212236273115556554527267682556264153662647364631647535164281514525853627524874555478575815632671362241182256518126662348413332865185255366687565833224734227821136642245412837532521861373734547217183248338257811686681841455773647857557543441171446147253337312164536441752738464745527852677455524225311544256341583355471835274565713823848631475622338838544561251228421173222751553253163436222338841855864716733744127427148838871675838121763744252654534284782736421437164145437214364653638822661368776372582323445777252153876824562281128247282431352434423272547734415136713126712622161145816348458667455637465347424528275726453138732114527247858177566217828228763873182413217263136656118111873747816157364752722486264634383673464265663725687743128588838867364688322314561314626372342337665711688585143141263567482582854414241716467648465673428334536846151747545428852586515147552255738618463562264173711314256862535153186153776372232323418283122336583268253577667568728388367451726214678614431784775472115722868378614375778567822266163552617343874427656271563755153474622552751767631347113357831774816122363858428528481382754538138617535411447316822621785846555276136576282687178247387852514238483247733618216227554321237326266272534855762254616117737558375881621223458242313823383128644311173161366182228177117475151151265142247513372388166425172784476881761332656755458262776626161365343162814558712728613835282335836341211625615454472665285184577278288852287331747162252466885661388252166416587855271824613841866452358668424771354155483746513258141524223612337718355688841832516664786123323683387734538288341564643352344624641238657367362137488415611267283814778613588388245755435147834825313871788736626783385566166538726672651431162447647862347156538366443243215156587351484856626323824887228782241835844116738156354624243272382185586666311715247578171387584463128655175133344713427424834476448874588763264542553162455463217113222765742263387384246673161536758612276453352252672446423436278718133635862784633534372375118571251223776632215135463357567573565676662485322425837824677233258677122322458387586478526836212776388472223753568374832584375161485413282264532138128368666848675385315533842724625351283553272611337457427581638151645866375256846782233158632244317465263775161628538585466556846581116172588236741781243458123462448714131653346483166218177822763424823175875481666274152644817258347323721351486712276447515321822648822613728251175786346745733616515473424416115351875351514832657763225322881222378413563656783645856155824683721737685126355381842353725871833676552151455174668511858124216274438382346815148616462341662145584231352623874842587472455231478868654833732375442241252675331383228318687486636722487363562386588581126852535363178725148868634543355626836133437476651257126277574142735447452856572316778283121272355866477338854251845465436245377541775228212386477882234428547467246335823152756326436745716243634464556822767586831272733124486581152624586116685481533744358618672521865376624253872236322878826767735468731223116381882776638312752354744523431231285173746344526323763825365358367542736257371828865864581725328164123315234882788875411278416471472422812482641235745551586835841778671786821641784441158751811186155611463136266577371855826632314444541751267485371373434784824465471565248685274222434611153286724437152637326615427574681676827162744626547865486824341174776273437765236684248831132648127713753211781558544214816162148431662688637351375385773286882541676442375727725142388564261322345681885244185281375812128127723458245738288675421871273641438461885435125554183146231115724452547787358524621585267845436843783278175816134774367753366526716221235685867443545422614866623115285431526467422151887382633132321753425227661833583427551554683437775367231881858757674411565725554276567336428485333763476755376455228852368225327352311143241853272734832543254171827588724578513774346417423887641118857875832876327637276162816824815713863232538313171484584853823552455747612238517214538635833177731372712632578168433313566762642446577357223128122158415687528433178524832218262174871128847871855763853173151254328431172776547275267473758544866515314457127886211855311754327567187211827767284356744531627475252662431277613115488812571427611443676615263443157658574575143183432768472383658521567886217114426313717146163835148818378186185683678444242541622612318815522751187148221862114772812588221363162545557352522815663737615412618864276518357227472631211611877534618461863675281353438411364737355887884338558571424442238512184574441843587413252663875443328763827563828431445578847188121864365722161574625843734318712485772434382355426812852372358165654763853687381687484587421387864826313547137714643668427527411463251474774664188153864486213345222738826441858432785835215216728818466712884516445145336556385852717258314631175346746112437883268655275628473114358158718688572516632851517518115612387324272183633538558415465543467281664531874236788648356516854768413856814187463344848516817342882857527627162156452172678571768652473841414521752158886444487154257228351367851233223534678581576484381124521513872284267277232542641628666636685415787665185316167718636416745873137865271472155532515813276442655442126255836271117657643487553163342126276812527454728724241523416678154624472374462121544256514832537868173822334515551745162462372175643132762372814548755668886111535587772566726372224471371146771346774142674117881438263747522225711862738217616611284564123214782587367348118446565523122343482526151852837573288757736156363184716582672518437171723125723733878538464574233631773752483676674514257576685865614675725751477527638457223671327473532214733654123638416752573881221432721655634114525861275271862863221776125482854126115521626874785848542781143142757171117365341544465342125176838637485732433274381882163377161614144533445721351826283121884664165117142381476244733143288352338715621556562876358438325242372832484226443537838733434848743816723381515564354384647748681676167864185347471771321782631415168862131665411555256835168715323875188225462177563855568118347542721632345541866268482413134754845625518621727142851281411743817565286755716317563548355816316161248832112448283227648341562335858822623554241423753744816631233274423465586635572556823686715781312326775514733885286532773158771112355773866323428262128835811577411157452754165548741441147663111123825786264437373124687225135244113682475474362272611282312576184328226462557476524233161387584685575772847542213273258258125142665221171435612631816633281412538721727832288432123752661427632514353725542574373337465216841262284445818254558872625816516624431474144656778666516186327156156211565642178653411666118771276713831161348814712547255613722157317421215182248114578156184281631248321436322328446848658145177788771521328247172446417327476832771538331352236361672218124617583533465587676814143328832453718757164371127425828722462316554136844848126767326115852173485768238331232817421226612866813166678527312488211887655522768745414133863718688487821468623516227322374225285681282835457624115414382624211376452354886335636343663515682638345536686126686372225575655885585618447748515731828247478534774322365721432622374357783755884836131613613564612647223465125228527585426671717643162474156267171515125658448214227333487122576346728154885825134436663244183623464871438837212321657862447411454747552221512738514317213143655116857631787532582687528421485865357287776616425284115824864231453238127454156673771162537512356641548141256774763745885746677813133687313157242475674835581186451486234231141758384786123132737463285365831123643682453653585123337825527386227486382634874255584353565164673433768812156143317418754161438758633588785261486886773275888744674643588166672162726711418141277558514572758133815255383867876442112538412371637753478375141355262321852656721665671515776822137336172234513231717568726414524413117881452765722345226556675135113868171834263316824536815415676871577641157487646211851517766431175848654461832357324134517721725461133275748161762872383664422838633547282185743136736283245437157327737117278552344821832244646478262138456368218351424538684447352234176461881833165287155168852171247553552344347756328733378153244668824227348171418858347731142187156137852431267238131514275381285418355265882372384115238667644881833211316244341721831886437786846827154464517551348318647486757451235363721345846864714244535432524756638451554347377768737442254615874821562853757232172835657178343781554756682222331178651235668148184236765677876585221344416372852165723187475112233824152758824737868838674845137138442577271521126111535881564864574782326837646113266333878342458718137682152623135437333233468158658474258187882512834827224231662575161671566483582174463853528456621487115614561534542743262616168214822242375837442333328586318726375566484884417612531178425467763371126126453374236815754451836852834245576784274562223268327621764754113687772848131423842761826868361318174835844556827851853315243243726821462833285871173161682575557346154713733837713168747852227618364355618187575743723278486864751382453138576151818387746231575672533436471153754743233553577725568887233387671624644685624515258627546576111143224551232287661313134782218864883325887223656487762212137625111183588361316143588611573341427324278176276548787768723724436358363376162435375157616647181786321357632745433515443216626655155671211484837758183371148472176222332361351115522528623562446157242447272358427668517532765146762576261855717242267621763367621867254341887322134866643166417452876162132433343638161164674228323621571683633666373355624713614172731767781134352356585865243321561357187716213145485558748247354151736313184814211365256261663268722528878876186211425618476781377488457142627147147387333813546456152764615366177526441617638161776631161387662431762512131547672842848648115325367438348413736632833457165384782615215113185735175132718135411672712478345837283783643246687422518416442511336663136157674535753364865735568285465762648152314641617271733328555248161676823846124717742748612386851827376661167455381245722127414466314632345751456441538731377635432585486172724528378728443272385551288714675784488366717286436582367827473663112114683512325571767568113466344242671817286351487724321636156472245815775426526887331363665473214482148351168668568315238743761826181123786668285273366221214282861563513276212478626115235252447562523447737863514324786128758365487448227514735364413274126541281684513361444666274482653324111168288425236511728364236235635648557268443181242178558242412835747661365272315571186181836135371714831125315531541718552232468548618422818252273268725117252673618347217181318382274442856184362865673582388728143277331648743838217437523415126312234768748243751568122433532332142527163643125772741853823115216135713776758134368834832313531383774722467166484154457657516586571828765373688785216833473213557221264657636513783576484422637255763218647167416462162218448755417615361144585837785825621313721351574358617217177245777515546532486722743361637228766224447667516284448433113585532851354732677164477182388557122813118257333781347146843418371247555262661851571152446784688414838543418264738834274854383341643266464181278233252613113184135357765771565578811672653652235636513657714368831854231112371454271255686281183785868575764526814135385675652681383842577647837187634887234313832383142675475875324724333633634563574717445111333671711244277511465545356526341375433544522333175581732553284828132342713646822562252416486555457588748718551374411517353618721361221287124742358176777748686734553338116477324773421312742522636531541355773232274264157876156721431225611683712388482281562843853165615664152841476563388481485668288433515681435158477837163216235768188655315722626275878818623366765437167516344653326227245142436548443361564136868656432643555226851753711871576547852186422641385877867123676317284811612543563731534186362162841146667877842275335432634712852133488254647833436566741276173853282774355747152625158674443434648587628251655713418843386311361386157678715383618354551351874123688264145372322244381385184465715722783386227318315344543846236367154351168566466517157123685328735837111554261877688252531738778163441553575344173115755847682685635642116541118175662732581456188654452272858757382265182234713434571455551283132725324214244484822654778888367241657268674688241876461351756667343226651231112818216218274522352334818188611856867584173531633556144123888674367686214124766228431712762635738668145557844333265822288137571547142365636758142614828488356462743675857231612842841558482287141377868448521415565632371486111118462116838666281433566376843628555464734617187137881688151822844287277527186786252322736825778318734555854511835254346515271272661123625743735347747267446535317176144387667268621417328632868746127556428816564624125158843774486242541512757326784188854337344137888811775324854451355355888358717765454672737763765167253755635273725253436711253426238225658876355766678861652114487365842438731867543548362562567415685448177174535888573741667115545175681467532277746176713211631846165277841728288864241262815185663772652433158515616628876185628667413343324265443675663448516544884825246331832218442445873687183241765114257145848144348617274458512718284685351335465836711726663524511876262255467157388171625673134787422317541326743657488624873863461362123121462684443164233585443536335317314571884767872841282114744361762786773838787872656767848373451345181383263636553345781685647747347346331313528541286756331162866666161286428171658342172757852388883613122538562415361445317136686837236185842653385831521831686381673148641773712411138733858645378484354842228126136615561515644373368768687358163341767827242665613255221526521551516384178813261155644486155116766453831532848842175525287485247784257316567123336758164524285674115583316127827363771387377742827537458237588425611331767228411323765475241242728558532153861862348574115188847583443244212387282716714373867476687528118288614575262668633462116765445334885441537661334377257812445877167378433766868816728568723177855388388375543541822745686682546772672661834874836727356682815283437354823312462743544223364851818682773271836127163551557624321858137126216587383317364785234878588461747486183324626216486755421326882717276415874352812346484576873754542888243568738564878387185137273147853378353826864814371873418413265413488457241512645711241157875532748474768885761816122786652711654668123572257728537313647885866183685823215686215143877733885685131223213668188651158413418148517631526881751733488416343247767587358655786746785383887328653272177648728568247477734335817225171754436881875738313643833312818852162456554116637657826847115662477533885365144416868553434552616231235632833141736658663235115376888537482413183768445328785481781341251451356511241773368577556286328824641462453531537176743137558422573386212422535148671563424125241576283115365768414436377776167275462778315878486531367723228837242138868224734554572338352822436548482421683147263316387278328143581712767738355653147556254157424264856711343667578482617224633145232877672648183143318181253134657412348514121421447326438417864372475185116255286887347757642637745455163448834634224881451381175327882786688737846145647477553785542727157846412112346275631125241178774275885613836524755453146645583127373844743265611752136467624612138481742257474461348185424772184641684778327731464141682776846126656144634477534638755518354552336611761277517677621741775217411766524588451234666617675863713541387457361351723274523228156422142874471526567843485373348672782656114253475846343466762741586732232323522725418353111252721468648477738677737751737843132744618626486165854387171442411574122653863676837437713856116232384456753782482212682844224883723358812877776814168731252351518882452346125462878452553377145884748644346484647251825311724421785725241555526383481682673772766127518324763513428245464448232514161882148486314838435547431672674673857864262652262426238883732216282655762814732161663257512482127843136286666471416788528458526867371516831575632862883534153451244181654728847214381214378621345642476525426336423414543161265411557821267751568711852768856586228621314171716784751634688826387256356632462647183763213751481863668847245426236261456443552348676276687281528386843643864788334512877766525524775746113548278616511386645863157587817238727677445434765152153763558178631575826128566637883841286872743561237746454633583876663156817262274134766748788153421473771656772851437163647224532346321486745531648513447368388233565571355525275213147745445424447886682841465543854414547656281156326212325476637767288654441255554364156361843486213778883865231556631366328357678134838836411122472427211113577142414483714422361518488276432335476482763771126764622388132235461675868827838375754853553645858836528262861717153228262433677576885823168126882811426336215531326774172653123811123312623372871567143778177177176876258174343165538824483287685384776481875272645383642632467663642476465651784131361484341617148777482863123222718825148176572265875647111327218752363342655478136381267251877554486381426664636853641555321143278477536263385687163685824187373321641426356822775654344624242441274226557721155331432788211114133221763621486826668444332442522433376525654823548551881185823762181422843342385227876153222585662423266567314885681152173213646577712228858427654326582512455211151368735743318341851117858575241344724368656256153633485114635428587131566353855335344844866178648418562867864456556842418713374285717615487581855555355813347633214641788615311823457155171524782365322853588372534188614655745837561735774673835344862116586788623355831115367467532643882346867314567265762274137362537432226653261584236854464256886738622383661318478175272264563213272866312312845828487221377564572445263363164655655144268535158884576714771212464647135885211266225862348131864334247316834611388575676358446441852658252528327233416112613846118845756674513175833583454435736471863331457626315335657781361518662652617275476126542872625645228145376681348146467636485138327237466186737688145415252325844366221771163718764121583724878416774463575436413415531863437377636661684346553811133226221854474742421811352513375353165636241575334171216147362417462844225343576675663466751161416557641274218764131843575652387654288223313755258851777414513475555143364311883584542173411414661734266367837773313212222233515578163456728317317625747657577743716742481432752623864438357637175356266318485337374634358638586238555383317437825888321853728218254458346288676365764731217685577123656342715533726261877647365134886681467187468755441372677842847566621536848834245861617282183728252862565534628315352667563825841716861223585573677822775767338166423433787826382753882275614377821351216117434578577485533151458144265772332658524158622677473387674838653837856367388534863388636778755125511713618322628644267853538712358146166887238258673148488868762362867537157634352665262168122745847762366181235388666771447333784641774253765162138473177876355681474758243758568164478776568718546838514456118626234623436176132382312456134116678756151368167317415346151456785461746574487874335758222333173586361128135424843284126816272281734535585646118124583774567387431771116561842741111358313247841626626341144885883887535716511368887383867156623873732363883685552472447748512565718113888837554467213586514467127677574477383318221275513828676242111524321351248754161363812673588542643437128664162264132868235256837331743716871157261827611223875615488336824881423272642721677318445378641611647663833175741541255388221882636218458433124135751375867833186473825538846111572671836385675373272745685113157383873363731437453336553763137534527745135648241448783135318762828714173554234277834287637272864812118131454548482412241654827127225788881141851716582334735584123512152223878855372414474714216533445324612564113811435715283425455587125367644633665822411422834281852178531653186274382433386722877153622684654167217327627885254538586632267234142871352227783756463143825618714653684575452443171851758478431763633251383434482454545554554381562446243555812747267431555845118721534451141872468817851554632223243677658356514184851663115834744223645547364371746513874263227615666872625253314534828112384754487776627241536588557434433715112788557142682112864426765726424558272575721522778782444622334446324478126178334818624283485436768223775554153244223213512625387826254426422743852372518462662451746887516471674868788732868772756142562216141414843776671637514275848756151767258517873825762841114176688436858726362563115861171244861873238726414556434121685415563526511577777831643123882488542564224367626526542553418327878235227342274783226373481332721343865486562621843347377361553543546645111232386321155773514558868524724744644363144538478842788711258348368416677181845845672533218118646674112777573143412231527188668133134328234247445364473352738488718886778281545647773278337877424314653637658883477662365258662768331281136826252687734356873655347364437738122372155266721683327232534814822726678782264341363155815116165823572261374475413477535133416817833146742258716642254367325865468338814281636166273671127615847742747826556254842711577328511454235876448135576463222823871575184283834716165617121723767735385472762823285625384362325185384413676435352884228526724131528668884344548638647618342421463135885826441811874342343284331213758151354332371422352567667777733638452554743454386241826652481738445216647654753264353525435514548665111843387312486655317428561443641484634234364616314216763714245875455447562648448451136174558147648283647477478435544853177853427813145483832775385747742517716316617256211384538271552773664362688462782472542521373432784882721637713152315124147462217613745517155467255466847444565882343784361563485848333277311581435772777735774465368673278815155283371761157552687323512282754443371134235641726445665582444777222875317763522355783152815358736135253615657751318672477573256525242227672263264882116854348612283114548662157147344816482852777157218672846356787257757853787313174658714525884616552323368215274346734245444812234136464841527143383774827125315427121215267138137315467776164515374484577152554452688273571881237544688564326753678264528577387742327234266817376763372248645526617537654345238522421682265624355774545671251768126776868242546134258733745483165651157138283563578152413523828162163466155168333248145317266763846354855258682173874372168742145647783175851757723346523157238568358527778732614635844351774331223771564227347417663117743772864848862173727365283118554537634775643857746663758138184117867156671543826552533415112522165577216826228541381611822768543786567826545161215246317172632121747231552164745166666244314573227617353235671774457762268376315665417322658633877652845743264637848777513143437881752485723752626381641635864731725855214286357644625487572635777344554668315841378827443615351154211544545745434485746224418224532246562712452762125613654362674415263841673838132362344766584642327377356611371126841483643724826611543864588561362167348327325655718163228276713611212114445117687364556434722758461632145346173515631844122386341111375511877785467252564418214812818526572152264881257384872368238777215368285675461266351247231715525723687333561253785828488268386575522355663387664233742628357623265166634863486576756688222151844452722264474732474743762636482846725513826411214588842122431374653274273773511861552633442561613631718254464261873223166331381568641322667652458762175317483456486178313778884577642872627631345123641875475838464552481351844525576632771141174446355876877146352184378844547858674743247148475554147613164538584148158531465521681157334487413566178182148656323137837873783617422382262687431613253657886864616516633718623388375646516884432783122168141866814145785553553647641557527622378483641362227482833884446768164511844662751668558727358115612768734857141176733322224624355237277264147153485434525884428518476311675242587647288658116537445763711485212575482337284554167224512316437583737832321473741662777518327774153825156712255723852728652236513814466853137616812753385224745632748541541372648722221338771853285625466564437126287837575577554135573818343751441831677812457751475365266248783845611161376737563756453737623874242828123385728284718273521518888181653888571451842535486514264178245112655662425345781222338434425685457185843267626714846576885451616576666171748128571887387411566334562865821538454414848471427246364156628467873481482486247827645656485433832832147286727366116678187612681771685165423246457272272122772526552258386372833627846215183712466643268514353635586866473453568384227734261218658326634846313883871451736557481482622626123368356188143455811825747121327525522877858815483144588486188827448237573568675871318845552244157577146881827223223765487322774612215761838452668636246875754884212455258284827851645148585872163865571465535421255655672866648586242254426528641873111284534484715522138682333421382477742351481158751488388532537466221823157734716453172182854782474273147822462614817727818475583621822424536456524813613647267215767816336143454455735756644252447345647318525651243426241336461751332758771316136155631663368152754146871612875676241824221783875148717765133311685774763513861442122468143848674358413768126737831274745616374776627664536828718484735116635263712367732188666426766266715188448363213822558381543261547756661384665836788628444461272854611335768333627656381743552627247777435158886732467218552383774253165267644427332213735552548852334548823464854744627771831486375731383515667643224558357367685265315223481355533658571127776111617831345366471456862144427238158757473165474235538683242845547273136881548852222152433686751668548845185147856132845265721584224617224777661341234627261826817465183441814618637718686545245553252186254321261121655316771143438335531551676657483521267843372715437282256737337286824777723812214733848288178717516544173478561643144523232128565776385241157733633255278876883272867472264116376688316712562555442257174474868248236574636543173865668674732752342118148754638135258234587764818265741625658357474464733211666241784756188821465873325643465686765312627561624367561611847227861482368123752278886667638256844684586515571668335882335816662146285722461586135574423674342223738171323133313832141417542428663571377677625814618416256168186822658486825175523254776548158757821738277485826818156612374255814656572827276867763218137128671146351552866621164154154452438288735741614175158554538662771481438824652666833858372245183218253222356431234128823714814825817728112424414412163323774873234873474683683141847345383477781748284253533513513117346571436122632224263471412778518764567375558347652661712675516284547343815518345227267833544368421725272632336444331731255547156137326255478638253732813137731414812626225785466326417721361327327248838264612144652511216314143556226183531332417654644165445787218768128852163434867432575121731417186873245188582185258632622428835583574284613818274726154816756422341655786153862844328768155453656638214478743114446173885237254574162525211567172378344526448757764886523336135233764326626583376443714235518122164486237854778581871158516117372432611565651311357831871587276888667734358386182585551375284751426215682517216125261387574658612487157377685466581377735782438575172768345842577663453648473111577632363857772328534785411626664217441612241467186236674345678261661341532238147757175576754641616447257472842433312721282535266616133846632741272828545758445613182845616751635737452134877216125318531783855185841644118871577624637426628838473543528277783564144546374364712133155168448766777343531136414364578743754781148878218812358746711452617644758343333824216652333164384668244145344333714478372285672255631712315448635644562486625837562242348574443626241858632881747638533471782261542546271868721273112148788172615556344827756562442555532211341583224375667475536682822233734874863411674423535381482364354723711646561823732152167311416777738418156225288382268186147483865416427718175522648315578885382442751617315767188626374841461571565233123368748617343436541268275414766718474125715725535353241657785263271572733114537758161225615227435253413314436722488577647865675112118315618186316754534122655255153853584218781273215664438122335581541526566371567784747416681225866687455151763523183541311887555272537281766228284448236283817276445832527886562176886575446865566738886473731848388826262454877522216825285355772643135777365617725576663857243374386844637815453822347218624812136732254625251528411736785756151488625656848611212252531222784743762846332317435322442151336371624528848641278716541426416145764325826771464151772523733216654643231578233335373283472458221385278386866216711721134871768854277714282777554383316451126873186866383147451881386533644112128615182165721511518238563664545413177854445553221143855883153384561155566723744724771341353678713715352612872464518514331287248425827788846281346367461486861578277833537343844671424238536641234637141832336351168472142366458837632385474716424438338453718358133857263324162112534576824558532424812313316576741765524841583612717638668383144721142586243484342212175675855434117334648654677768163532686886314736367884358715468487367657357447261128122113321261683525851711277851867748737724581413585342451223865758338271381846866481243832278734456444531284877327112115231223555816128218384173783684727738242647341867754853212567858647353284128722566858361127721454776766268741553858846525163168554311537467231526177441844352776364126431343152466211862364447845344686777784637425213445451314418775234173252883264224726727867523133511422677115123265547341762272137266415863442767328728755844753666466554468642148621513717243525858675623354457131742237823274435483632867864773857637431424467114167231627662154487846848472752355145774541313452243816445532423684262573324666847287548267871848336264413838281821742654223214747134541584223312375227688571862762785825346367562781528274861744131383787222548724546221577368748567836345118856127686725253113851421614225787285835677788711263824842461628438682361625683311587683786857462342234883532562587157113758313413385442755517737648146483128435432145882157832362876632514244447542732546486683482731141431875316576441186626662722526238384524242773558276551382543766465734748687153842684684545873338767151838432785622651122511538276172641681731158234813163673587353136255315872754854227252227114823615833571336437821345253134122152625161764426377878585884816228451654612144442348358425875316728875422633776877561277636323614583712835211574836825484176424843781644335883883652881165627267226282575642846877167762311676265871718178743541114576777723241618456354816321127163757388521346282484884576374652844733362186665821468537223658558888886285462533671638227443814661668345488642628358367762143211363854488334583234731514727747431426863865184873466286535426338178332587787752287513336465267763613732411783172448762578782348316588681476775538423342277422148685645453732354882833622433334361711315375421571468637441471564525625354713421263113527332275536768384442351364341612444353773551256386432138438581481533571735421746456365777734844683841881213873388885178863823373644781572766253622731773675121351481448382877248488277445654746885616236481872582418831283347883263873388447217425367177412267185158475478816657851738266244858565273687578321623785323637138843252581358847671121627577877858863172776447325324856514368722724183367522444643137675787761822487334155856126381735311155756656456837234432232711482564155422737432811324533324433346722461214626714546656185117148772184125544885155631831416811885684763186476878212312822513362837172371685158171317185326258121537633763378246863443132354836185465747235621324625528434737286341524414636367416138837187516811858158433135572772732341186787471446885757172861714814874658264278465837432684373363762814727835843113445663761166111881157817412562723186338846626314125566423531418374167662381632618255583726534452837685525654422327734823545847141671287331468611154242483556467232722314352287881324221443756666717635262851446545654467653426166531214468124548112148871837614164172278257312772153552621441654637843438356442427361232343117172843385822332444871581475753522425311753673586851616652836256854284846812268524675126371663337644747535422361415877413468363734324244655681646814745747744137456866313538568365428811472774388643141383721727451112758814118134837834326154858536668368436436488883371683148617445367822322861766761436411336771377645867652717154254811584367165535282654715226613613453751353476152325465584335385617681473632136325763182534251482856815367141468123422564656785677348862643488812318466512277425351714668175643463416736142754148638263637812215555235818241325785778752348231672815462186275355813754185517536424831736214641241276552728642171244236724878868687424655285464575615156542418474323358567274218765371132243751348271644523644337735884775261755743524145161488272347736848125566527882288238727822454154154371838787616686364135772874151475544274852372625278436382716452862271543447518784637136364628775181722755576255535817332684347754516678334551271441878227243624244528518561657362156847452731725363884747771676578264821758742145331412881127673651627484475271474532731483366513265625721415143483533372574834328586644674888814337266384783872537213342746484834317844188187347138161721251618248541811811612272674635451427882525623711446554388768414223868231362348354816146688636125112882888221255223584753483764362251421132124315551513853235638552563363245562684754746635368821176461482548777231415175362754867365114365743435463631267154526324531826217222457682375281247748858857445256388757656262755316362854615771526458835218455682377242367756814221118631532612836421546183641257765734557738537241261578541536814584821753613387372138671613311456727713741161557367233813818842533168121236748375165353348814133141128182473316561716787785258261832787645843361426686242737444447234884257552283838223452886412721881413837143883574481686487246342178362643118154514368678181735531523486366868488473452151211358872377622165124138464246826158123852428233744814727832634815517858767372632728261864784254422774751655427311273346325782341137478412143461284428251381582284547558623667476785716743852162232653585537862651731572536611574456776888786837127736176326475527382582537782368243427251457625242366221858655646575361173454135362148642677842316713467723326418674614772233151641687535454765738761814234441271355768322487647574365775815824625853454511162588826262358827445832373481263323372685836785538288876883811332331185355184253233187486756856776452187657148158438747433778534776172723277283282776585561283562866127443223218176346561388513416667278462442346147464181622827672261126722653323238644616477343126134465541563483426877285686187617754475583547758224144323578421713146556777633655125224262171761162524268688851248422747656738525364447417871154183266618178836231374283876182167452732681358173172281455725637434673522546212228834641277646251525746152778881581151647518334153546243187857614675351717617713163754621525843867211351737217172453715553746714532556385223632434774845226586621573273451438233572665284828382345331235365387326471665637667487687622815411833347375524481717346217815426578571378531175733566274662373847556381814568752114482755854824771276876344825635275427124125551548336536638318824136587816228873866281868588557131671246568553716286854521475878724718262724264551246588613872751882724185468524615332818256117217886183318357428823718782213874748545475461718467354884211577628541278673461177728325643661233277366714757736625346866313135422717155536221442863631321321833721225655467268163385834165738616638861573811517717887162644222552128237584355685551867132228162378753672114373488555365256731864751677554173187854347731213761312871745821221672113855866328821125756147238787665851524816867848222736618355723325146434781545363445773427151387788218374128315521715246543547134622351667687341136627178813773814238715672466245564347247583744257748163371562228258164838274261852757283841622316314664347664758515181442423611142274518172427475684418546577678466873472531447514114555873417354543882742755372373685853884381451726582333751184832526873118654786422255242817411238526777754884213437617515316438477232664123244143724361882211218577445827388384342474464681471318751112832437453586144171224825466577637561824244855138628261327663415833622116167347318236835483611213232312178418331728562117838525745646714455445234271157712661822475636278484617123724665438281345828683212667141377741851471521677547545717318817748845188617746517132577415316651642726757333851754677578128485426314848473374331457266745671888538684633656156712375551217784727486538582257544368832812457811345517254348164216258416642112733451866387364382866817248458387641486673568615483251564275665586535814251787847328873416174614336427411558151443447377142218587341787723437463373121885713333164713552565477423624478656841854344616564162673822851832286373676224876854228171366835252876715537673448557435538738154217788128773187641453876558431842481118854834685617185327861122762537571173157337685386654456648463321388261158525625486543863511748537141126645216423143131172122562143221474165764177152255824777882263327435618274888761163447313531523162218223577225327233561871583515676284528432831723776734551716145355427327411457585245211342112547756387115727664845465566437387141478355586331425132345187474888133524234846874287433587415762461688713266535641454418758116748875763778418671685783475155341335472626637282331571824438133653367241873613883542331748612774172785573821868284125118641825383448684672637324736313836135554564233517637261351856321623265282312627252878611663184126141535456287174268745868765377547262414181587671264427365858671416227386343672714845742834583618382631422388565866212215562538568618647446481654444332458317362882563376673656752371485133865135887225854838512386146321514264653572737286744844545866686111246451331751582182123621841347352664467558218165843372365116418366671545232785371617713878626521878818428667883122568466435186172672571427823325443185388468244818764525127325531835465222616767652118627221761434147556423115441527556467212254357168418378821142586211572616738516214142631615552837156236566533724837782737181783668357625134476765355218815881826522151253652145341752457524625167364856383283676463574135564266661666815372528863331311856141717844541138257255244275842345433273336418835726341435878721158347667118868247737776145826638363186584551262145718513755585227287854378383264644362554773362271543866563888322447361655652431584477214588237348766818431564383337127244863667642142845173112112721315687134468678544112128728157274324174232188148121877768445721358436841626377386375233776135736661431252481325814587432744323141758735671468161485718871177488264727355213166613853856635261187566362558555833238171424837143581784128531131113577635688583727484756471258261137761446186364771336574281213263658463147432721814267386813381553186117711183173165784282521343323628488565431746426542651445763614341856418241752213347453586863856141651365351236467873843516582383368856287262525424417624174364656228847435674283238162265568632124117551775364574551434682361463541383176561135441254281123736172771674442411825637723424714567456434838746847277828262357375227736831564265178832728612241758313882658736841881742723617788426673817877273343334275556882531364555841734658558174385552575518635286241622347243638782141367236726411468368253183563674722241828638443861856825373321668573372214214212263525654643478336624742833311236558131284433132712842115133125767341326436331516667867172454636122221454787725252825738635654466357861445787813162351374756253555852152632188165217385672164178574446616776383821641877782268684238485144763732762861646463118522437642225188876231864527537576481352234711465177165284636572836828233211856122888278542786645346336227811577734342866722176377611387774713445777144622776214875521388458784138743761128646734853188844778873756211323846535722126817155651843324315666828567636434881553523524152677147684534243633445366535636865476245365678628823151471854621834528715341818787284837884862154566257382148137524824774771652118472726682565326415558887658535274453173848442778841511163886511623172875876722322472155144712543742148387161217323288681741181175355885658336767253688664448544148335856751534828887832876837317841183777817366252654852222828721581565832758142373775616865543562328728152666412778355623263581737428382527855144645314537857536448874213185565531837877643263817412572757364814686442223418481247153317645715231465354565515385687177858435618723147514232351531315281111647538711357641542582332716577547151817631464227144743683441762664434214226385788771148153736561124482428228688364845741781447258558417375321844817277354468774416143442144114264678422525461421222564437415532181617751366325186321353284426532688455272481118481413778732571426452547753458458215444136245886638581335667574284714276852252521276278443261656683222577758572386864525748465744223877334342276744886536574654233482881375113756822665883135245462651645856217518733138312526751582336828211151511814711133465434366155575647417565552634672282337681225676274182253416561446578144655311625185217227761572231684266483532131227141474242422482578875317267381781418828667873631578778586323188118512244883262831517537836833714661544634822221877412262555733865881161268841115543435572632835584282224125875141474883663562181516635713462172676275123366465286866217444622586264443768473163435146887135874557662845554537831245785284758815643714465484277367517734365256436327422661755282123582578265477225834752733158331275434327756375547623563765767773122254818613266615652845222861263475573414486737484357766134757665331537544336135267622425767245464274848347522738681738876666823838178573445624354884587265826825421477412641166235282174566834243247187823635818237335758218523817564456386877411331575283122172438742261728265358874284413311522282177236741443132422432467288315424883367477777571634561388876284354587185843717767835831585212616163863236123861758128777115235818263276584757844515181886121367765743488574444455664721588223178251268734244351836165275166342767785465755371841643352738253816653815181675471424416548152223488655352171375386436272254163328854486362311518253547433537836828145662567628611534376316781143823456613272113136232632317417361625846351367542834186834662518231732136751671773752344617834454287367141617653147863411753315671216572548174875767677731751385165433254252326711675257231838486835852163865642411822412481838683855158155678526575325254253882777451355781443251353775862751135571516752885777814852444331314727544231176664232526436856553115461843557884316268778545211562724768832681732515273116574481272638428257347217673684127457445375884428158765314361642574185684873381283776476521554468775324418447537712421767723831718821152862424252113776535528661237831726867241351345164323248732631313865447441271356775111553425553516251555568615151556523564786744438272418376542587326578665848452176227752465232624132868461176844336117815284466766134646324115437614255772877262831365116114627454861127366788888825276483851365731517135465354823542752744847271241128356758841262156736386615636387384565436224425616185736385685534577236527856584754334834513733776666328861571162215565673652821573371764883515722148314566627472371463722778467532253576227653857811853217641464678514285662757515686576447484528178565142823344861235548455717323861445334567623745816642288631823837257224656818216567773616465434741538664234154671155483181333424444322434786865667826286785237342641883143715868637143388827453524378274524677351122452821755674118126245514145217151713877255233145458176241737338121378681824224335844555387281188276622723712815586528145724533227771137164864221462135524577585441413876433854866761188454818451462455118351427781511525815522554618866812621416554275636377241577275736614715437855438737317156771433684272384271481348741643836168418434553146773427462413385181111648165136675124452362567267747827524725563134277311267845338777641728365548653484576832461128873535158373758265283573716478436485867486777754454318648486811345812757143877171121855563253276477523433372241858121366558764573141843377263754425558814757375276377362258142571282783264162385881687828584357134213187564484841171437446448842461478313642715568523127762336541285222152213461327671154884318437516718681836535154736832368267635165842682334536571774616584436631384164267377685773721576188458548622247543312556617622421433843725135448646517335116325228123455864275621467862448241628331366438843224227672575156218637765115666174264617756163443373255433581885478448372885786734616321576263471324812716856215373114628813251248531476833253771746378261483226146655447661617478266754561782553837278825683231125411537623538838416314541751552118762618163523524852465157164342235155128176118282888511327318582614376782582572677235336134554422811585445683431341541211366724615634365481441244887678723165333765858267373383453837578853472665821734352352584556311886214136535368662884121575815612382485625358835722214222417848764161343447842221411713548414886451245455828647775435676433438731743857551232868222756188418173234428842554637648585311827425345644437551523454364455554456686767261633784736354611332337813371167736115278722377872115462756553845613332728544438515752517351522783275164687237165646517181742887216468738323628358166475456615583786761362611232788444688336545885568275112785162875442844615355428413573752158223727187228425563411667628822443783287161622767274827688672582872717575543738223665411147814753838657727257646174584518168545515532828483267575885423138868278613755715187543112314315767786763228488575436616547635223518855243173616318646386751143161155576755732223276485248348256253476238362581868224537431342634642352355211367885418848843723346247373561654458658351215253474218883851675177654375413628664144112463141625172228436485158434532647648472176264717423628562683736611545441136214826387752621651381122353325133585222666415567366347268482665874563646186211546342664664847145253286812378344145717345315166383672138856857832411812112628325273473878334237145632833661582761125461113273586631881256223481277375155134371123728784226523516115516211245817858714336545862363533211381778364744344588752178832858858683521112285255737815818752456386655452542767147715462157268458182334457612113584141813635362742862473854135485465256275768851754853857362866123618833511266227662866413286885336738756861287635722538457254674136627165281161322265176552536118377284361143164872185712862663381615213216523667776127221446646415885363881167712224633644117424123211566663124345765641152718861357115747711241774155226814861686464814482276322433845643138285437585615828222154348518523117327167618887718614115636675655473381736475263284312775221676785232762571784273364457636414244463326464514538855867412247233665566321731871445137547358173826263861514388343513337751438686824366137133864825324786845565363451231533888386488875245718135437541261451178635381415185865217531343458127657373334581156234767487784665232536766726587872327164611147352164727416722511443825476551843658247685836257718787413125711176661286685312752447877856534513335145375872234867633237477744244416144242124427382574138421881132685216828432826242344852811621871267755767531841244285456234723735527252675375386475122484873265583366535138665324533763836251368463623785733434583736788262214611873758448652767627156663771352428414145876724385162348374428527127387776234534732632361617338617537173613735374117741772662343163562712671277648238374252173355618458524328141663352663867763431445164282166118135813266153883817224213316676651742137411656126735825823571823184764311356658418582243117788256541847143325322272355362257734175646522453675768555288111854158234755151825212167353351425477412853458222732645171473522731577461673514757621227333352534353685664831463834853555787841465612377377281484786642822623766187285681118258684468367131373648135315326817566161663466162136645266364664487762738243528338551264567135242627561152413113867652218872253835642457555655828685565434316618761675442667866716831563664384777446157825377855337372624714857713475864112814236822153231526463472867377244657448522584353161114262816436853383822241676648341766634374168868367183221475471254526824477345832747138774173765224522851452855718562255534411688142313848232612238441154211831714631885564315437138144222315355435422648175387282662271472567211428583161686166848757763531322151525882657335538512144416415361828517441334754421385735546663732478883624261212317787113475338564534583878886787646447352675542155124378367626441752286455876758357465388731265322237831237518112757454346151652472844827464175261163516368335248333785288684827835852578467683573637217747338238384542455832858228118784527217146557464663757436336876485772576818645613157517286585241438354544574255427767557327417246762283541655867642166868378718443453677451746277382648343223734131115721582278677758773162114527385767584318377631665577758367716351718816831364481555411384262766544415284387647411127656234371632163358478221666468244824152134817383842834586313784885387467567464755517664355345631836771636233315766531633753183286441461744272458278727114411776481444127516647223114561127753482415574434615287464532211175322537776728356565167582422428822234168652353521627536764523524383751733627166624477722773241271533365514167738246675764274817536854272587137852331824383788627411528344647534444232532427448358367852432872135448663711322214711566316515764125572838656447725543871516744245461251283536485641834184735256454476265425234485458854117378885314637768453517114616666582282482564357354221172422185315522332574625512538634745625255464366485453164887457817561652865483717441427764221621544577464824882486434872364443283311117266352462612216134537423744822387131266147835647667526787848178847135416316732317725474368744387267318138678466358786888534561456387757482448234671145888143157744231578781663117612311773174528817553237265533313281277243512188822842757172368377463887847653625776852726624528156322116578817285787636368436383632818263254533218568265715515478661286567182177835723481612258183728163563641438672512668785465613511764787717466633468445872113461153237578423653118648217178882884874748642113873814831388884251357688543311617188157284673765786356271527587154561148474321715247766528344746318363817348186621464782475766484481487773488226833318156614121426262121868747211282113743852664176258352813633743658684655772276713647548827852224181255634513381235185544438328684415145215235255421845455176825855521146651842471245641254715117361134615451554378714435873253876676656388125443184113667843847375857286255666575583828424375113385121516163687856257656774155182561621384333128311246422826272348161165287551486561723872311512467275761626336144233182827644752376523574376587661845614268625458112136452726274344515133552716674476788832656651217417363411777286562535382636456314137148633558765125525488632137587113575817772151572627351168738686552722386467486334151756725745217358275722627851435517756411626442436814746647652818475185164715657324718168834281635335418751322723313718668757837221462323825787124162638375234156753572843228587114874523116267713737882814734612215654532347635178567735828878256482752546176671236676867732417744888758466782722288773535745336685367274553712126663825167356882228813365325587351513776218768177568863462621212228267775732346161836744812128842767626256176684656111217861854147568754551378621882617464466541484871432231683753521436571214148414557636416458622324168686282722234667414158572423876456233824737764312676442578534341551828158745835173424262272666438581213156226484416738654722562487165342651468821313264653561625228724686614365883876358616344563525572352348845734436387888443664728821845781278583337686387231323211315552266285124784273615736644742186811588287644662613272546687816284224718564887257242313673531856448438472547364778176151364166461821537673576661538841847444152748782336355832152645748551633717456581324726588734115631413651485755546185652684685264814378188641715512636863483526676221776341421646526861371587256545323817526381118413431458342115584755226843624251483418133881228655776248261375332632315512633558743537144168367512433881723175838847653736663571433483465468838533468442175114756285187515284724121652431186172387817437824182463235174144427644442742348625433742146421853476887642863711453314518256327323622155348381315533183525826445674588771718716161338657818341877336325384834547377218611633376721517814887322745534284834263851571137426825766378788788265236781584323612377825552246134316853123151181225874188821631157524775667667475143423114164255567843578455764464775776851842587388626558215248576255522222462861782553433827843368476258413558538452411763226548184521456372812747674437328831545614316814784645411543371844165383623378438583111162118118262782133137161821781867134542564421534433831828815652562626738862181114486186654331243322555228124184432711273266757145277461867436546636412627861472868765467362125355182231637362537172224151723457624516575378533881728231323234656717462611628678357371468452533314611576225773425223356762822312348117688874826444431124375173317827654313781141574352651854252158584122812825161282136128145316265337225373551276445727737135728422731467631328661312685217748671464567146247611612837454818534377484215576147224117521671541647474562738434713371733767537553161484666576664868818885647481457216631487762734725614245651786316671676238112471147232614643161415274766464328424384254585513613326363626157856156468585152133435753731433887664827537143343355782771531781337625148751755276336264224313835454868522583777416224313331338532638356413471237527117142142115875411227456346267835346511377565623332244465252515148651458375517547722365876114324356863566227542124827113774823414212157746562461522333677168821487381274581313452554572355857616433421536267311435881725422777172488248866384346583565273856765512236274411811321544652127711832242468521566688623185887634786677734673435155186163562812472125817143873588664162427227423285442326215422887411518187538428831722542184858316436335655684356346411366752452185485861211336621367464147853153388755772565247871677247543828844471634852465738587378718281742386151445658248787383373268821726422263435126865482686611373354113828867535233468517875163815465464357712184337757543728126534766763341448437323747621677111547334354855815684747525254152725518531636374521884325811876155676216376674133671212418287511248458784422531858571776416354847544528662771636582338876363663437441113257882341134183636653862423224216865266371446628851327268577585357775568214543447461856411767313752165555111314236723451246843885782357835856835616828844315364741176535671171628171132468885146154464828627575473276384751454236371342321138664678477451112575818514442424157425853488415634872813846685261813288435143572666426372657364331646356452678542251887753276328351173437566137823122857866585282865218632312613615556111766856141666338431666113268566524328681653343163688861383811662111568382686863833738434425578455178117734431474363875134343354762733323762861817862272673117555418387564737885373216375342254312831654747686232243846162857157247374434284576717658433624238621425557147463748374234156445117125562366723154878117414624825426143346537681178158585834435564365251823473457333773143455622215732571885737226514515727385275635571238623512252371552352748122346461147357131338852277132611512347317731511343247433783668371511812442113243234633613548577285843656564774757231587512555142386562835363758247863734556732822345247665627212115445512241343247652125673114814528165841842365682711148448546655537733437621881247227723473746351733152424571284573455463756458438384513531516765127522566818718745365238356133232654711216175835523742346815835252248828334783445386421722421186776768313473784183312484282887645128828854711361311518585472216424326868456553571616356814272483832637244888224854656314482632631751674661353727874672121844714858874152254445811168276247625612661262887187358462878361212668845531785382287684878573553731682841888225435212356224261441278878145667867274321818125136642311372444812336427224122382162283871112283322864452551478552777633713638527422836172726642526158481658372134284862741464632346146177616826145482375323353556857235116368161576714133365672177787457784487126667767211348516883718247374783561846333457177574724615214483615666486712226162123251776225253435242723612365477414278712187137612851822128336247353211128738251445513315215531153468462121836647257586766836682815828626471742637284432231581451817541355431363278237422137768568381426838563542561367272557422141253423148413256854732574135847133861844785616467442661241434213166752331467774335257763876883361156856664222344568443312817311176677325333567521232268138738533381782332348112784677571233176173752151375752646764533545521238114878174538481166571512261858756855738852886811638381273267224726111585752247362761884262654745513268421532457542381774658741157844473515647268355114536266268834178388521483485515125382615568833757426436736383451881727474844886447157481278132287341177248588248724563242742166851565141116581537674667553336183245451436682325248676532552721715147172426657368836556467621711315778831665258243515222671731537116616763158634181273142284356167444177353826383121482212316611211525411418285113213833264582512361872132617227588758832882623856541711571368825761754121877248414542515612381744586758757332373344411642536622746523465387576426837817732561355724161356115424217564457362416577152756264666786521625453688124581675457832271538612226243125565248454814232382757841652663388428154255565452646512274842242758755866288612762273166567458544425578887724612886784541176817826534433875443282877833647485886546158123637127863666616226615866678277521177465628178687838236781475344812455627582258122535271835228576432181428312261433527327831555387417221747865877881738383155574482813574441815782545471476831145236581882772837158383417661362884528378154826382227225852785875813512124565885774315717176635783253462777167646674831638468628142157216821442265267348852724475576166364415273718611285443747183668115513732628358367427713368545546766211377824742353111146867583765356355747228322373383658477762456253436755386575722176831476578864216543777236415571741877313218586826285677125538573647237555264465252388787351878311134548123266657556433737832553625166647552883627152345717138387562285657724245158751342712312224341563154568242126127757185766367484781857767161442237134577814623253314682565216488858877764843264255582444662361836835318484376753822733386121223566763628127753752615584283325548726284262527888728377415783127568285372484888867566424561862628315718128124717525323368353232253438312373658522623151153875186336337253488127781752736724331631433855362363237714153345435518248514636531713374451774836547568178433272333367663647146568875481413432624517374255836344342472582512438871328731181784224461286446288244855535512381418525542243537153528268486235333282445336541453425888887527711238341561824736667364724646424213216268837411774666748271572818228512584812175118774767736676265225142413366877463721651187625384584714142786348587323328252357417478553488128147776728612516344282654683552556112671322442733228271545862784281435226836721212621642888767273882464767455266415238837712386283488846352875375768467328115731171135747645261426361252768353436237472242328457684461354255457777532712544441876331152166678167586637888113782281265178716711258883782363648457545248688437554223458382256118833214763726538541553273314622274264542581821742586772173522736851375231332865172361544565318681684827817712161313134441677657484876444731847645614128784636165531765854825451527621566638313526613755354858521378316665566837555542274361227823828273741188625276161586275763665653113623372561263282575653136563533811838742765742618342642367531577536222857548665381552487217332652461663283138668382536354747683736511778282725454514315776525515325811875757164122443627345565186354342884687618514473764431536362463352477224265328616715865283315531475767385434161411156673524244852548334574856817613442768748232152544168255722288583465321841122376454366525644611647346811612716512547355488768881371571647535255876468818852552241815646256747135363334231142363851281726452352555878167162855857846137444235482555452225272664467246681611326162673562671824837612461217385618536854728576861641754544164611554825117653441471236551154475517668378712143251264525581645763511534274358664356478815168352672342765382735867615315778371228343235423685787655253431155146172151312542732684868272874558263435263336576415718434622777381312524727272773164816348273678415264625538477674242473852386237751737442371225311247441341858312184885238817487513124744711736543147226717624544446526156611452335247534183417752221726573388582673242641677434342381525854461548528641415257378575546188242863524478521615541187618178568756114453472143666343711667324886517621854635187382668625247334851722464847113843266117323612214245188541352322536813711662572863277143744873713183448216355258537148388474334611614634336557562163662566615176616166218735658535788123674357528386624664281648838787263357726623174147526257247687271463855523587187526882676223132778231353327187845632568851234117522627545455721448384388172178516668281733314825645141645528468213682731167236782152122374276717246121784513378284864282275863446758587555844738322617415683114685344116552641648561371856857334855135657573523266314111453752214723857714635152348728551446666115411852881563414385722855338611227361168736136262623878218766757385363842524737115453141627351658243233375435842444727886372456142451685848133344626272726622136838167538447462711187378822782174858422136733611621114662412678744653852214265214872345586322365482377564177317452686823522347857783248526444871126414435556853787618561875461242783835542344273654617766878184348548784187476758825753451466581524482466815651218775682717453561621756554778766445125762227232363455776352817558227414382625848384468765152524185713382563667654787644818767264751151317341115282836477151474561642363666774188353587463512864688883738264371365232867385257674348582228323341563746242723382673512731462763427462182834361238251118153885845652566621753743358858832886587134771528382635566568137874643412886527213373411753632271541557624332753277237821753142783547871474565844663251246421356517172621644317662684764125617465733112175415848715272351532437127127283713414855571615748873454253672823828324568546781647651765718152853855118821518343778753338815181245353315365788266618618516275756188428812187171422172112686873352281142356134236345213142715132746737634313523224315626486785856341168168127418746867377854228848526484463213743511335732243714752212247464725166711448561551816723847372423138675421344186156435788384436336364516312617473623262781281431127244674422321388672851636678757573647748172616262326186764346264284875543371184286415747378815882871541567534124332816484352511715536678218662611852517143764542264738428473224311166736774345252612213757268561363832321711323558361626441466154824255833834846874142686388185256573732184278766777113613627714558712612226184447255535453344458316266875552686172542754254511287824263434564378211876362488527365453383756844831125422562488882537563655336428487136863678677512865332521263768243735714642552354853765888836851884572812666568834876335235776436574645478232785788522782438273747862278718857234182372422181871644563241145525635723662532535468583516377548263634687557677775584752571332828272327768584458518674737822623587426263738235152831118862631188538215284777374256254241124181618521216374278384666787881865836885663816372871317673468265738185323528324413213662625637862846178437138548736714842122817158566467346782532273234445233615658416716553615871813817531587634662817564711168225426746883465888788656646658532274567234567737626348513844864182425844352212568364232126223678532172424314258145435334825874883612521847453834546766338524574841762553465468484267561228267538375247444677636621546555573115511225536112463744855322846713163252414275437628764413256744752736874483535483471577711254646576374783623751264773663655728266762816367351334723645671248656118381684228828451323851665546726423472784482886688142727338671433476533638838617263442774713546441218443132158546542635775786232728733642814855221151614874364145885858758315734815665121244557727368355373462533655867188111888436153247462375657844321332181514316237874227343137266251131256277461764352673153576363462147663261253348226532765483488364616121616187821361216733668585663835185315163688616141826742165465534152335514241612613847754157521683576144137268135481863848386435474755255653255471567732467161625761443118382448262644756354183668474772361172167738875627783126864318412326473336834452832243536137175863522522222336521611661444718386637576417516365182238278351256588157685255848455637223748742581283838141415856478862256746855162835711841112746414538811253726125266227837162428842587274466734352133422215143817253637145424836688638858461736222372176388742426171846471438251848754453887736532585841654635686663124123553313543236752225464232111577544862285565252141253673453261831127744151546447164482613621474546837444467768573682568882836452741552567442166346258248343674758574642252165766482475475344786442575367272764424337736132521831778173711656215284146741868532315711152236543663266827865477527715822784224557462723578737558146684741852167771123372834678358635178242155533615581673727354833417122887447764834162854486475785564563874322622188354488184671217321618747821125626765745718886387158548381868247822155313362552454874811567278877151672877741685771341184821424288827175531585762765565623664251122736248265428565288367542654635575381273425457166684454326658324713586746172757573685134786434765622115671763382321731778573836268376554516833655415458467466154872243563126388436147185483268224347611163482842326222637645636662217274521372214422384265688163273661228826136264413871255138143378157548258563173437144323224522226872564537885815768716188541358123871318765825563128788318442824318816578257365663352788784152243744158671576714136823852827248178255638786566546387554413873782616276725568838638471582771258886372864227727671385422561273248567334353232576313624762855861774627721231857685556141815488244573154136113438184318385512525574775355625668548165562732844518584288457172645518736126817438185471135814164382375853344157553212272442448575774835361363787215883286317833411564266861241627283218588453381124511887868111421716653357354466486572175845184634816317134237776144842233712732832232135228114677747652117877172811871163163117773648528114722678664771244254838361782383641518243531615621271774753188833684617567688261858587178155858337355722677551323863341146547431863455388645743111332136656261357518718661854221851131656373418736713641632744746848165313628268551784564648713483151287226243785744817868728635137724335621686241387175663615775666651337887512316175358578737381166158555363113772363282765612414171632338546524421711674224155431261184127645686744527881112321486513862436113454762622337155212828875235433437411643463878565454323585715258566631646832557181573518288462837367342615856433482458344852125543363211485288445246632233484657652873887217228314877716156472854747117835413344632112774482286367246515746146521687536535452755461182663876634464883616853144657356174477627234338561256237254185714717346231221246863655242347775763416171713837632563256172536128351134615614463226512776638331332834465532847366174832585485125877422645748343112285452652738437835168243254534344586627712741584711782716228624778422817258378365125312681333627338436312381783415112866888332751668111286876884484276853855638465463158427217524538384675827762468342383614125575175241633315428153743228331545223434466484613574568541471284675625123438886824346382138128456634346276242434867654766438145424715231714154147571836446841472532255212317778316315611314328273484574715551572777148171278787133552848265778834448413281168448755626238377377772388518576271236457177126521455384342278465577734318722143778324745133678785674775654767723344785415633427543171253216157183263618853751612161753273755654161117113178726821685864858482715576443442171672627322417124212738143484383337288671887381777827483738837356646612461866111568427362351156727255162755436253182834621782271866538312822246522311773533756858263711153273485532671644825371366254351537576146874148117342338655786711267838333784355175878825184775512162654843465844543214624267335287364654662333474715844851751876713745372274438566251253818816544434833742351727584266566224445785357338231278637722447751712441842375255343222654717351131342336561746872268135273624624347547264318513688312526777821342215822813561718415354818681485522761862885842573277675522322863146711861234388677242661882156137415563575572518821753723185687284642865284114683678126185662142523318887817164118572381834285356574243611417575443368168157571817388558666124237532288164688675212166683862182424641326375814224386823821178836367488783484416542314352338823658455134133471731827343245216437144544147152232284885825535258158271555856736136123274734128582518525677461774543761841453172238751136743837843238881133331221115718481443217227676486686417465155682645133512141485232472888454131762174315526556246371161525675762876116254871354848156175321883747425637285327422484752884558881442872682781637546873748315862115853278838868728227587287372447538817562467111887447356742585455416863775373872773374128778471582277226441425684837281177684653847425661712347417224333787238124525288846246677468857734326385647857447723271886448383731558181545386737153148454483333187866522226787383673588584887283651127788575162345352727276663117616586221627512734876712478745326873584633453343642127733376868664881124336651674753333566864886386157481623777833863785583858655151751538567357341236755626672244881858426813614424118261815721211863721277447441821434584643731424463471382745786546653737161773825334821184371615467441237373264787856866162242357611783321543683475742455338422887647866576856762346257676388185858323831685443276768317137624811847742877222416783781251182188243534477216456186142167637746627671688526227887388455825461748574623372864433358261331867558413745241416451443365268756567128111684412156781184621382828786464483544655885162138755823558385615725276346423623218766623528756337823554815337557182463482867567128142447831352257861316114836618314444217833725617488115265885735876466751717877774385577267641315812354135781337764832747528616217188583277821754856737385826513123843737625452726281825514835283587747678222153773442667252672637473241737144478333416372211173872713453853151884841665856564522688614516722872142628361836878725743818287445251437825164763321455653467273714444845413555484518744777686843477778181115251677632711366531845431815516287856688838653326472882677245835787166538352581887153828643383742515864581628728382673524544484625712357181872566635843187413775333235135128846665761166567723125845547626611837511374837471652853463814545337785474574438155856261552125225681848483585417681176218871288337437844283414371445235133711441743544863811824158243422763414475518515513514166151388245285611222768136486551353853776452622411587566375637424626811326545773748366864236136218566614358517858843548138413138583723355873464368383384784764628612613881217632531655615272221287465654574324244271742126848867415847183284315733777578744711547612522731862542888324315445216847288148186857613345742186613317284687664838681132376475725223883368735284764544663377568271241433823583145281566562327885525328327537532117132487671141367881822644284115778184423533251158117747357724163567171143424426186777674163538483862836765317873352775258162127411653841447745747622217114372628755245251611382653878386775654518634825146765812885534361433753783754427183343438158243786177424458481866281212766772636342753788435137724584372626481281346332765175723333467631875662715184376542733136464783752138265472716532611621834124466245753881247781622751753251356171323528243688457583275261263536258267288157111438724336123866652678255167537576558557328513375113627282844413724431757588777184323713667114155558242181848444546836783661663828514611415311454123418335188451417577675225227381636536646652388123572168682272852364825241177858224421458345446264352836631135144453555278681173414357882612813317361744474477688232681861167368782736874178758648778562645442376536734833825555413356287647446761551623112236463755275848451136787768236128356688316766313176662558247841575225143476274172328531551115151642842856232546747417224324436251822216421551814311223512624336437515857578338468487428552652484825476745767675321233784538675264473263346774374156836456381827422338638414842327827351558627151371223754315216514486152133744548261553144254521836648418751824811852833348417461731747624473763538437633361176756511448877752215644577521687861686442485777115548114426575157274827634823628263748382626722346688232623572465458185356685536315235186142255662376878348512218722886317224657486241735382212151251871458832371862145244152266888153788447676448511234331127723485342375751155826835127236578524627716477284685855554137655374753544853762816217624784531757811354628566457145564653226768368482754727254537785256248735433867221367681728588612432862275478851854738711731357166861277382257844483434273768375847663488674278287587515753477632518515543867873313258415648273433854118182858888262718841857267223534134388874567455346318235147161431568124237863214814734314711421463145268833253341423428786545653124241134328348342348838651222274317477478118814718788334123711332745574552227588135834185375128853577584612537141511161368576538576145163235848665733731374137553227422614214747337361368448384626155886314477372115712626643774156545243357275853481363534727324544638165471663173725168527426461514511655428486365848852363816167578322738465267663227452642455871568353366474321247674827731827645667564828812633477761618417362418335423424244582475125666551411184533561165225451832585821862661681845122343875547767851143826675646328453417867714411172163787338156562518812753351867172127752327141812787141166161564466227421722562627283315678316451147546334552724311516235163314177543743387136464275868133438747358348237647151568755668518558185576518874778816578726364381215464122176255125444425648248768112478347851138643674755646323238134868425435358525667812531418413765414556142611737624447288211157385711475352112531145751641443777428236338248483266348474288443842755358278176183734638755368354526613227285562414544521653375434264286873438648713325877876536813338627837483143334538377631882331863625562763666785784224323213218242384247274761111138231512437413213634448585356836748858618525746718221178315615371345813465158646237212748165511284442788152582261681742317865874188375841116874148784834487883182636331111688181161138278844854184473583328735813513236781273652618125117886556474664441168332262761362667488736814117225124781174777555364314664672283455845628786558752878316474514856112233718562156841862576634788486578551574485158243161421788718133178716343427418426324314354866372228521763373282524124121124717521242284428717136137511317658117133817151817761471881181556424833784688381244282282251822534674161481136741236145837635555633786716766152244715815437881228488768223737547185283786382374323766478662283183377537254452482747473856265242466831725852216341758751537752155657688882127418284645785362246678258727885436313476132655478727638376745475175134683558263752282278754183562261311663548531756834576876748666684357673542376541687355646663112444313233437773752357528282553416584476485374566553862786613128435774234768332576874621487668313887162254147272535614644477117183811623274612465185568676157863821682826147282667784428734272578648586282676451318452832431287227234424383114185686486518337626581843147815475542847567587165475456626326734855248566136411145356538257517183577232834372153547887571441256174886186281183326776535268352868825682171775177725178313384151658288453142655487613348235612476462867372113323781171614362178422675418371323687366434437545174812428456474411313613155465841442251762471527324545821254426461343328537255587147611476538262763265725512766242117216458863751146225743535258166546348846828574316557461185187328644617186842148354217216473815776316622173277121231827365623717585766634153552635436851582473888442125231153373725227737142832746124334841844276764554155258318671214315385424751375377811411338255243433171453241378235246841752173426324428311447127643136672555784436535262223684555725288144584133355568477656228661251752376651655267716568872725811572328152626713654111885764334848272753821317333631431614213287273137171226541863872623238228114873772558221874762144123182563566825667655644781162171271816868621787663814371157835818516313234824656647763744337725475163856155581864617552174533177344246728867851487724138242426847457711613165765657636547558258552488435642388522884356168641613843745375574246382434711675315615841275613874274433761544145215786475853312388738676736712422557365566754583536512752537646512438652437756211537473544477147847521653418786555184424553336727271213254711435642284515545774612633855133146372187227438826484334385485658146253542174173423555844481663567851814672751268221465574646561435183562453441157114663634451481568825757262737547174114448255227771423735868431847816411833212888582571247787742448141718221375815661542171762665541622281885486631471678432518261382272367776241884838763733425422638525463784471843581761612354483845543528834624174722788674688181315264136285668142786725885551572764276464631683477231475547583771358662642461625287816551426762556171354417566756346583611143288517683743656338533888728831846863333673518818762236128672463151181327645246683513274122855832146665211672321366552133735328283556266722654377613876858557476738516857181225886341846583416776714251635657244448513768668424111276251725316721442425368712877116682341747586331478665553657154784524578187627635313755772563148261227787356181321663857774154831758388634414446261465841325477451456135565528813851415484632477284783421668351652762812375581166126434282237718845783137246821533842352541827727157467258441511414516451222881766618124166276784324856177844832252261334822317438782281854123348222855324244186545752424885878512454155476443166357316656855862727873576837232446333668362438571165183475756186388653251388726581186431676375122147358855546865132471418144442515118864435732115848181512842763168866478123883277756524675753761763466448415624268877145517841523541352882531543582383528374343686482686811564834131473371372657857736574511684763767162811142747626175415562548585418651661524373156356771642562717434166228524728522861131856184846153762683142663758738834614185481443512583458442485384424571226752278187344274374578681258867651435435335341445761731516211865125234727817158235278381816814162382733534185875213233781551634528683623628376817877734755534846823844723721517853436473142285854218386577385656811555425642884315712255655221867633741165351757118222786165133852716523155782682671765238642884745414475165882661613836887744235432446853513475126415781263255465518262182136237548177763275322747435614516216851738322331758811453871447757453216617736523161125124125762363381822375733641718421578145768287356154637617678586325826163188585381431287626343144333511815565152714588457743124214464132678851112161672554565676183215341836113271747661186662837257458542748236772355334657442243677313544434612513133257863656682523564876154214274451326388138871717213865373761226814344226162252678675271136744115586674872264182856244226817115634882186821331583214385873751374464644132161286176512766142138546567562475551768275462236316331676541648812184513225438661488237578323721875443454817541376368777616687653367611766582526323857625344726213644326136254555747275671737558778827522224668821717373166877566524874265217216746654126722365887485468851462123784866314432187413156122764546823865363726673434418166754377165838556844318627755338111117562264781172478122783186884614432647673487215216353352527875187328687113834241543768637182512184831441413424577832552862287484457163218212566125262365244671183815783413621837512428834188665655311557871648516417351356813165312436212736654184881833371287724855345527851368457227215232513675375417811814858467257772848774112512118658114657164817762726226144314276757328736784661523312525113282863355315672157276517645843252124441641725137756264117252575356787523214716658872152747683827213852373321643312413356782174512563687681632662411645135311427564511361114761127658328548357175536631416871558124126837568446681831571335451368437717252265882684448447674476431811773811458535635371127463225862851846853673725448451867255443314118661187871581416353144288426876451231134653711285181578237786218223885431477483168187626265573461461613417754221281837654178386438186187878312137181833137826336713513861762661175237247886685175383556613468244657347637364577216232782715628752672255658126714276163814243638857161336244575553866356437411356764457147263628625126631562317141183867374633562764214232157422237574128242417645752344411723132851853834741625767182418282165327428323687636871648556573388872328322577127325341886621845714633655471878371722521742543283336653766755481243351312253233562386274836262873214715187422344263552511287176854412672478274687648711775353545855724833551876441386142577838585764236147746472471885258528535618688483877523337176382221233714378278573811841628445366341587632556162362162233647861555371144815673778683873826318455551335422871737484742133433335557581738133676422816666818813238855188887235547687452123671688384753748537772622254335264838757811884524488532447747134174166527523662217231871452254363365177741724885677666427614636651337768441846114847288626285527551187143133441784371828547251522631132812352817136238641423274844624822223423833512276788167268342318472778772618884268756548131851718144622782541565556766778845623286658715721576188376162625874218542288661425185688355134523611661451333165641715712315434662435541261573624712172223453411518653747486767817215434466473434466441266423814431634667115424532733525367525637781734542741883646118332181524811673224155124175456378255314414141137433814118655154648746354758462371641757781853427818345782644562686437374378677247278657487525772224818146871715373225662531267876154857323453882871553323488774281552171336632421545546773732846582781733153362382546821354457614841588562788684725424541642428571535452642377758871332463215738778485536454286784584682122282248775317651136773832412574481671358755327487745138376514541314436878527833617367712422546264377163825414742568125257477765311676145372656578471564177855185233737863218526432588686443158232272674862724236453322663645238454222625854376523712148421543547866747434727271467642343814227622462814143762574344248535557188315453554521368761374714356236623838882323156618684674776551733283177871886256286531617454143822236185271413732152228665645147867643722862221133215137312415888653112788521631827231822862267181161241718448212821173765673552257348125638651747516481165372214647626871742585116653458877164547866355816135636167313817385715368185253765118315213561118556783758864322727425686118226732426412365486545486526227745478332877775322645352623812473181124777463585666852621676832282381448855212475632511577337257454158121241445528645664254178722234686626522168513245352638312581826584853126676611233466484228862387683685333651473785235226171811648626228272738777357866245333416165653242434817544382673226223537653844276274134231818287876838681865171665735745843463226716463248743578228614115348347187683823856312884735832263183482832223275866635717362257164473365565573236718181884768273521856271637622463378147122148817561357187856263157152561332382755851458852567544316238761888775341876843755628616171166156642265361634618247727526381855331443546528546562328747266268782483744263237552654234151336823122113321581125341364746741337211326315162174568313476666488211817318523677744345273551215283841462171338118284728162757876832175874876553468542125262135438533787785111454365274311264723446422257767461816582887615743156484521354211767524373251335546873414146423518137555746861281575785886617635647111555847127773452622378743167747813164873656158382128151864718216124477451123112271755558631546825863774783154378325561411262823426485841225321312766576281153452712852874575216451777484215412543344583656347581367774311517763666286257743677412271671432315577857568124152788127755885676841633251258325215174568725383644474668441363851438775457563537663131844667124266121326631183525825521176556863241348623677141683342826362835846841527786351186177266714663854528371236758537335758516533835176822684876741643735442215117363161281385575218558764654252677151741736382828545178454571615276851124328561432511555821552748535313344882142362824565517677382782283383463558457812132786323562447666123148655443325412711154758336814115837143164572462434778411676774347742158267811721768516574722353114225783351418586114737811743144432167814121531247271142125435435513483464526517133136318417652223458485544864666846636377254142384283454747271544264512123426323613614684278233328746644156474642513642755675677332886358616132858234816572211638538862788562355867835571662385357811288616847185787444176226622213887758218128217718724513274452441886727475362728381347555667862162311747442673573323178353141323454245171815864755261763164266177582766756818485628386661746452822784445716446165114432426228362256517257887562148273121417435222567348645553436321233848748151876462343865818247231232165847632468364337735345138722125271654857552575437857437428272766742714621475825361781683621564715685134762461567656426654461852422681167371436852581736361435364418226121121713138722445257372783621128771537781778671215644878221188874636476234683773443432423222176516255537164852355315427436611862653773371676568618311741172274145434452586741426327188116282315815327244487436768638215685732123521885344857541564182631214122331131532127472545612775865864766776541623461322578736373571857313167238445273837771268533385723138447153236531175782625641783115826722742562378755187238315222773232416661587431646228621237476318526253817752582212263883781432188675565426365286371268455358157123541272528285423441152677381782156232181568112122687835354344226536735488166768115457181222313653416143815683381446325113341326653833384823853883282463463485656126452714266123142385232572623222756114272783164753473616478481633113272856353748757175723638458655143248731822753362723753687261735628363452216531678664881724557235652167744214833815162711366645328482876463766724186347131312883548683818353612127422724552621661641847533513671222364428582635786556381546475583781738455388838582271814558768247788442171834458677637758736317856717513586142165445272734465757288158825576443684363445558734654525524632476742768771136816477431757232336611854833635333832742526435648311163226476625678831143683323324876818527755431823174823722218267855773258767865834426464275263655783225613465127526764858535482847851286143642264727823745443216118687487433546685444637133324582551866718731215641288583522142756558711458468611676345314567624166124668515343171625742318632214516833761182351122616513266857414664641426622631557217222727325452735544815737884462273132838435574744282775661664858868652665828164574637864547184551523658827875831163721871751222864316367723376371332337478211454572874456744168113816622317443567365717242355363533864612546868713148764688323545512672733185666142887453155366584657582467141645414856227455671143853711524645856857241143321482657645663717384845765441768768645115538728314365823566348386751126676234163281752627312347828532856378745135117848661561131153255748434113364264612455537534525661621626124186566428143563574752573522824384857366831273512673747758147247218636335124465281374135681474364844237748843441437446166722228313773363857358362772278857758685544766263665552418324876752326831427244266683444143231713144717526416574314555638858511812358772127736357473813514565353254182813783478723774232654246457847134261477156142252386772124877352735443117613825624462361734558418853251687541228355458232687387874366815751443365527481665165851154651836172877235875618375477243377477742516188554721418523414742345686544244768251857728731261182632173567854736533372854577384226132378144277742738682726515134634567532141411671226487228428553818762533374112731548821537443341774616115423315326875535448431424782583611142241537757387832543638855286356177617273163524777757613228424773658476451413741332253242173537481417748781142764181111278212857557118147723866145743767647511163868474125888583777151585356163326262264453473756563622324521718583626662816873515473664223864773722478346114352718243251517553544773614814111376781123231686841174125524824643138716181756421536137358352673682563243835674486166752473252221437638632256585767224123347256361633252474184346237586731323111771666511176477781221861663173626681351155663418231884152856887354358153625136526625772173633567861575415175447278767163435358715738271655718536223676876222153346822856237156475443187716672563355121744226864515522468634881273485436557325436655452424711588734277718642742216652754812857442826617337423331882744885751611763588833762654351211387773551316353225288325421147266622566656178312786425857637422273146473777775534876568313255434445274138816436524377875361424524248513161771133236522118256228348356363121124814355566173662312814532838617788234777283131326216666426156836411555461778462252825334848317158724836162628744613886881782314842445728842732868727424264162456357745431521463845754877884118435778423131144238475731535115625281887212872362818183723374545264722647513611881565747775215488861642552837887641385678251418456527343543882632457825518658284523347357554386513162633554171537538422774374612618743668273816756667853441527777653681527514841526177433145783335685423768354173476388262621653878181164868164828617332418244288187712358866334385727535515624534172327811513648886651811168588617718286327378267711557565224252812532223647655213768585114321171331232186838111376245726825834634616823665575614185644136385367717116433861287614844117634867417825558822642168233648221563424813437476641437341372883856368755617216847676172276865837654586766684158824628413281488365682165714865756885715225852854183886443531123463123642784148224514758212821334235586345426138546832427326118432158441882382746515327255736476652283252342533778422213476231455372653887622585584624738457561784851846777544714343325867474554826122488221317382581773582544615376123685722527466422442312638356864334513635568871735862734631483726844374711685468832212372871338633722217847482154833766855855828882677538845121221263755232674361214657223724413525862552438423514636557436544765438355184143163133477737488846248745355638686111845434341214875456158582261437238678264251325567264174766671481427132527325763345721713531278387717121527761615274835878863588448217828615565751253446814361364855647374842226748248548563565622756372642733214787648313338787173377448682678668233231153648413442356873712774367346343224135478574862223887371724545454836471118182864338667718728162525731831721714216778226768742614854844115676157433152645581726822426876551836331533414538572774682171382472224844242382321415464367817753831132225445366476581187584865238812131644267573848817724722412482312145528174864864423765615422658553165648113251317654272324555417372545223448238182228422464674573714125366878758637535473856472322683126614356828353867724258451638637355457146642135426548454584256158555466281154513864711335742223748352562637755742338132373582535151324157718484274257185111254766565866327333742257633834526654316564386688161253676166417261311124143422425217563761476863584655666125836243551743451117463585663432881312557337543351716153635648487435551471745242827331668383838448814112783376175527552256246271277548425423787341862687322646722542281612676577265135733617441264471526345161846256646624437225351877623888844365681457566458572548126373867861546358113427362216114512765263884528286437242257435876723116415436446158541655557223512573271733234448158234656248586414633675668118525535666482416647177423588458172212648274872656231563837741448636472385474616828143142575636351817724452873272746246365535822678551583771665558731436686787836752522456531646338433768455817284415352661745164677665671742666674878653783116545427543337454778876412757665471578143463264313286545781364812866841884277278265831415212513466122716274618285677388866236163475253542678587263867455244721724116367236685218485847157516555755258162646824461124436874518775382265185487841828132328746421621424584233584675545377832562613442711274248367773327711634454485545658644667126137715434871828473625656624413115542785271343287238484133461641865241465481676188835147152183778884131636714411164544158235273168177712448458463586818588116163877767163825563423773747324832881663241283745754143824416816165712233822753138533884335622335875765156313626566755855237167522218614112363688872567757554126383263274177316814727288825183323588674177477265226636335744762187652631565158541824646887361241113345863564188186427716311432188483881813113872631172518623428437683474752158878184845863822754683137224885554238524777136327457737315312836848817142425144871323214442584757444715156331725524512642762246657745321144783845155226413374821481182754748711416638845864433143247184175155655485875273373687568447855427583712366575824878646557343441216373278844416452423647437443468264572263563827256486841675688512838713138837448758518547716334584461334836747431372315643166422537568668424753847674817322634444367842773234528854342243462526524474558543652646777818723132481517123877823144333271637541656766248584875871478484437387134667482142411515314351658155827185784865713438161153685681283187344442678833888615664241838715641241828727177627772215865746121184773661248111785173338824283272356381325233877273576235652838735155284376344768174417668823862577753282473858547177732481676611446763671874537813455511348116742484422275585386343563586564745854163877446143743681556868354726883378133414748224771144161258857843726753887716851864472214655211587743233671366433447657181627376166146124217522766388767781534816372871467828262412175734554614432336344745328531435877218561614437228583732761514668588515262572114821761826164117154574687636733825818162645725678133278642324313761464617258727387665535434555817552822414345772245668312767828572644572176324435178511753322835218363461288313571437478327462188675838715613651681217736554428877577158388551581616271712724422836743362774843574318148237348442223125864455784721325315731645533712187514243222351856181261321661576416477416688682162677726554528858366124674328425684143785824766483265544142581256661616865313843338471544613485167788582173377361875836164124687577133312315248787487755263632141721721552763722227113288458364422154278163814223583562574126235336415412312471646683517871318413248781676535665832888757577534428414233873428613718654118538177887417415716667655271387752755515825663844671226445141835617325777224425752873224338432717216771563612376445463716425583173357464632566261614684432657855756314647584227357637747811466557347723577666183833323264226468363742166683383386574512871384287273455722252176415552426456546362276458661448788152314628431636855261234848725427327675388338621716885178627251158427643346265255814522274166662671152445663355746367243641124873885211473467158643566512561857854431175122523557412728573577161271387466625841477351278443826644741376658223357781878783755425868557333724746536584243127666828875774755316856376381363615387883267514734516282537625585285672687428588525812154886142631868145584211162358562631812265838443118471163388823142647825115828126535242547188151734673751422173343433283163637627746237231387338342367564583162825235825612412435362184214527316571777348561661783868288312747486264165672425282468147165245655378742177828535442443858441113286742858716368871725166626384674357121152354812174257871325678222633684736326285616165286362353422457541248855185483873376472481686557232784468118814282546675725267857616753724411781642471832345687438224182241288861118767853238173854161375364837114577474366861256258384472562343781515112487271713712856264317384345425623141777134335613124548161588752632411221313864845115813137824773834622622825861571162144513187176428277478643651734618761148444245764567143418453584562545255271753871482488312361324145351845686185711841731837651234356428847344724774757827388463515816452373752718382744578286413153418546573734438262636215552727265185451783835553672362434616183362724853753465341167826457134457348685676674224382181732345451345275358627715335214757188514634723124853484176585141556477457816264638678156423877634462823461186536285661417466341354212258335648455537348173776478711182824545151211141625884347278257125536132728521372842172886482288423125863785721624427567816733734183381648727458516434224514743353642415184711451783222337483685158261436876628618687731638117511284344512861882766346178841551376366637881171836567362835848646331111461548688832424514717348163741757727447311143561821555428381376664515186766734732847178628624881447824212884164337113661212681612264572377441471842215332282332245363567813151255842434651553474877315786218281474517661785731384174364872461468538863817282771358375431676331371876837653512286234377146375478434777628171888578176577722128168457781764454127876381278372845847336861175173847247853886652215145313411625176762367554825116376877774843256714131555544222828617145517528368678681852843234762276783255273626553347548833118234574715171852377628231123181673186143652623842478352361331384383617161717278826428622445144531582455116721773234263326787842117813424663727637725153413384164452768816857737578771181886461413651351813352178854624481136747268212853787112166235644323684122112254143558636145576627677255356278574845515721145623587363817372236277715874687265232827774313533317157353623416625717356476736636188534786216448836738176426146456315482277522182464367161442156774882618527733178173676332416242641427461721274752726555685371224252165126782377531245772428482524721382677863425447585734444285544264117765214447264747257567233326627262372736311685172844734755186474618787228345553654813348744282353247636561636667155488841458552563486151283466348775468472136351581812872834627366711417527844861856255124473871666315736326424476267331445743461216641177726735527152186246584311645323282745166767637853677176711338328511766423376748714373851653685342388131435778436855757733753484233133743371181675337177154363382682545771878653843621223228155372445531377241242574283514228614857571218684714633147165583264625448251738876458331237656671118323345128813227147757583827684536536135673114578861776678245567827586735283247711778224645362652277861548461342386878858446372286881814857743847686287218846653442228572455346776412882746272433314363477668154661861212428663661716122555251584676357411434482477746867574333667483841653188834417662588828746353343317377336675212362828811285431457386678154534567658216236438262161318821874436853841663826811214814785588118711655727775175753253512767468315152581167543728132352547442173357277282625114617741861475658885414783864231662143211258324378771861733826153254245227656772731586266467761256366548321166211755263728483474671432861136626313826815512458877681774857588188882648281312186425211566885585571424811846716447635672341816125253353824654165537113314164676858241512574141214171122587532826717738674758875844122761383472762612348635678364346528548657411367413143511217537741572443844677235238456173813457415225271618437842574283548885482871217338272132851476317853188354474827713673837673873768675372785876434387552126324557286632461157481726642551272544428752818561421268484648767637631675743481412274133267154573843622862262828187166484356474648711814181877757352616213746371757828834183747334482178123417583155854158423243373286167118735732887111842835331246713314386731638135638888122236877825341684427837511256238328676168568645247547364146751653321186551584115536868444221256275254516655733486658683175267476862138715155484135515828285111767572437634268233783852872582638254316736253744221225374188832547544237718783875883582567521465238512153828316482427264883136515236448412182347558163162342163685116116216846762468673514421641846247528371636864517468766537382173443431181757717522268538354523563776576637178546723366717851777252721241857522251356517488246568726582584425212334654481175632378148864316786675152286264615438444331456116475646756278311553584583245826231482147463363335472782723472114714177722628622335565357685482763261728857838162678324641388543466245242882514433152233227663678111521378586518512675853437765766488233242412458686753213878523332745635863775444186173837551741184264757215356732238588455141215332375266317141261781783116777377525138468734826613452638817612264443346331387735162842733278453414737137634517262135315271785132463875455872418568768444223433641838171548775443325736828857327367776886745455345585256752378225181356147348544688775461355246513247728313233353247451286671387322761656671815886643627185782528485432286783178741173852131348284487376565861821828275154178867174813568723774543537633717712328766138562526672884437427255143878358373244713668112548135536525226645838478345323166168382841223784486114847335542825844714526763222422775365738687272323662128446245484622261731524443471682282826536885773533252515541576416665127774123165382227468586244561177455737232326148873737252365874785177752583366752714686584177436634566335667254882457776775617177285738872754853268813682828423248628273468761743414763822554747366382618342335365448417651214647144214735837232573134586574544418435775145568774156213531571188538276582115671256544756422537157146782863247251474857268483714518778642556448176348155865845416354725176481415736432885275633137278677336144676325285311871273181625455755284523282332486414371143555247636775165864263774828683645826658414877164572531687536562151623624772577613753527462274188767286545681231512464367245652384214864114183754866111725141871457712322387368765265224785578225163262161883748253641725134153631553626476636347273231741846261832811547772515121313187242468228318361728865267265234858762774315817188553236521244245782668167267664386661388364485842715762558132451184723321436521687232476371583372621658482211876386414211826754675627363244787137765855547281655887621834174886461823274783438127446525124123425427715272234283544315867875227435263457361777742248782275414746131345163821382273152741476837331332717181825783115358814656545375435341888578845441447578734453612235332855746152262628612724674764154358811326543462338211675732247268731762183138338756882264347732415458265447167624218882173856784111133546121852868737136488765345355665147244337876651466851545171324888618618216573375872185561218288231667548313337773672818671615585352726324313152831276745516235628581338351636735528314552262514451243175714156377365621544654186172145233688433851182243228335813677316466368631338511533452848726226851554286821546681535486445667151273552852565335358515318876357166488381557187633381476162366274581238345155784778587382188714733746737143288643353247357785275535878678615348645551142882225648816732478168614765476636744175862325161666687671235887248654221423635388628276315452876848337148877524255171467163262523223827472811326571526381316238441618153343445651772171227832443213677178471556582461282145858266531115614356872688627828175667322188628145411678542218724371278187866741177615366247728215383253645388264814246822681327826343264768755243333124784436374817232228251742664836472532758321111832553587761231568733814886516551612662214336384833221371136481132364482522222321313446111456466354463622843641677672488114426158286155215261347676873481813367884585786411412371637674731227624644328521566761414877152261617263212233756281241317174867545453678452486216337865744881455887232774883374667262622112713112772535824322787665443624482687573635334366522188213545572652225555155578812217637648217134253315571218785866446827717561553583127138524277578767544462286443414824443836475332283285475776236325738132736861155165373762472861444323266851533246464432645533267666653128772183746288433543866381836337723688864658357328662312115685263543416462164586554654552781374315516221186556868812237314118248766158738281544445355753354734727271123632753767113577871854112426488758614872782756514361461528268744614778855736457554587348333223351437434163678231651485175316632475374672635547611428884424754583222256128541172121678277361731618732231654768542615374116776556416271355347312133657738524266873212287437337547463353715877543868678487822742258541586685528416432371248171715626466146657314857753446114284426161462714245516178883614728822287342123533664467867887338737117443641564836334736523326815766627578615714517541818841347884326772618756364238878873624178272855776338165455311865886811724171624157562263461456823313182556287381723616644656227447414321148535627678441476787548151282283726474812523651836757333342327218713264125177777534363666485273154447528135513333458682137655132173535584152154881735638561244312361421773147146271451326437428645453512763576854681332631473325556777664883257675414247382381543281824478381738366781236135176416265563413555158437226788117714121674675511773626434274751342621444818131727271431525862682533544613625767343883644217376516551682868213637886757875674484726773648336586345632436164164245418664383853354834743118576517618345472744661138111172641456884738164354472152168277852664131523526528156763145823625557861823832678255847748432411856728571471525281684367277428122453377133144664618233652553162214283185111563514286528664647734324384715457775284846771824764355485765172855475536821873155442171663342186611764453321573134282865358138781844186327135315684587273783442186282781284485834181875735165841356516523668863143137671754858172712134117851354233662746748424684566873678462755222882653284668126472428852747331136362572544522821132584765617367514733544613812864733821446864731271215562558615188171685488478254874411352273758464243343257773232547361558534147452473467253576441767883713827638477722546764565258147185176428464745856624767353225631235846578823225846831655647226846481724676685771548515771568733543524142377856827748123736626561787853286873342785664646865683677444424273226456678641117544518423734323311516834715816331677626866164384155647737125727583151314622141513644527136267684851652223383141475834386621275537364173172183212661251487163386221218414324632877551668565465774714622253233877648475488646722318442323513682142876572555834132142761281426332235744165358738534776886648447256732814536268138116766237132556286476516323223784576788663425714548868281278468424268213154541655618388427852811827817211231366544563165541687781251137137155378483776831666455262232534416842572535778556367874667787838681725667256118415281333772342311872525331627358744444737552753447615818677513154267311263117853788188154774755872613488481883742747724267353712648177684474364548872364751216872556185484526841536338775486262426123362471174734464443688325426785227836134274331442661517726265674547827346635476524374723441615238522322855511323356738643611324863164861571668514344224255354347524127745473444865157574665218837118771137462525181445418188658458114726631478147782448315871583264545868823487364268166634378513836231782142564172858582627377542361341221876482647366515843417381482424178734685483721324652171726137133575142652533634756852614414874247623548617641726578741857845356285251686551348654545381185337124315372186737713234353432552138451677754237864373378637884154118644481823326422641323268244522583643684685433665483771315736575825252522731767314647677727275774188327162154775326184546455618164613518624768151646181413534117567725453746643726283388353363286548175138761628437634358683618358237326854135565117444468438832822641115477632238671286717611587433431647517482366146423254871724733717334163866531778255653385735775517672665328116883224451683262487856288672378147138465215578327771285134868734336241466575424883628387475367687173625444685652681228157581121584436132286638587521223848617633265548355687657566684645223145438844578155826464681231448653753727262747445248325817118861856814637673473567286684164132124474854422731256664888316715177183547886766547874361811557123532756325617158814137125241623845271423558261752224834124276176555364331213874166228232646124676371668381547154746468281812866361436353376788343648368155858585284836235822523776374776468374814414787351513477225314511445886183563418438444253458711551121431644184514217681845883547626325381655772813363136275446864516213748186376571843257712285625315671278513837832827767574216346872656314617466337164583114315618744465833335157835354352352728463878268118662154358782524465173171154661587311736475384617826231883831746273324857277625116785545845578216218512426747127666827523147627447865173754566114413334217861472868176428873343688887117462276873787581284478325824772388216712156876883112833532566785313778855623178378163182358885435412484835738627312521342282615842772242481431251862612882648313277358217317823876647844724615628225183583475378144514173243621638817267562678671212621812773513214636171327374354233273336357265347152773367664283272472726634365631515582468545854162251581186555273713655371563831723462431773362323545163735178731166321185488321542728717373255362551361466385126214774268485187221843641371553248623741376552344144418244755168612842676132335348441151446521571655571284486831535337442611755586145762267841611784647517551711572755173766513588653471815686655542115353571518462478548227448681787334347388813152863544188158617417513118586867634888155867417855662562287774526673377832662263316531341185226575778663516488736178274281722266324257218747487115171271227832264656267128454261438556568128243377885387841436561232844416432625274721261214522231124432242173517745733833375168137277463536556437122314318822485823738653425727526727245113222771653338336718667346737834325564535865458241766217751641663176448613248738766283148768843342853528514174136656636224228214166437447554536353533355743434541251154516531333355577738142485221776184623446347816476357417185871276328624857615141375283562155243862443718348841575254522324817852713253656317462677115814855457335526543773581755332872447551181547383577516657757643847464278834731255823357713574845482468368448135373575155123273672525423133633737275757866875348262671683123815731166863652743658534363562433115778463787568515265583526638116274237427844783178615553286286785867716566626822552614184321668235613136657156267146415724571418641148425726214114625853322158183654682274512868311516835716616863118374441687317454725385135388281125538285825427811486158387324885418135634336283718174111487757267647826321586477352553268122438864752473218754358462487851268665122325316372376323437834817872274373573267115614653243213162376372545548341466512823211226322646477133836674431323383322628544387251121347451548465466585458444826687631465126168216823434175567233665613825577518757761268782273548281177313221763541633228486317386812487721586748573881441177763238868721766221675165165671236421424385148632418112568244757568211611711743853864771752244561587327815156343318484431352717533322717173777215741764588646185187275153341737168225572213778488864446472231814826271187445142837148783516366424612627427623473887833358555887367286617441488385675172833228555142628554363387766831784216168373524266513588343646625733418844365488721766781122454533844535533247728485242821156471434874117482768728183775886334874438541848233774674662837551655254125621681567116171841786537611273451476248121484287234474355334375184614576372481824458551151277474422846265465253265121786871425766621344752866364842622828152614136767324177721764186885856684787571468466824862447736183667244568366371662235848432136161542117112688466546712644424282843153751681534857634755816386271473438514656123472567254554737873776613266547456618422564526412758281524734678146648783255562647334145435553533287744766888764383717826573782772332425124161281276868683663827642873451437447222528257482448314268464226637141288774331144162448483471253554241137251254637578474433415737252262853645678247153582531173788673744778357332687856216264224148174557481323253845232815426581468572132121435481528766325634747385585764417113662348841413547374511256583161346567127158228527674381526523623138742624213234553177146655636136672511836328465673254586168647425263866657682236222267762446247434737184534616327214157282573336775582644125314734838725573866224448614212413785775457822368557662543631861321515222511714426344214447441533288661537574586372688144545564571256815631788574411171135553677783171621418334465463576218277826832654614386748383626116822763135387667787168684135786284342324541376222638565875325842135736877825214436471647266436586771478336554816322443836266835314427812634635426231574717567717746647561148347832656737654432725256821681225775821511135238376513351871172256748765848258184421646742818735415458824536213245376666827552618325873186773117313868637544322323417774252538128313175786837235273832323233144845211488158572185445376611571165286313817735612826442767735838125446383246426364528656235485466612337623831257615342832166673341241868732856384527767575318341122227112753488841474228341851653732347423438483187218211766842825155864274123183521582678148737114686775263548481221858458423323358647361374284816618555286485432315787873463561737753168477127327413152318322112857352765466265523827725323233424716854512877245413842473685634274876816155575623676722251381678744534111254786164443535634488143466576258648122264536658765766671437721485114331648875767125488483865172572811632631774645874833736132258126778828663137686778768432654225781458135345764447185815731258318422324425888411368438113777675386485546643543678582558534363562372735185421384313235175183346234826283735852458468636213513336635144187371185187857375516881338711311145651821663316724524313884122782353155782178461783874378372427321635711167822161858886872781533682767845433581352357626416538465512466616133657851323831271776344581752124451815844386821688331645482511115786186486757524123244684551232662877676332741752236613127147872678544243177763176424673253641728468551737621678831367384524616251212755623472371173568531617483111352584838654437755468545384362117326361843352816441155682787664486734585431322632736463542167574863382714533365548882313421168453752618237165671375266427572483738685577171528524131448717813856425133532551212572325212663858576776236152173816635822277542168453243758636586336728144564342384368621571848362121525147272467484156174245672543612766381287844148324488833757227162362471732212734871444728537112385183273854214212853334854454344751747231522647513733284681732726711381323274834823848367152231876616717683146247417445817726425242428887263474211614885634473556518455332376467534631363372547384841144848685147527515844764284654355451338711422247718775385322754418417885836752612585275424211517218617267841622546155366784524332213681372318253865113447588138826255848771766221637643488468156743887873158432511362372337218873841347228252128725841734521215568584825812268626817182424232654674273338523184782681518532614242356286714273568785546465342326227433174588525462823238728652368278487523465672438653311376221788714563565113213778271325516373263376241716787173152751816635527813323314141457734666666336555145335662735771363431157456823424627251884548362372156711282281267553643766311447544181676466471322373621856116737884653316634323451773475275535481856754424625867626652241411518661455564836273142477587385353728834546836354635764388778322354223367837533182345644388886223534457256828885726457586585216221635157428477666413732476867585338512358857332132312255822377561421322317142741142854415388156767568786561451535726234451465158515371814548687741558565512774741845635251131524636283621518644717376888662638768175336484327488786253221151636535735441563378357641162736786526718124167482884728473655112364824533618445341773481653824227626778146651251835244816365487235824475156743532125223511751568231266477232172883572818674337326114747532488585521312238368666477722341441161432468657375752585344234848155785617274167551476616681285667844565188186817125643128188662266581788717155836252568268116828247284274657211636458466444643667586662236534586737772176457671216463346518824317243457751588678333227567566683267428885112568553771317132386624433132682545517454574457286555167376126172337278544648435777355253862231354768678251783877674318352564561543172164723727685673517322778488717175423485731187325757182542538413515852114211627358168871244771712866273254832727481188274257238125318685674835435442128534324883123188337326851264375285384673652667551382154637762452572626683856612317563646128335548377146318836766681132431463574523424754327115465437367374637741152433565335567672115813843727783612655254417876154642645876665615467854464358535565638384537787412817321413335552212781354648451347768776276638528758741725736761544232516848887748484563625318133152373566553826852168832268233444348516838726572458458372885811442862254243767613225228125516316413335715657525517176675323541256288336812421167546322513764756462215562414277838237177322366624882445343461352344658541657125515325541783888171255176752354771172234828377873168376168282348413336634363762137653326722143544866336764146828472671862233586854384166177668316241344266576248667732548373861284388612456751373166221728115122257685842273321686115256656838742522173717188827635241563363846265863228188572124384152154348632385276743612568518115726312771611287572827265183684332833772548567132734616876352345217586457874377536616315886231352766272866411733581836186778721164772648875138457147756481178155581434438843848351142452556432657612244215258182663877783513467817138216632387564432277287482873356374546772588648536345272141476614155618858581143477663776834262264724626336427656121417657774817178426751282134335445862355425221238814688588838238726657251772564422451111161853432284171167782283447255727773736113212274651748241153245183442623631727871562586358578175178357226358627464581223661644343847636158181744883675822886177478822334283843433657851215424823721511838884333368252768476568457517577266515543427362761536138576181727235671188885168772285648856114526182752647724753668211715412833348524445284278244624764123265315224357737222815374652751747864545847432221411687763525688152413167816687685635217161586283144426217844314846423338155645856154745335733284886386883266338134568617877386656445114826341228336866462287863274674275576567517854517676541458736822166683254846166712225362221513421158462443215486378725634654682367812225113647866827177523583721527681861732635377183515862248867626468552632835615655348164132413248655884776457588784686168811771756826164416833722372867655384446648123263853714131286627857352633332547511872481476658214121878223144814683418526788728871865554767227354585217483172168732174431358274614885642648713642551188735618746335456321267212463163142273863553867587214884736214525413786752118857375445534355376524763514425377175631771362718237572533141268847276864888275768336145828136187426113268154682671385886516265174372617271658424424668425648326722843462134663274252754434433664867771684156342467551563616644147522386653184212633681131482465774613445442832184433413212457516167122653755132532473653864434132541376567736671817242287541621861517732614471441834744565246813858542678274288782333478864561556226172158477834256452118165177488184865771373454661862464178478155447685634138115763825171838515641571258533541726174358458368741568272214254213572616548243186251647858332453761817363874254565548182834746734731237123484542162667737223885845157436475736611566416235584754326131464624152127425115632716835517312761876144586263736863353778321454558723373558818255572731428465876765753715665377883642474186255787471467614838675128334333157217813628475747313872565815211631587751468113541845682248666415251113128671545685262155588331453554762481554621386167687671632854116256862131131434383132782856456747515618717552547846783888282573483863421263133577236573217353562454456278458614286655562164871736363587288131156772815717316458673518827881613347147225146342826366265634485628231127633854755158443816243685315877746618272386841317523857178346127358834163454254815851765688167864457761263277675242128555262627163446233547173617468132517676254265484725374641456156227742437541176237656137733215737318222865641454286465848868427844765838281315381836587145553445787281176114313113632543717713388115773251652853383226453243268746334556627773718181336621613577816833682545434433133662337356254556773587746256451486586431712753282427818224836572882644372566776685475467452125325255351416752581135343278857556677813811386415575721247714321884641632761412621313373753855641172245437245423224427411685831644738137753861372374221356828578632235167862668814882624376711768178356758823471748717215582268743748124173837872858646855158641124523671873476538214756132652653772141618644467484448748514746225478251684141546851532482863654268772752832673868188745648815187175236481354652332262635333433317521338823485324111344564824844353485174883421831632187556542877273457746754724576652266832675214415786233571645371564323182368721166778717568163778872357575433241725452326783167665511128533643682747635314378225642451173144374457831447863772125862848841477784274827672531633386281655781548656255574747527726233315474515167748164557866427737227332448855311324646234845434216538474336567315748568834464874214752855623141632677361474738728312586767768413537452268248131632877331714754777581316236716848634436274526115724452141722275215525833385683231373453532328536788143472657531665511831132655341255151382655777415415178344745566148668841185586217622346426831345362233818558341672815224827127542435735482422471342751857428364514656252181315148785756687572618161456363354854413887354773143511316148342483844843444722283223251522125265221512525814278412486245456144365883241337423133278561113766768167143243574887873718568723281286166841218685241431373834344851237828138665871821525867468565584155855488176635483851454371516117353563446721325317123542217564381654688846178376177138855678218841467862376874273582544622633234332188334872116363277628578517812726426774582877212834858416367226768514663752347547584242875487644352637111735355264258123657188224386764544645223645356278187861116773314464186132624448825773573737138273673383225335234772136176571164483388572611334412371877334441876825434212314622548647541582546844147265383435578541855712836586682524714143212822127385185724284813473854841133315782117548165263427468864834834271372246628845254886851124526185138811253143324624266277585885165126232142174523636444763138333812285118374336616317352464864854144541235367615382237362337631784855648273821248433226345778867151622346318371323514815583171552621841347266217435576645111665534684627515222632841521772558768234363233315345438551548461157547865345653873426448211627721364236437864257551864441528461114474736373665282244387141853558667126752288617482821682446613666247523782333173841678821651684874786163815871734813581633457556185368565764827174341174476317566114631324375173284357463153711277651387633812886833468644675411766412841212481158886836355565648181252372172784653142647264435112727826235111475475611286616826115817586656711825553362633425715182716173421223677175345244721831761545877111145848134327417466248814482868663734784286186448124114421327371663743228888338342643755556382125418422371811834165411566152251751418214885855852463585881673738535253517153558413323878657136871212438335651367318557238513367874236636263888625642155825812616771541736225674325227428116846224845838511845146568476144338827127626344138581323732536136538111748368667227828313152734154154727344266166757444756611713278526126131716258513145715543467376687317487714631145582716753358827627263141413274613884346363262114426772588824374441774227514761228867637378327758426545352418522578127726745232248581633843781827576467113632515255735178365433872574854384444626861267661264238147143573183232837512165283572156762785782761564424322847253464621868225183158567511481773676255722733838841554372821165143628211151451844657285384157557581411225827878154761155562874743751847231687511653658372176551546516181228568512866512418232843568378851525545318158266776861386371746517127348351747222775512885171311778614585355167833558648324851687565185521284666528553242543673246745864654231557421434255584524288355727717553164174211421477853488131522334637615225237865657116861688722882652271763356531336124784343282354247285222831863642777727737521834521648713568818747588367731783845626563721466322161664447486457121463422158651534387718257513462177126222653715735572587824857235533242127455115268478876878682821342221553633221238724422457241342224276448431524153511425316317521514228268821116824852282588427467581176845142434781625871482216153661452535765725573147777167663516313462655734383453247625448416146184355546842846737618711352635442737178641845387625386487562265447724487448577158576233155832473835135861434245764154438823766235438673326716454565518461354136378247576727234271737642477757472166581268682625465331475831365548787825442618856546551714547182872741884222726467784734885615761612616775124436313355745325567388135421183116783138614212335235618847126133363676544632862444871745214813841364835887252382456512732273274211668265671776632452534723731747564252736764544478588661128781517634813551661117667242328855875758745751734815343754552444832527267342284574277251526361734182468811121575663276387531614178883778782425848336826476214272766115152888284176475184665183846656733882871478734181437644518261842221114223752858852423743366437228336454388582254383337362875387887238668384118418743565733138428242265181412248181857287281213233841216223137114168585875113825875883372582163445482858161437523277226472677582737884567561138326245448664284177833186424137835418851884364677242242753363665366867124522658434615586574756184356265586327362412527866328674111483848341744541762255573422533542542446221572627513158461521535685541257873144882867711542585152612487752233372477855878748151388585841154342256628816851563587226667741775667318216852118845656121815141227844864266437433667176246742758324772884544443421724587862654656134724845856387875485888152287551647713385884488685874866256812573128158525632681285342124314238522224773425542336857731227342353172255457622415757646638451253231343845426634711371813525247451254155663185473567338681811626638642327327842358173527315466211142841768523748427348261324181762165648662823852375868881866643726181654425676512787644412233274771526155583154288161272464673767835282757751748753542657873768328847771654648382645472338523225116652727247173244473276215123314865616127875855481478655264214256737245814118615444321513831455785516266273211455444284483515774345522845326362576883142162541142388284686488317664875272142723813827884318311667232351531418661533138451441274857288712648576535514448151768232651217463837557717313825168552324434342341662448341237384226457887182782555766681373228342856443218187741427154673161615861512583588143642243672587665222842712226627682724243117562154328218877351226465756166821183282122676512228533668432631781678757625346235777152665734771558214833433645281663738313751763483746178421641773135133814152156342626638488144326878276558455256825554251264255841538352854168762883428482517268322724668174821721227757525417411357322328627458146523372583438124655746715522285854858117817821883266524163752114588166567421275183751834218175485412664473166666548212528233773371144253268782213134883715281274255672684244465775231412686412587263388723856141524635571826763685885746232443552885218211574821415848633573435535746633487875636287231278227642823586545111661358742826447378462727148648313384368562212638346575888823551478826731621751771588684575517246244584653344833142527643363684177534681882182353221544777726224664181751855752161135378152373446725817514271444154672345473334876267134217723234652576175824472765544555416326752666464533677864175521151451112368563136161454838271752817677775333512878122171888872242166554654625568432246335831125888545626275333845736431681783152863245721421322585315874658834782713852854682757145533585254683563468634661525128638858162542755718637715866274717663371581673363286174242526884742775435263555532816332273541174252661254218438621328243216215277352147235167686637312638145664166341653736386835466388211733815581352314841382744264251711286646447568763583644666243881518341844412354311332414287147184675671777623728758686163876383752885844615674336882618867253515685888336555184641517564886846476163563337484827675582557347185468423622252524187544761285165372821342464676675246583618226351143744871428644857527545233537548523872521284571418731853366736777745664778234832875876874554318783166444134537673846344461852737734545157167515761581647484363233677248656473158775825665618122445866888246258714485638818777683875545126748338638862758416262221642851584533453151886746231318144848865877881885883336646446322613368854423523277412743176425683581273534883271127863237878254473482455542738617481424263174232542773144786657466528582761878144878848328182418726475533531514588554576142383272421143886126273287212426642531777452747258444321731873614867522866222634347661351424475838352557831288323256788711844517211335735525444428215752753374612614887115528658645822164487535665151561682364285744631168588155332345172127544788252335874786426627836118521588525348534588837561151631577247255451361335338256758722546432744486274727456342624562435238878135614183485238151417556836435434585161328788381482853626155554624777575225152762854885256718347426761483855133785251775223127828583638682362251663721138441288758788625742533611158627652442374868712353225543245776528464363355246142838244235614163178416442133684453467552137212518421751638588114457814673513651662344376343813315712261481453481322335131821327587762721533862562714416164716652218172614117865115123786367511721775656724626774185141667237276861386668116352752836111721317562661134884238412314514653351727142644213336733163281353657446842175486575765272281883267118663777134443828144821611833431466425824355526231628381153362168771868182523243162816627814727655352357461454357228776344426352584475382887111827463716325141865311738186486284112387631282377815855625865571151755638647572838584236621765841526285121537437487711273236421578764446151814441282865787235351716311616463416583381745355552547767518745286543762422127663483776687573787213486318467885811288555373368158115785442288378467134558453467465524754844562478352464421653251622284557112856452688732464781437647668231323667814554312677331262817527351574172284635581838623773334265884168377322567567248487621717484411488232175787528227886146576583638322126363281113467143756226558477351674863661877772737451665321225284256521687446626132115333325811833672616121443152767317631771643817748557682557335262182146211267543564331545878212377183664741613658147763337845133547874338265432813785677273353626112214277782578534763351283424732158234873717766314348464376768534447842783665156477171228756628731275461617211515874182167316376452588635252268667673856486721136356728411324347123178677436546862551252878424172386364767587875126283187825124258573656475861442132137736387478134316814117212125878767554813815883643121542421128562177474635831282364385247248156362771321723518634733346256633136211342871841878853386678457352173166365325171176873241175822275183475877246252548864842211377574523776662183214211262472178844416381627583824311126835144615145331118458717747526311471741122215372134815656228716554215823244448343681866655216427845246527627652887645376556718368888312171512417342441285843471468411275845283826752747132141274685471564251242884678458333448774832855461483342476337261261128517313826662866712131524541612358181153626878351438587547678575442246127766668317326748674532745866274122457875474765733755536788524185716365771866416478113388347344534266425472782536487436337768288522854217383216523162465348254776147158754272414411656847443827522137573166816454275561322363185814662637335667785448247375374774827272674827686847822628754388481265331422352643414636327417416234334463657828768882381246847457781814268522468165884828373225162622135154811716113561118126588751561245232273588813123522841823156631341468484175353525468557431283283316845414548867114626561246435435225636771344751823635356861414885525281814176167187324176124573735322172588253568457455267683635265431675362334246883566813366578683322824644737583716216581225144473265316655215265883313321885113126324881222614358381588344724723545812633788885724531165513685141317461426415853466271731161374162725767114661177482443528554652581246853121174484637651512144784874231547226333766332888253248216626742633165347642731323344364645171218115316261321853873366686814575583271586585356645668315885424578466523342467212465385852154228165773263121737644361533717828722366354655415268363123353244623621352377834152645656848353313662453682152533487868364256256131743263174246246148633727531814884772241561882555475467327417454542726441436347866213811617221271423764474718552878838156777782814841457835452628623328813448545646752312854185624625262516137317854744686672844373511727231537481861881367568687857816676441888843143765682357141516365171165531812275754648251221824222288752442626267283228847118427317248153123618538821511166625542836828822252712363381187755876267538471215143275215774526814687446855873176164682746317555675275872148424722246131656578716335871681382664558762814337218832286762852134241134782835625668555247484213687457547616378523237653468546775422343673167625838612627568356555678654631483176554682557148685338852334444412165241355756382535177211621652534728711173473512721547368312265616286362516867155768583584427878214532453716327785421641772266756376127468616573135268817131763261478276156712274656347157782117155164445135213345861445722128585118111621881885548583741113163238621777744533677614585586858778426585175588564435784148315758782427622242788213357758471565522354783873253141866422456424635747826212583557222868625433853516884673582816338423484546513751221687513684136645842115423484475414755782314637812118321556111512686743171114781767318125325446524167863874331166784766418651472447842345347342687175672254257113513484124525775553732126413878716245354765351876756125325321382573717355576642826685234452557326614188344677776246638162887686454433464432328631368843732617813343355788687667464365647574342346372731416334631233315728224428644736543373346131466545537545511551275268561774877518668433141783576711437523612422385314377137383644776644814623628221545117517877156376744823845836556167888776248874337736631324848652541185411368683232714513883528631448176273628638566136885344777738447123154823571244813284372132175574788747765576843723857752838474738471327473236475471253146652111645766525717216752466747213121775338657284625151314558468447423545277866438511612766661374625646855622422872113285522518647318662231333237435321738681331257724814117131731838122857671463342743243623785555436337156713187268251532467673286426388865874467371188243612826338567224628725353423143313262765632211673235666668871326334277751647766685733218764755275281146716544273466676358714123348311586342341673857251217318511212231852755584576362458876716526311152217456762118824818551372728472312724181217711866733732618314442673683721557324186145723724354483752618432253523824513444831145822157681573884883313654216712418375222878238324632586874632442465654712385234656473276218451217748321158338664118376614346364117648621344321377326556872324685438111232253867788442218837364816477287371376152613871571876434242521858143328556544558556366641563664335536253713358872317848685833122545861221223711837387357527726642234323144422565315217558187652442574774186243441627578448812223141185584275238361225731637528724433688777487884773356878611448482737422827327482783172158653618583811683481841628124886733783718658634644787465164463215182437384843114444781167421787117711516681667213547354783547415285856673628536452383433683534623314648112532336133363312532683631714462681774287282422244474324481444373432526836644865118232641472776778181751435477184124247853741435485271874482887466542416477286716882185115312215768576831421252452631847477668223742411542354261314185584466155388511362264672372456116141745842563385413832138774575846886272345544281241324312436822221815736361458261212283142614532282672477284717887224177225364481437633252232826434713325723837867482614486388837418417188157555351287547336735343784358754616217837757541831432726742737385573476738674746488537327552157212526888764218554224512437334624863663228386222381351513482754857271163618331528555312222254528884112372712838545663551366688678786884772534575627674711576124584258384156262643572568376878415587226588823154462237166562472682471731337631147331244482615562671721443123124747538175716461314355411462464855727683864677327723131266124175554283181527826767766844542526772257263883684147434278381252746632445434461574333641371883246418321764362325445428224718284431453515543344848477185276763822137848588731385711326712248446618284751483488661312158774437184174155185245163218164557862477745827537228623513561633221334628812632253622872817131148142261167782816845141247616622382518375155733227777512838677413634257731821847376214187825666186123563664635561271576178525782514431684736873161115611252417654116236226825228885532354285862342122443142221775318531141634437316411412684478868583663483746264725533653786661521544874337615153625552837264383147486825456552584245118583672883413162316168325316873532416563513575626128627218464724551376514553235484462353811347311318126562581131144366333324244372753421665436211344836868344468524833818328846866161736352414856451626345738486281243735642737468117432122656363153116566741354835644556477122187487752583378647823435663542751218152826215141537847412736518686652458271755425878726868635355822263756738146544223771628844434326352142823336754283734335448566363264835256512621654184347283678665155346817735587667117884253125382534884364884452262627114172672532836454421855638581467775644413385817141213775632468726447484721121832642588228136825358768257261831112851548412713818873568383143658712555464644842586843548553885765188335681762621372316368357412611511277824683737138425847658526547325113473422274725426842711435756134458681475857255746684436588888134153717353268421258263522426838412478215587186173188847656456186344262477286864774765212756553256271478214562146281711885547533257255742817713488468265471338324126252442838835743565111781723882616422321814454611822162121118246884673461426857846751532543263422886884836327173435287327314653528367762111878878118836367788747675222188253642657212844681365218637536412456627245181546264772454264815221478888558313836865226284652833576243117635685483811437753826242555732612361568431578852311884751331261364421462178671572542626426444466427522688365323547326157482445187525655372771734536737647578187555287332278358472662545484363725114843151156885763123638233225335778282266566248127182662173522661346433285471458867115211223185181733628366362854734814173383562542523116618515674775374378346456274275426476625218314448363865681267321165687864515815842815534527158153388776236437887278613724225282281165667117414883733762783478268363518161826315264212357386823425766641732238422833637524713751414678622531268352382151211473573146878712525457377458448277212216852742651885731232245731241467724864711718147152846225341454836331621787412274147467867163256485434214811235548172778353667164626143134724337843787328653251587753263321624214251883555747486373266187268276313358362725552858372582167653171472815257414518183228426777783582453175776733738231638477864281435431877267212281863862455474483633682225835725712258114548658138165373753435575762377413445144551245487781145283126867872473815676835671755372274846745658611838528684738434552553887538288773415872464167188854351761656334362568672758558225357332166618733856525786728682826326423678668755414654432812151473185164116878286562565762647773182358351124534281154387462818275111613664237524438755267458443554622847132453885447835762462734752126725161126366131566421354646847286788552275587225523647722463852587243132557875547518376281575684175478344638253611515234878415724152155226117168288672866716468762646825315118835564456147752315565847167478147582617317758871214664541175678215365715586253843326341445813532138516735558743741174285656616728341874218752685713328544325554554323643485555645644518187351376727158157664745478836515317346524475152824115623363821251142318427133773388762788157273846644682454441636673468141725678144528625865518243276151732368371432364522172585511276355243741778773215168738488274415171825613377567765655261748285754756384328776631786328163882567621128258237466543252658128143425584216171533284566742622325564784871588313527645388532651876433431575216235818445167811818328662336824537225731344184782384257887688623132615685665742171283858784355664431551237418566353345274528753253324416744367683834418567213435366766227344171161471184715727451744555386464537542652142221135718252757111254578744525446526286723665133255623354412853364871627682785176554546184858256342374718185264585651326727433634563851425183152624423164764746211152161638845714843228253337624336543513567628161857844364615748458471784263648642285288621811426435264587563213328547571267328852275314126136335871734552378345238656737432232731413835661655874718273132715147655658382337522863587451617363748412811284652818234176757582865473543333314552275654836755518753124127154211485651721452823585574155421747557178752587758275331645377137788317251111883566711772375778334352676757444651437273322868552874222786336668478317516468325273584341634187836523374131838416433536581665435677123482255263762235552277731365764274415522765858211388238865528137165384262734654441454327561533116635248178452556518111734554764214475444155212832448588544187517823267543161324155671544141457821343786713582114272385416443344345374851121277362482637148363464882184252241666712842756641686742857163356824262163347878857333484817284573661474315264135455465733628777612728756433713148673835266242527351342545585881465355552866774526317463182572285432856241525646474231586442631268132625467883236658465128348863565717141511731285218622315868283433834872634658831867664356776185178574626788482148725827612872581225276533567463822223841245164145361634871474776517513584781215712565838677123773644568148236466524726442754232553525586218815544625126312334546414634351212466884266784883146354724225846248448825382351522853182574274768718362557481128822222178554881572275432841642538622836552822145861461564385255287477618567463628666688638341761364645662514763331158632553645433814471286344673358323248278723614717484288554888586872588447427785345764786754628427234277836475126388445222253252674658257766174464424883224288827184625453267515613613671156128434756213485813144474348155634376733141858556761268314875457743232236738754216384232228425361358568727763273528882178137235757471363141127165135831584377531367481462444827581748788384656454751864215286813877836536618411583578568275873247512334611542316522478187352533383286556477214833242157478418618625452755273666151823437468415877571355873226582654184732338836542277733752417343412782581551715128563444352175326212832676734133148884488684886573463311673183457154263788278513556776755731236647652631628368622416152311484655287361418846565472256374183535124847657228743481512816425475856117738357813252872243742188251557317844682823271152816112686743341234311488776542642858228861784777814821887213176837851544274662458821178581414787658461788825137581557214821816743655642284784323878416758856632566716636673165461477634628358473731281827732145143826875871585864653612284485878337135581358523848828245372778478373517511527823774487183861528544411367181773226536182478137658655788387342254884263462372613648285724548762851373331234412436326887128565758454453463823253554241613568212623267425773665631642723148656718126534263215667648787712637424185654762777415245282177722533632263651534462556746814782824777112146165272134727478557711887655866234732532171787621257244626878653742662866556487273667146611546527454357828537113848453278824333178214812721337683537553514847212138125867816466726277588643131343822418868625854578417168872173464571474143617736644242146352555574622223458883653747817318452688127816748687634515385786488667336227817747361731836575835862385174732672118258253576266434338717851275185622514432245875864854426185585853171133824277675247378857274661647357651667513176572477886134767311132715536512258464751234216634647825247717884586141153274747378642263118567534348324638773512433258121147517147848172858865278152161644214865655333535232418125278354434831163686626218341848536568663122737854523233734538448762637111283675617186171138544422682552537513271541825124145186852167882457442463264333437813615563338232675887364467627225245617617382455541437875424785426556177713658328158826135224656117726267543131136175457861413614442268528733783261316281812268384261728668628835663143148833452737516274115615837738113663114757627283564741884773754731682174723332688638738764221688458334715148864747786464885522263185164647632623253868825247451438843427741627112357856542877882683884745424125221673187273642426776856567836245373642167418346124326833486717342266241571465274512862221482872715538374382568685873161726175756475318315433883252225214762357683783721434331552461852345147564758732844164686813885778861627113183773856125765762316813845425674568834543788463264852325754383456311462611656573165757434833765566578641765118113388118253246483147172125335713748728611574233234888761151347633261717755348367737612426552471364144736457182534365114735541336642684116713156458166116661684425685715483458712664175727884186535716322666314272556737386686428656884137467842167352141426134681856468213566734665766525787824868222288125418762128637216614752648535546774332588252848326688523546756212544653375571267743662673868678748775771837641185427386573127658684872842313412624411157136512162425328456767635766748323573746588231743528847585266167383367883523366524128737142624243146586555772481587441852773864847617858216843112423278324617683233575485756133865388782738685814733468525224572766456518165533125828571663237164711137644267245617652787726524165745518683127587121261642461743126544214215831443428282135768242553173481854654866572371764748684568815566633181327244336771327764431854526883584117417243874337667453774244118411827733181223556362356431442452554834211873825522444187248344261358776475763374235542362716383838864622765254366831134811518868565184841463461268842338366824776156547345588362335125128421755561882723843766865277475437271716585634688543248436242741258318525758324768158182373434251146668254685278155125854866388181737354481824588252656111448845178821858627163188822372435836285156727476884268261365525714434111352766453571454282718881411867561456613156753272128124625778285311577778565458651368787875765453221865883144176713451247481616125172642555653411445535875145447824757524176186647282785151662223588156432687163843687381367148168661173328235271158578672453468833141132821238285751324231463136386356227236223387136521256566785282864387175415815536618152617237124451827525626845316268131828337743582441173473663881811557582172112343412346673668365882722625835766667568213231733432224145215778155418188378362665563864285738314852537256281437874846433863813165827744258258624627421377637515283847858645514875484532882753133333785451522878225548445586581481731363332238712335865185744588333121458538571313566272363782431633375818826524562756183337261311317715756227333124623113486573613281345824556767746816253461712771725126438265655345757165222381142218658545671375557832213333113234755726354143664156347667574864121382883117834126411864388756355352216574177155716581131166318481522338734348885342421277427137185388263564233657465544382785214738436651164116428164413648861821861385468875227275332664352158253773481857275164284131563364358545445411835212372681416744336856187228868445374141257732822366873711384348433534541338282125623653588888533875111111688412148325335331341315823584654364467465617817113731372646763288243551237637487367315545323288721766856625265188538751147137878163457281723888823484587382758662627434166163854863328725512235486716271454656714213754122384831377666777254711882266674474844632515744635676765573216642645278135511848526353427647163314422434642645363188811642555855314444478321446743414278142586777328436357312653114432133357146745477162762637135145828752625866414117754187587763364846177665875153735315152788635726431854553757747437841278152344553658171122885745338327321512567881415424674824544275814635878477275637162161572586256536622558464117574456465335841363842164622188523157665885486273274356788565226472855224638344358454211636217526418821154684286138248228718651187857653628287811722438125852757613477456345733474684216767548461377721414774138568576833686532668221867416526434188672117467512183776677338148157683583381227426415161861445456725172277288617414527565326752211624533328755683714637751413323152512481875221582632516256555551427526273411436388446738285611758576885216848575276861875156788626113683174847536221865576256178486635634134846338323761252866463145367677767412118353877732578558185621484312112617862715631576182334461752823788372533786712226821353385584443176286245533611413117347754855263558344583751567767368624616388555245284246388146848412573213234428847167655668821852726716686238688286138562264236175652131623678614817724116236534658758831858488875637718587847873565528375231638168748464855653626335854144276773633341733464412135687617185461313646386588138218447775684882827353687124174814525483527116715617663142448716837444415266556777321625765653452766216738252841342411547771783161657816823114737645611255334237768568332347777348726512182125817764467387746367255866675786144786843768244461253721474131434524224251272285822813852121134283574616672511112313564346456565783853617758566756771214426161325527585441814651137115254437451172517122722377846427138168871855716527786671175736281714682453134482877526632861588346326227532842736657387275242745563785645418388825455234444535143137683248765736448532563176352562381272765444248612855331655463562351143343737384486686628363288181665886368768814341862464771348425522214751347763436653231222764832253234368213153784176788143145326246643351333373751237717172221812545567667185871151437346254224878243665432635712555445667151227738682345415755877128655466258132517783111673841348325437254124871735746421664718787842753335383346877236383543288883675165564585853775422633643318676341713822427485514743177125873275825227125535172236214813561587146255634376455448158256463288558372815314151351756432165181526541742343314145122662548644763437217412348413122754117678736138556353247155156818361714776156612347628284615186881561648454732133464344762466635653624336716518752356434237886563534164714462844248552574161786616711251653854348851727822156627115221253224525111272171845577487816628832153561688553544112542112441431515563537274115526647745188188751466421315426864347788385365356864613483134381682561216711383688136476646263812736456247734114627822386571842725461741234512141413638883647778882666755826776726756622173762436684848516874563848621878232162682685356812467738367156148713143723154325557312314726471167433625627128262168761242881683213565733512238335273216153688118423616656768468887274576833433455675827662314854347416768111442576774211416553887418782483584328616124135777246187573738748846716226635774685152476738421865653474623361486118727562218386468763745247387155146568678368873756247463867734845387225248717153344256444227377413332556484261214528831128416257242483648235756874566565425212622422383376732228333681218728547786636121664872573842627586222552231533351655563733685522383128342861386838445438764376573584425362117751365615247676884223331867234826623774317733428512444516171248827215313775784651512522138644682423628587766218828652851532552761742612175466435311155214368523686533647882534622636827822861811623684274313475625376777542538261586622153417635261547157327741561342224421783278211526114885823626835837883311872518721366847866368733532827623464452255428826541538452511142455717671233721545284246864177874261135727186222347428176442888323122583163754675533417752842544442667672866182655665446317552563431788152662583136261566128836376166668882642621317131432432638313565522653532542111151751133633886548772735855753835612671654658463826286383844846415343128471124822687434388773231634636241243342572424754717637481564774877868226838172228152717831815463366755528233114811157756827262255846557177474765542334175417331772536145478835281888364512131277888668817767176143668686866554154831877461264547772442215752863433232547655266124368145338483716125348772188657255736166865225484187165332714676828582275767424523486628568844534273112554465724753482447112235511817663271438722231372747862237278853832661553635728612567377756758628875637516756773818437271552133572811367141687175684173187217233123256552681265681287487885418311386858274787136223138437138866685887465622435614616558438875352851664833136316644416118817288382127521884222585185655323743677786625464786522737164356536515181332865825247426731856578311416518483174317611488455711711556266723286227185612646884861822218887266885454534665124427466687353246516143113248342451863618145128768441316586237144636167162344227737768284816777747524321255534877761345743271152714713524247342628421814332184275533872365681868577578612517883255414511741414132785623533438615813363414255257114672815817847138462463745167867833283671575178682885778153746631856835148354723163227723283833685374458382771744636225115184423827434158314858382561172377686687217274211652252127783827356173513331346178354133612861615464384573324682274686857724782488434553842361388365122513677484884458611417516131513438684331481732463421231844612844581178628763116847162133288352466442423388316862464274481282338574626623358815143261675685878643122471625513286411247676842415773622648811285713827385671737475444518466273463724251775564163313631347635868227348136544146867316311763326817643522863137632258758583885283124145242545874786642318658777258564244115363713444475327265558525581666218571585131267845281227344812337356873556268133623412235636556458157863656266517648737461723255236834881574244164524431223237621424518237527675146541567757321438446468731585261582247583482432876571553328816522636282287312215461425424362623753177857777567714423651757886833216862726338716828872164433123134381538763741213187764316227577826631623554674844631657468784556828147411734888157688586276612318861367122421122482446725172778535538131242821758818642756644586721631725616673548274135681155417276257787153177612624344156514182613253667136484662716878316615835227271174384437625123843528168351275241348653224683674812578225881571525241458684558851277685882816637248882522877868547123328476748634331542721263287511638246832765865828157775164582354275737122517156632416674713845158513111227683336244813374334738785783875621144337724118113585135622816237847342623781611825288436584267557442574561336488174533173168735366214322352157556178444356815143651252374178812268771216487117163655883117858176654731241856621685382357244737488448564228552587836127543525422133146438151271861333286144353553554216763881153146322583635657123111776673444745144164414571348446485768713844455552857123656687814546183477571132887686862387784715424738383366523188655552886464522175511813334634265476576884343221677477671211334573211585881323852665534325157163383148617416788535288277453836232446364774251214688325256241733174467525141758287726412133276281584353836618584173674583572886826158312677517112141586854641488664582461286663876186688738535512532735454232425775552114654214434627731318237416832117274512645774364365377635388261844164348583621126612162316223877385486343614472743626746145481881138461617715686857381114313483166628756587263565415462463468345524285815482445842555383646231783727425825265361573222143666716785386755133365121312223478736173512886456483612613524848523321547443778485452632654157676865681534578487641871245326781457686616755411275848851258837848778246882131224327371185875455481812511461482821427527724858257325442288217486418137718862487886431641661166474177735732667257766837564647186584377737781623188658525551458175213663148266163617658884136584623648158563345526488157257877125371775447643881515221183756357576232373216116734452552426212856668714781462744258313221731533766424781813777811817728753523561827467135414811152888745214231828636238646143258818881571818687631841873376668268625774441476841145783187452144626351315418214775822887748513861566686714774862264454284252148265732272561663588612777253464151241428373811366836715687845111732534257525342115673742623723563733758321822723852346467456324656818417261157444244852383631153524255843654558871835165144221237644815876383841144557628216831652753817646842625736318286548625856754588851132365183677343311556818465132244162247215148346457748453155246313134744145146682244275152372863845486587283737643127383432634685734583368227178157777286831411881848833834432314773582345153612612312264514514878717111365216336237341717857423888766463173626488734871363264161127664663142342881158273168373345227352223846712817483688337333511445556558238181718265765567428533755517137133183666842457311723657268677477754786581643538327574212648274638165735588523541368775521134514271623868731642677522843856163441473566125751834753514885382313327334543737487531881886473313615434558838747212262356115346366426848838774384571323174524222561364327262382721547546814183858875464851681567283147317417663557765222781554468673468826683528183265855176124177185174618131636121222478182455824128456138188462483337386448681718625437114111725745565875713583562611472578261741817212453623635783811757672333431716153121171531837514138252282273854762561288743518622514474588445482615482476313262237665172183348221456584725218127452161831334353887544633824773337511511334328674118278437423426774514634633351732456151568872368628758238424515411123671634451388864576188256657435613466768517572181411832614146676638876834487657388188728331858537533873332256683352241764756478842281538324688125838112157615365455165116135614257755832467112316774181661832426718168716663761228225382482213581586473711754865886476282312651476181142223276742541265363518343843656845764517652465162382885257238474166186863766341446316883615624637146481367167778518218135617736641876874451835746766377527157687583281385177663326621467844673233427524122575876227363736362371533874353221765457172834252376411465766187862277843245351465715758816675238444745128622327585767737416571582575174625527477652442142616425543757888242158422335536364113337578448168335746871284832388528143887561484178473283252152511575542887114212115122817223171284418517127535413162863352358144575416725335575847114148262746381582878173647788668173686841566385571288253513468144121614431165374468475412457162464412722584238366371482637431444774536685274217486545615225758217357183221687543757114626268788322182468215536873683721116185825721134845284782122363461778141528382676763357556353361454358177876822517483858682578622754323226717835445741465634366447771788246886542182638862157468327884564331674451688256457885586882358442426667684628825715864551762363222877424745737375577611456571513657485771151758473751885324464646246715767851458441441168173243837625763524261172232885513837377745832241367143355222673162551342715676728233426647816871236366526655887826838588457755768453261545115583375815557333811726784754454671815565721651117788138124236684482828581333313178652564186333762133878628521885751627673422367461435363335874531517866864212814754351348747862827475278385456587883634615512361218384323735274174116464182327445164466448863137437775752183714127554715458652264848235332377778512678221156873144154253182746583452851163651662146233538373638832736833755588663275235163133186378837821278256145355768262172666331133227731444648232218124851573353234124635288677868566823647668573151271688334282154423776258274176254231754844141283447758646752467851113216677484315172622466524375186173451856184652431667386435812361222867673148888653253882458355474662411465121183368358162816345678785543655721157148556754275323263723777351333786758482516118435376652177776736218228366666576714235321785467787761363541365613636334464577463326843316111532414183211265113812565883358373423583513335886886121378512515727643584534273538847865784644276647166126531584477362521851145711274876246352615313132223837568286542862557635332334126475333747163258472845444634246554273134837854863754865418883248323283676578632614112612567577178118444657537715872113838784558248778725665125511772645681823736372353485184352186262316187377675767626886327277712813618234182348116766184823481351681624778811421266863332377324448477556224263888376571424223254262874315322671314533661772184171348636264812138272424187854462255775462562632556457763635148854281686543473547254637162345316426476647175416883362275118218847353523382588388526412168685251145364664524253272528385252773444631166588512585647263458313644127784518261378521347373224245623113551243242783874622611732353361273286522416765234164614548536554764283341676356333714224267528516636836655387631666258356617655834384858265834812677363818465835151456461138228354777637662834146253766548557248227887432275376882758518125838858314127832461626812528537621663361642435677451122844563345178816871784328731748683656171344744437224316788848468744428114584637226524888541587237345756865415827548835551565178763454747387871314864428155651216553634533427125212342226472412234183426424823513735826252368252357575837186346376765257485471316731423772573822315731546754754233342331248582337767833274551641144264855825617284844267681365338423828466517124418583432255667321313726546147155625825787364765783771414767374822211351174551115353411547473434312146752214722127134178573713834114471357615527327685354681574852418235863524113748371411565631777456653862168344742758575145778535881387282673267123861262611563768457344117485286248836187621654516486414343438744786163831665625835576617121812172484644671813516731117761536735562115438231542721582374847677332412625334348237377162265844634834763885486118484867175445478848125374524282747831645748474877875473635622515384837528457755321854884265373717362723635581622464764276424662568622654261842245333426135582425356177215316271671628432557785872388226626132711733463234178347174153484786164726131851425341244328558144417471288854186631342774411861422366153857137651482645675473532434286482361646746871255784624554833548435415271548351511643785257273626836522363765825186172556174323512833756243613867563488283371212484776251236424842286765651761671125631451653254848622257382166748373174151165468187378678875555184162477472185685183852528132647745183417677314728275833516777528125165744334323281483644478747728423664687788118644627736426258166434881648346722251633161786363173238753773562456531887163461447351346282524651423168836871574326147464225652688616551844583185368762281665515262886577144421824582771723468556743217568126767224313154857878334541314865543162558464556855857118118582726731146873835687783681267776835327322876876116755782727583886527826222575373138327488227523733635124262316671517447836447436658231315142711561365737471833568282373583744787782145588548715481338245538814454525764785643282222716358255667735313478513722121381523214742384771737485747645342114421865154123262616371743373551588376758851736116382463461686713646888574234835361177472521717633487343466825128726663475232182816747245484162854376532744841641482365412778664662334278561242377274622861534182215328845166882668612867532137227326321576273811872648512412823622443182776173742815533443532564775785163347632583613856368283531111273217146783261132768445787868856874678164157152314348425378334623157552664561416512251648377741715367414837575183224858576326157582313455321571717368224456258577774681887856637122114456638683132587586452272581712816578524827664471233111866123214468171538816122141322114715233368374187155367542541451782172424318717221746562482436524422553654612238214836765878346748863847175287225377621378728561257428827513835428877666255122284643515856355564222175412678858181442614845288622576273857814513524474445165133257576862632658621125268663846838776461211475443212328353353656584737557562766773125527443764434514356773128314612751614552111252554218221722257112138284862184841832751538714322425332437616187782636381337468511711811771256185865615388132658335436461275855248675874457623345855562676848251184683734562513788825741545261241665545663871338726112223335451286347822361363744252434467878857388877175162133248358685281155882576452638732246777327536542787653317561128884547368637452318164862674485372685288167878718676731818424653488618373146184632122178581123162888534534211674473651516627821771413453861148173324165644212851681642118268677678273424714556325386253231214532226555886152671878615578585625846682882583432536254422842224715445611457761684171432683424552113343455213868347176813351726686826223413485488884355571628377646437677527236823344782531555838532466337652848861326278342831454612484865638623355844874734771327127211744463485188154236672713582818173288438615626116764522431682516785418461637147672118743823668118355853583483857627613664516514246683657857248182758735286524634364388282876775627516273444414517847556644887261826315525163123876618164131856615116554732241238568463573534862563787371262244612654518838475548888484217322458224342231148661228255235834761757883113773741532544167231624381288266125416458661644436255685471184715343554527652112487136275381332833787326243151351661445541674546733334147821813675681224373313645865166567235588135756342272546714327842454872584166461577718171227863625273137422157723354232851714675268561472353241563856752718834552275281826336454746187847832444363872141364165218725628223137561535388432448831612241258463876848478428531233283114721734272473481147861871868846435417484632142642215813866551218741385638514435625213268735525587373853564513145353661328572716245536574542816242465584228381124637183556624448273712821828137552866373852255171831721722772337431157123838413415374343222342755737316686284314538138317213344584324158445766826571576487332787888354118575874612351186435375171176573117313663568578738467645643867875762746283622611223877247215618256437144122358141347228616267758463844353475378488767738415888816881826832436835822452363562422677765565477172333575463621538413271413812725845863526555517225431166167325461164183647765656786861574365523385752683276652817385318646865714171856334815765685785766524282368152675142435112271433284361156153882262115265381331621713828382542434532248447277325863354841215814466257263547475542844137128216623145522776372842216516477865516567138874212113224531265138555823483841362542558523636816863531466767765685452121451621164323131424251481835743545526234323586314676735485648181628818437356873152382746472186235232134756224586426267876672162244453585267684335543111665542666617154372711238451457424675512873755283174664418455364437588774731416471457487411686186552516175786584346182588568845216437113387116237513723345848435267548574342131772121855545257432886711833145271853825446127552746487272442156128121234786558431138554368562743621734873347247722766211727817876138187427813684732238312662256738744246144818153875763548732124655278453811726712358228262371446521563533612142247665683771881243366538556652546814568727563587572384856628474242214286511831484674741417223586626283558523327443787714426636415775686625826758144585136361167542118432838464845382784237814337585148848775848578665745543875414118611555148666341575715111526687654628381837657676767165187356788237726725377116743326775227686521452614347224466787436638588856858731752638775431242874438381676538322142171621414553513512666336867277346125125262238588425158652245661348721137757663515277634845212383244347738586837546175548666863776377651676168771285411463738627413878126328867154385318642628231534183382385766886134165234727536832832131574374683688378437772442335544353686225152185687563376521664261145724111275454862211528653738441173183122333726617366282465125274284562361318841463653511627316423746663661664362644584663468711754477455277672456723846753711775314215431858114783743438418554754242472567577633517817558262547632836781514446414251616328451821784468431532342364415734778567546851851621724556866241277142582256823882633167734545334134881173734781854366618731453433538213456835537621382342877387517137473643382764751682876475886616154134332267324388554262452738512611211826458455461556718652327458538537874825133288436453374186621644247511111178837644868178627472453213871858453876371854485231146464738874788787183754383873587241371247574353648124111468725328444457873318378846457164126547148155541741345247841456825341715621762743647867638342634334365546381441415767637322482524822233558563311476326715824162231123464882327133431611218373266268213312181764717778575518886213771122227364452216165372261757746814286581135355628217132277667867454714876168647328632747215168524162155463313185167848365433445422324766764274641215137377578731557812487763344334484332676558272172826414485737777266135687376172371677127311154442222346174478577343124445226632413647322451464765233674716545376527828261814182575548121641368687488375133548357422431251254734561567677182187536378165271561127641525821288543347754861183762535346745532583577453555335527742143784156225571173318548286642745784286777112711112862542312156335422165573628431283454375457271438235473622354174488724158744546466162114241654184645647372746271777675211735812172226845778256242571116751152225336637773388671848526362163745177717385535514655523218173456862413217552127241362388856288855653873785564187185831736243114371534574212567176538328634811135165323311227832385883753823636211687638351221446845882378643333152882736544358828428344218512424313445765382783781485722433241567778135622466724563114353336381745625887732374636887871811328452633387772115278834483152188615778775664542225618215527326287743331754717131587278316138725218487544882484221588225788432857554127574783712561248637642443368377716345383456261114837278573226814534723265478588553137155164464783245228463328874387168336668728738332767261165251534566714772352354417835117224377382178166258452562461531458744374242115381843168865625561422425731187537332314311543186784145335314233826656243856343533184333434513885536227214817766236236571537737147736554624216871383127732571185535251583618316416415247866143212787526474424224422143541312232467738234562188242815355846165818758363631515525625817583716463458356588246417835236173124662163865234725462365557732234257332327517581233436572164843168762811421376388688323135571586433378132758455122823333847813526552524416848252358348234181353674433834338241843536556626437355415758258661745685121748478324852236118676726873485266775623768578151884365134471564353421764331833832356828134651745784532165664827728472172526312771331287362733365273187316834273783813445684628717723321114288447448351578147888342663441861574324351867878447342276427274838361453121574425858764175811383285887318856267661326335522547433113431486711346335167288141751261271226563586336488227778835658636455122462764414182576531785635172578483566674681547267353536282856685628376325366774576835315417637885781432637413466721446554427717456486568161173635466132531326652157622675354537731211833822483318746862587626168776778742877877757225462213711478233717863631222134237347384418882368633116184854366117547545585488862368634131157734344715432561566661383765777227358416658723835367887864527831433361136574747465332137241811658656756122566111214376782558234281442753171676667662431273265373383568566212538113245834321554454717732412365863354857858511655243575784531734151413867738511271518777721888162223116858426512528467856825838712228724423763615627214765137128881747841734162333748286616277133714368157434527588518746451834862387288823174534542136337182474211181157863422536315618524323448528621276485625356526435837772733462471738382883241554214582644676585365811651171143224561612758515713388465141854235258311475113584584437122613176313318117375615254264635782711117114115713473555642115354532238648246387683627873253374416677552233867435666462447446773542364286144674257561415245533755652167453721883628456576281542127882646885654885532285512255434828174448811168678488656778182471155415166778717724385838817643428835433721657218535787757628562524164112644464477563447861534346428737582118424771221677417842271724551457858417486564822715678632776738535236173688751837283135824654323746211445182185562775473428546787178174673567225888244455317776552531515432813218181535732526363185113356457465144184264482725184615516358655268345338638527127245315187864256746471423844743537764444217383874682481684865288572176263883851388238764322517163342557824716845555118512452255551313165255716458551121326248451272484868251852427486584718314423267632627374523162481847465577412362213812821234143783341785635428531581483473783643163622352711731481285433378648523785621566551365184584533264125415844581853858255614737154253463826872664838624272635111223458412665848348361375517127746152188736131862757885443825785461346828632484566335546845274632732134164813366166381152561641583613761857764467667431686327346324367353138243618223287871724213245831811834862871365724562173864427227277375268356718855221523535324212645728715283787871638882181571644883874161445313863867777732866156422435466156154442336675868245543675783467264675517262428348484738428363281334744327551275732274726754648337773374616425665788362524585235163862432648315482175816463582188185285861857263472867375584461365585658612238533386231641757752416672323436156486115846822467564338256476772521787183651557471564476112778817657253275241655712847357483458234628634258874234428741358585474526286672676718317758575281448562287756682877865421348758881546733578815113766414247684381342682125616214151657778618747468618471146424731663256187672425153812662424764487711171757661375542418546681645583382343128624847278611131175681126752721482773656237347822552324165847876762287826317718132828326521175452547885636474143235237485588135856756126661765258643182617677844278876224386718441658586455318337372664684142175122666423511248535712367378444635583312262743716343266611522154521542634627885281274751523678226367121272867254763357466345733551832148713337712617242846238442245318886738366547167232844545761861526365818363766585755811254246865363753751737284648811122213451877231223356642773673442657164663156774176321585733766611466811723257566814638223151436434834663878712113565253458117722712347536127334547763615375264152245158467881323258136662857458571256818685486672382557748275811885273757467145861185566582672642331213148721173283418135283133335156857511577854884864151364354838632573211163461526638632665257681815336184111153472354286668547245737417717411458541536314328748323753241152683344177615787443434321341416255246544172667412342771571328834247568147814622526411537656521512465848736265487645454831642311116317847665862413528817843738715236136754157854216714567526487172381146118512173658672144744528427587815422621543427422763735646256523264433247455815872352782217468752885318623123511333472668123657726314875274285234278115873245636337483177487562185653752243415715354528167882616233327137448126252673576845213885227537462844266481425121316556248582415651773183732413131756431385216768517776755116165152612412822665233871353531737443278328222848467426222562554355348372358251263663371236388782175121715537212567516531836722671282843582823241886628413761837624814854122133187731477334426887858412473373253146672421828275162677423452767747223132124118675444353384472833645144323424352513587834438332562766364566658718735624737657774127341766248181661883472814682754285248551535363368363533868745732125677618313215633143118542234816572123558748418374552525786377613864731721452456412543727416867725315856187713411564523468223585732384581441472225666811582818457676142146672583138486442338244863343517772848317746557387313768713134518478311772417816713176137111157185182666877374824831683253768575771857612141512612646853381727183164885768735663436287537571476453728886566213445165535451285512773443216723157332584718575133877333223584766368475532276451655447761676763485814257335167644257682451134848248652155327278564111243813866886522724855731343654444615883587358287248683427668118568758675476183874853752337214762714363576283172546488622113575733761278514778884343262472346578865644511685654678616711615361336587525574725384752142213435137774435851133532166277164874587145578131734154731225838126543356511171251326616788352361625821366164756878346183887775817168783458835338754538738663864631216427122322214356315733285358846657466388578521747417376717418634552886415856647247876234662635251818626828388714367881134383815665317855774752888754537856325442668434673235131873415787585616573433561874284847257434754475143153118164248541455265656765835817818522516461263758181646841217888517668372118355822885656466863834757485666567758855281717212561516453821346122674218851776633684486487488781636253158784254481518758367244827281515252564171112183678214563183148235187453433287553534151368231223638235447467238271556348768782732752365613283727773464457814284861683334344635411327421821418766542865116438176777536527327362585743851681564743662881733356425161865632657248166362824846565163738158324714672175266657124687841555474432818666381636445811665326552864764316686755218366433532387452737735514741467114614666756382541884521815618518571144688135771646187755435446112613142625318164634276688334182263444625722734864873552242647732746765855217382485757662513456681177378751358414146761621133683456271263758415861256286888264271785578865572268752271878413821666332785353566223342388845834112481561272434256556676246741816655711487317728134768184748431215453167887331341676652233645733845753617442263217774654818242235777627267145452318373633556476632453875681813183737667883247566373637314864371328676442732378124147745212335457825536778627685156747337262663263486135113468144487222114871886233446646871745854773553517686126337882556317784747258221881457171836752188838828415427473128813656333212765664374823337341837363863854736361487848878773562387354518683388335728464342588784326447163162514183181232372836835368673871247623583525621513265488166462443312532888131277464661674126862867182346251864727855623175468253632826313318447243661675388822285147474365861781637413113151251452215612716575225632112867183686573114874518737482662538115475688118414564544354276131641844124874834456518111488788738824423722871135483354158645537271688572738748184481466436548464233156731475152516253456222634247221711846253863654616885738318722712863578876718868665824745724512668137572833726451842322564871736635454343325552525425637686778158664685124376418626751521868574116256455841672521385127171617115781243637416324324726212362762412582735262581883432622757182848657817235172246571423564244384366736516721835641372615228258652412762143283426452388562554135346188388375537831735678835815585714732651378678452131871571611381761613312248272144128137117744587358685771457558561531312752812637653812843488452215813147337167511812615112524782177378278556117284824532483443642476151125636112582824728268244357554653882213258321313788711812467511788671883484522461122213355765752471276482541657568646577255416524338537678725267713462354481122242765611273456347672466473255476258681725622345678473782216422644623751333124257216585473725878357681488382724215521758236335336784813832761281452537117647841336686541424411545465865611585535354628367627738872268711455678374343848622251637842572234763487588773712587666337455375762766525211482621154773578726358246567775881652437872811787284775137525261346286544644481878126536454662765145686761376364873316117275328883138713541847142443614537758625687548881681455685866138715744863737484458555685852561547688786246572886818148632557368218674455123278435445175731636317275322771787442856534714746363152383242237668422744732272415722116887771553482566656444355813761261118661666811365876122273268273384736484254277432143827834558754787443558846386561533423568421568424636637836651424425638342314343475625578354183412674518431732166645383787384382458525535227181732351515112231336385547135532324415546746166168457618272712848381811382588262877658364114815814665751826541737263156137524122274321472132172587561274616774868481115275483328262851886362637537335723168481864221826343472315647881213218262671443164173364714381126134557486536511527744834134685284251155315856877432722881331441862636255757426258118387386347141263588141878562572418717518328386625331125833257185846456385382834226725425381186551283683727177188771888528338881671115186452251715885526456825188681268522646426174535866538737684671342473734238552725278122587833654462624747761613236115855514767371153543185153843323824132575364171412311872875377275685523226535365563232135654172317738246468613328313425186561487772656114171368311222422137244122254565578676663384533413724286478732188834351386425456445854263143327877118118457164327514831812783656457435877454756614174734611646343246422253348116274526674748478464125882235713426448724387744786365524714175884238771226666113718367427876142562141157434215446341252548324246341423253668724224288454143166487541553788647268378381355632167783745721785562211685731181767656811277257772857537772577534415665374216641836456241184457557184638745428263426216265317131848872753454162171616373671184157625716223326285263867736836427771137725757536758116785258766615425256638242534585742454811642371782262176345452646773878144842571784163753888253416715666766832627274426726317655185263826215463272384836264141611834825215748234154457775355376878367588741624221662146632231524557174857138212744155328212224265163238817578363735866773155178353366834343248288486671143322223256815846332852457135746275866883541814517781616478664848542237252213668235255714731832445665457348313235721187441141384437638433821218752557383166683222572285574215251166712165445336282421538156377345522488131333648741511175718314433372844843317353111124354852354587478874821623621387624715112132566535524652824128782878245427262825173428677778737583123625242112525536584348377747625157568478511261586621528151438114457366884627736485227731464464776671171227882612323653718714882231815127764612481466614655111881681868443873723866234566146733863168621878366321844466142432727185657425853684755782255387566445872334836812147583327554367512266118263858731576778331727575488261286158632686144873124578778613372177626753456551733356335763711178441782147454543545838272453436832616722654678188578217411353653524315137583163187817718412376535165248685183382158516247373643216431118618515772332123511862252515512148681244877775146681886146354565232225313757438688754437754877481573111183535112646288645638577613571548717175241756721884527174332456814412183678327174115511811226524662531765766262672883881173331663526583141464387557556621851687118665648353682247811338484558858783124158388228516318245261753418722773763671317148821543388346277862347376124834486217436131645143234138437576135323753535358761151233146584264465642685277764545555731476663128653828117781845287747486134333814866444884844261115552354357325612125512566183751425612744545722183344461175132263614575815544743764271785467542523636883527858743831126223747165845315327121564754825644627185676216438816823115466617166565284472231627371382414265647482162226881168714783641234317624882611418166853413433243644222561747754452124322335546816828755886442874785784877242718467123373826772852246615126354867731757626165361142727435737274164616575383775581378787437256328481125641588228824518113827226256837187154145547554564723344626475774656727377714866328311473176362786268864624666417446154353656716221764216343681282816118374164353435826251285825113363817171516421162354144545723621116512638331344246642165327388866327486371172215735113344731376128525324877118352823753183131748457878177754776678561561564624268534538824153786621776431558845584126575887863384347177641681721327643232685832165831461411472271644834781358463123658766414388153123282337841223478125664758462663883873374455761473626168815148115153887334571675553821776357868434734364377456673162158455348782345337366217546548622556758734835258852278143387328572866746818425122235216243844588655186786715863783164788653218144424668148613157455512163151832834112823544726352573475677471641741818823865517765711148783566347314866863131876223837776218531837474662671748127127752242282851668246421252134532327412327571647262461572455717516456285613737552468134361727347153467115475847144657152741544325258631848431212666243823644665357381445185175228514516831813445842646753337521566884276846857247313685517358123662756452746367158185545177548883768214355677151831254358124163825733838584881151135562271547545238522247534315328835651775238727476687421447171831215341743382736282814118523663383824568667711536733714462788638187251726517327551542685834817567388462787271116732816268658274563516353276847521477114666644682628254447733285814714276827154735747872732758358336422278574866222115758634555268811675548646434285477321473851551278713773186512758257365652673417378326385523768482227651587547343261511252247776155432552312715683758443656241516156818116856536578533768171731216584465162482148512857453443333578125338437313361255667873715761663862875425712524171845885278243228417658788627733576143622213434442266753484274438748262188348341536718758836371834857636651355368156137582336871136715547363511173643512411168273538684577747843287415325433327331315354115516782313734164472715882237388755212337322425738166235444864426186886625533613678383514887135615215444186334382387247513323552237472777271526313283544542814186735674188246573763224275143513363732846738147471688774357628642885745585488747574458865386367233617826536417362374361711583825356155717245848166583341151457174358835646811724542835547673257574144675375254374137387223237884157432638212381614233822335731236645565285383153443444547787777547715323522724737247368147435356733462633472852665283163876122752787837362267381577784748527413678242535758245314153234256883837718133367283628285175251526526187166314784163648226413554323832335633212374555447277141233482332814282121575786565165158117837184371483416685318563148558118525113127835612817855231782683352728782655383173844537213448471238277141248444448552373277282272288654475486886753577863377566653688743173343174142485724347874223767263116174474384843866765253541154362538664214555853248465786782384426171452576133156111348585634742211323171754656124218658387347558272285336668441827481371772616333122541877882671488274863284824235858126416341378877462771248223614376683876123671234168243165143136415711273127141246132415565478281466545456827848347148515721788412236347131521425321756134774685567812772534542741735215678728475773621861882176736446672664263726155713767146438161485638143124486867724688137545652824787166212715386736338281333224561136454614238567262746548757771854385333642285178724574256145781386528748668343285253665345535224733416361865371815838464123311484632465522641746881833112843172422654276357187386187357557853764537125321176826322127578435477832611782811368187211654557716556476466333166865652374716686158656814313511853185334425251452477775715233728237337641855867276652238448732612242876668833621175868721654584315264541181332446684372327466564182442242344275825348272174642246856272875182573774768667112883345131227424258234671643124878314416585884425345674414726721711327676846375876512553132318456278123616114352121835284435342156524852562667545648265568768642883458223486842425187622265138885881427456148366462831727386375475486838644346574754835365851517623126852145781245235753334175723234536731176762172564566872533426865315374651858122465631848281574772418444141617821184247637783731837573183621273887863736272152225678555586615564466341637441528156618237815462568218848678317273551474872487312723724443344268284233386542133222218641544657576166866376471763851522546178733218562381845677144183247415485672347537387766336615136477174352473346233868383863232776544868224434746114581576516784128226735247677155224268526362733354684325753638746834883585338661731238461684377562557766176543683422858888476848712555153674624155346723656141177243715244516867261542423226875615673367387885468483332524318471625142761335548487727678766772733136771571245652211674352836178478664428583735655633255127723432164226133176647717733331761263148436641628373734524523616681584287867838537816157121446615734344637417451716573182185763845136561827623361128127284446347842667425287274383252677172422273325757143462516723657423554477668822626664431268245644861814742433562838377162155331683684737877815285211617771113772117582848448865145223582513576767224378821476182511858716132717386421878826632557524282864611218747815487237858711285178128741482347587817463351148644525216815681546114842877872824445622323573314824426514468557667881187143864166274742877511846733442315611177485766831772762225465566733812316584286331274456563186375666553273288577666167725784132665827315532176823236165514624572761581121835536458233654732878153678457441681342825351338427181137874675454175347461264173588352715244476552176583676674618545426111445782866583561385766726825323436623726266431561113441743335568811848666866188656812143165688281174817214711446243326224751748544634445583546856257876167123646115216633657341163521334713136444124487733367841313483478783283515812484627212818818753788628835286435573851251741633168836588128628843738831512442327227837846525268452115262466217185577843661777633543136334851321865748166241511764233836872624627782767243881876866328827771722686443334324318515287755531327147781783221312268455782451278144531578487538723354843645738734776585542811842774344315757787273632246846112856841176558147532782165366133877273756513473342272377822282241154148767616616825621373417523288661616474621418542668575134324787568273254352375123161531633728632558742866265464666481264453175237282455762117432247852363662882672573158735636521415513868235483222224114347515616867862555152143852138438781452725217454536447634514147186718877168872145475225345656266446111827875656382874414141723167454543882263812151216672324337163234574317514478466784126158533523862863688234151638748421161482674572721441725858518412225234368427316816188541417418221411817751376864663284141752641477237823626114447436837178741557372141112478721364636185176612516471177832574567142441825273113711528877233388251882688827335565624228112147124674731787326734283281762662531518657336234777864758836618523548211541324463836312862512551474152223311757641447244462327335447358371333716417337464513816227143148672157468787512137485726677172528682237615532445354733481865277656846423546777818153368452671423716215268714314226224136881112187468872533851147751733432283387735731674541642226216428338535128357423856672781226827727462543575837828347434122714365768831847447716731241543784781866836822423273726841162321488183445216345663825326871172782486642363664882373572766845184844315217134524328633421262342785823248143285233655166754178235387322873352472654351642711371881678476668576448444285462461556384282568486787648754157265838537157361826265146637234122322274886384143368831214173552374588654353464381154171155162318358332636633268262346152637465412131261834747432665347162824534334121613255517662852768537142442553538514154537784867521425341482314232347466245318167171311845236356457784275415178753473574767288782642236644853437443757734251746162842575631171575551414536276773634763445241857422222361887343313748143534328227348242217632657118114836365377777682572325287557525628852456834668837738844461283455127333824151118483373425515421832451623727778427423662378732484336367215181513142324228158367316881422837187851752368772778518878622472246723787583267425463426157783627355315751174735838837533183452754474831515674346241662871822117513852622286572862137736784611422377516475141286411341538686714518331668768768515281221786434885784521415382817535316483232582746288818215382724355662544761544331286716184273364811155342862484173738248533466837111281387287513556236158213885652371471388126337552337744283338464512342318513455347638125147684252175263783717381763642725684626821214453333763746872153588637376413717742734725468262231214613318656241878467514587677464534435187668367864782841478285515658324772675578838171738344565237631215174638582557511141556736518371784824773685425285712285723742486878364311722436177787178321258527142542273382151545354852637578181242128827884557288245417343812133715767656113537248686271462332627755521882221645571888115745666253671676568533757854725165611825874627335865841643185258788751118267162537623773657364251215822738683425376222586184276256345585234473611128338645753467718368543671826628612665747285643645381265736588468313587364547762167171363833536266572128448723138517532881824536845244757746226763523472471813284778764615186668182336244334522688543661378543557457263313734881552788576112463777685535467634678835774285887376623845487852488147286612717386164858464335244118537855146843318412828423834414157544134428621362558262265565132786268367341843765772884442145781277225516316574652822463337826612123544761288662431566716355626735758213337752614632127411143322764441731326453836634165246168322356111233444736466871281887488673183113157437244518337474283722621131133443236377217123482474556236386341554388721572787636777117716441256573431278838767153564313113737474483562262658531586137888777486482648536658377437786556241178388561228455184883363188618677314221817844258217535835463441847331831772216726671831146357122744714588678867313183167718512383544558487872777677851432458554715337866662518375671771522577664256841384415138564653324532185576847864314524532864285355254678263661167225568435812146568616621673651167682234485581856836365331465467384224653812864354652254886134534843367565523855421516663476536886734656818814453271517852212562855171742738844838551142238455546643736666522612636346551465671422364141768581634354111723187781837382134684656663271738734614783588462832154681674456116474551471423573475724452555355564835144673617842571635577174317611864148128771688657813677617547232315313757876458316344122736256353571563821663353676775835341546861624826858245211585257673414651438822273767388124581365275322361328136428225776336331724145778861771128116575375528651135321277352133841668813432486266618433228323374411816851155532267721188682536847617488112664452333183163722512342678556673834136146118382218413367284743733215525826722113511844753714753163382878567737788743285273527832851128662412381232211334556315167238686844643423534533177378885677354818173885245568564468155283725275771778461587254587563682131558714573578648462572414361273385875444363884516635445873866866452152155844415635278746641346158725131282683865581445715745521153623442567534771784145536844131883283151864147187587757428822571765267824388218558412743681827661354143243253675275166813184432553627143325683777472673842155726255666815431428856222476673732256724171574682587826252476631752383311435485525176368414777733828858652367886285782412876636537471153778348855211322216431753311363357342743854155332145627854652674477528822836236381553324755624167581543642152681723642287751833478433464668445573557633278832371738266581241458671251568458346836828368851113861652715712443133684677374851224878261712642822351386221275366662685633483655742676365174522187823483613165356175727426544618282247477442864643782538878421181311627263436886835155121822637628472214227473263748447411343212741536155483776251762618623638771534815452338822167215166416851164464661711418675185678176673771783331876636252467835548867713888783751571883641511631627118165544715623373653673745774355722373463885331215563524753354746644847737137127332688742676227552845435814615148275751834613457332462632158363357443143261476368223843758772777278288476532728486352544272436245762678187246675422242556456752334188115578244782576438245836658736783841855312568778464853385367826772864254176864412563782386154432585127125777825138125855236561481567361827416161868554643361826663571262167465438372425712418244482224172738143867178228436442766548144386786751558176681282374148521848335811136581365475571144515656545713875332865562288251326543364555753173376813728614743467485522613627822573552482565878388846676654446674635744812385212686431685211575527188551646836263415542763577148554411542745232438574737176771345773517658362474448423271525558734172833751667768721615456168658664826362844422363111225523444321768466336648842848531188133562328352544328873264673782662675716313567666254237216553728646334134857421215336153478626282522124228537648868244587151748611768847411335788614753635676356411355212835484362314367716437747744824214443545746761652861714578541662773134467155726528651775641416354364662246326174641687233271575618243356688353437554477365181251775167614321558175428222471116251454882373316814223182818821312144231467468666274444335316836216626631246728133544864255455772411744734216775736381716853486347488772367645335824663454664185442386283854253425572774826126267466173445437768334262264832558182461612825613382678583575712377524383584135152828838284361218861156822484668457442821354471343118612721356388633733527533653134682744476763746785154576548513578724832275436666847416726664688541881725464742416843372855424348148781384765675875324476835135131575315758877273664773172254764582128362361645173252425342634741553555448223681613425145875128172843547165434512413624867436114865371686346756667646738648356523146176426168436816271714726167368147445753315165381462523725623383617371227774128633771763382372322726745374653325561453658874716657447863117181526358334218648822435238585815637124854361285884137326846543116568164167254428573322115465743481856161456767736724835538718227221574526814683135534757638226684753875665111114554185435857627268466541222828842112544248877455863633415383354464525616264121614546567684121263572253461847665286753333712725241422365121787166727752787178568362464166152438727684474348862585642245426631312247552586243113533324852334322243858174418615628521873715334147414813428856527441214474674178885853884758417822643157325681358744211656314156336217131215381272363187424731138421373818538243458438362422184182781241753374635347364173787867246222217283563217881268154846632141836346614871376464165126781562654388126174728535588712547214336455333811472132351337172567581244443614722633857651465322167857387568651533775242884575388745362288151724757443547555782765188875877155112745751625312155632228773575245811273745133247467581247583274664442636336251664434445882768242586768158765542172582652718721678832614571732745852236876555571273848417287337524613182424148626627625432734643624181842815777225677387166542728878843141385676855342247468656312286166263341116341425162883321441724432463543247886154821843153734244477348623178784745846722784825423244773181145481742483273371783277552562632347122737826752836254576748663567336225617183276568884344222538322511272177465728678714332472174844838787544776422182225331234585657687157513854164876278288325841671273111412567833346833552146674413673471534484427766223387563823856884654651163846528557162363237834158222237173715366264357371238245154346755133351544841467142663344347123213585255528656137314588121523518737853425446658586625377336377231173134248875531267386236422244818323413861521217116726258348511418411716855842453111423354265823554515857123857337176312787156418538125586788323721427314728431374352412151658832151772251763517883744826672672556632424462437237562644428347413833771287131851426652668384111884868657432286235557384334384451544426228144634881731828328452273524213714846315454153154586614123213141535266462777748267515564842756811283731675238122562738874161736443783867441842265428117422184535775768563534452153638141256366824587141464875677621625446648432556857114157583134756311644374481283853855475784371861615738345824376232776153486574352412136635723445384188418234235146256525167323852867875584526221413152668551423326674313321138746153375732541768527544546346381562851241184178881421774115615462627637737812717741884382868172843373223624785645335735627583646672164435582156355718867436652136313623863774461652524364641428141172448323721873634832383335816874227656847616846438358648746484526148728376841358842576456166534715476312663667653821222535754815541877222177424462454314881451822576357566325453365755842557316565217124322536751415687523454717834686687856343341576438635613265532262667417418156766688746154314512437245652264541276261575864431534117264156421247822875243375318676214311828633272375761215486831622747416338357443186674323883125766314117638144141427817866375732537188423336417455316183336776635515113446744255776156455713263671282582836858587311612283515541661486641115665152233448365581533367813861236348532433456626648163858726586387811153155733564161423464731528311172187666621136745288662671372388585832381361642761784831167757476841745578411583468543515357786556211468816135161121867573458662483481186361574576371187113171276286756583356665418168841314182612887526547375483486181177576427513835355244758668475153767216634126257478525453481865823741213515786635673888215862264227235143332182231576116664576567147652882282371188316133277841425777643857656725456231145546677763347538465144655868644267783375615465462576513215766274634837515718325533754171357143216516136614213765742825151432753111721257678825216367564324558761827531354226437134576525132825566236228611321773737286781652725535817875676624167584338364345765166421874556631285525222646884466115184325558574213674545232347647234353718434511748213483627558137258521221562546436475424236788523564275318134674888241331811532885871211164248615585338186126815453578386667334754453153364152267275221577827454715262114211134713824648237844121517428815515156825488118763732852611251727173675281757334574661517583442851825112246877135268221146152246885516322168737145134615411681181616148722385266361416857674653471274635562247542272843717743152266311463644288824277125818824787178732166242141127831181678224638328486717672684254354138621742763677835484668674776856774558683532482641763712886377825467447617524657731712666382183387137565383668112278146445521541851717386631541435487232643466568545845368338178337117343288543563236454884868817328218437188825337631736383744372763773673574663243236823816882278156471345373656676347584884267674373213647573847642252556644522628831852621184855762586357678841588382561568635217863318173834674373535658383773276527222272521824837554473637645466775681758511814758767736562775463648731442447534471851677566178151684437548112426278717334848511641671212227131644515837138841114673488612264245655758637523384367274242368758175567511358348672261582787631635882442444168814222276326781533173324238243244352146777134773282174256772262284167723322311675581826364272367774325544741527164732437553688136255678764873466446351215141154468814557516523254788766171243545216657478631153182175651462625316538466316822287183637475554744113846347611538416746674735261272543343813862573756484534227815666661857822238172686751833623856521322771181617747538323542547868867755752788373716644688738226773357541786634114347614353275753758328188627185228586672116553535466163615424682357175386842715317622843151136357236626367224324273146843153385267848546867381575748244226153561362875578175733874887171475643445534757636271274533447242626526246232185478166431442826284426131628585734712542352444751213576257227787837788824835312428746168556833786272174266763675355632574874324542715883246514786358274348637182348837722168518212616231684461255224586468421117778557624732757838485143752553316853682864125527264444428532562724184857858277181214342865777661146242584222887817188886162837513383453765664532182886381451321341642117262381581385672637735455271357764563688675354586165577256857642788767616217567861285161356786133616246557471244868436538727286567287541155731823763573134451214583424281634623675684887848126473474688663612648318487258662476635782735763846864711386363267731826156333536281377376811886667465741464674163786625123162415822482534173158337711318273184575634574158354257134735451658677251376572414581861443655627586178776482342357154188154673117723661121211245847426128547555346671357478158351212473137751152728452358235737744862862426532661322543236361142244412541868735744685164312176216314237232124365331737338134624152565848126318743822424837361442685258761582542481633732535278415532515335145285326288423816516166724426827214742152868838276854343674133844387581354816531385428674786252556826123111664753181638125632556345623831164128825178681233875471557822174175176542217281285781455326172586151475686426243473534265534383885143673185426354214686311331336716145424553854175511312142132312173234356542145356157757852282151371712466247764248824726512417285274176712554668262311131876686882118646562137542378352146775242342325863642383187623524262776826618853836133432884343335464732512287457251261366658572288242457364178563475428751728585128324757236253182613285336283381283365774568544375311744228458544541635248754883184274286147563183756146673268278256563744611861323586355348853765288574141714713732434658254517737773257834475657666183125245124588774264677754376186157673842457345428857748747124728354218314215454118451184813844566186834115211527551568636882148648117567188756311334113662573527135742627363681683781236484745355416347144414451731841241382873234737333671785737588521358427486778313237823466825446567571828363811881472685446887345263735432488584532467812362763356335548487846465363138825783184627843748648876261243144374388632232276111165388373554683677657472685186664311737253233282164727557254837327181776265175858386752544613482787875368777138138612536666616756651856814374376826246473241436768764522628223412873531825165742624743675286517486626317574635564127376782228128351877413875138481887244262134668434364333732642487773211474517441544864826256113852378173413745588153445737234578473872372363788414615758537653551857673511751486554115625181443587133381145774536526848454285525128155138614624175631345762383562263675316648253423427682582524732265483126542672113541686457817624358532356272377337864526117875167126323581385724672718221125372771418438267326455636554333851788746451364785241461686281473233174428522512183735815625431343222561273431245488188367566652671516524435248788665367734481335376585747333818442168722857851274724485875266726821862657221745386412681377556254312474885866466773142245581223453587853256764227123316536625851866653544387318222127761282654411243217636464173871737514475786521731361873187383435753887447788558576345644448658845382745672644362883536568514564664754123356473378513856774841417753262267823842887754433723521415488316167328217151163852374882231227832434322827874376275664484525165224256414783387615738878886581672213513888877618388276742162736833874868864734331225558765648817355451316476875886423385526426328554554788476143454651813522323867338428834685841163234286374272162628528648318123345755151567444313331715486387338571645711524641841186535832665388464642653634425584227412655874821382536486545264356117878566555652414221472187434714287225867413354645681881411581826484877788122252437484215252818257653483162757157813483675766682524564446632217514511767142671781854317637847365525563464532477443738313184582158616558173827623616683688258821882253221118842727256123135187173817376187643782526138388867343633237816462352478247647284137488472263818641855435311231313228657841712472237371877186687618662233214117327153751526385663216478616717511163354366663385623351887365185753684287551751182334184727487841828145487544353552861158885451423423638454776733186713318845666675145652211574741582437481556834184658731577548558617226238728837464124163523578126734227261161463565842264577188648262848612335678264451465375856848713631564287125222335753155618575525467447256475267721185653377428153857371127242174283435421262234588137286627786713215444462342761361758422886276464664271822158283267778665384636164572378585564457336884588663376415333287415526456253513578474224317233141213545226544752715274365687168778738352515157784473726376753646321312268431211658641345522755284821214646737818531564283148667656443717251527561284673577222186381677251822647764882351677746346172884886721663153845821762253561421776158785267252421166248465517355632516773568716413734742467714436283532857534375334715852747752246181385715848163521715856447522837624815558263134162366516437332211511726484663661464232572315282228787236261217855834173271458347286561884174765868444338162855675188787383441114524656551425151231228615851627648222543572256846827485156688423411552526712183645281753432171172216855635541774411275485318417274871241662441542565875475476712368181237467233356541187616884682686471277116183744741371635214171778717274583847888836186277372461817686152115415414661488724126727544821221461866844688377641132553144123151727523647573347356127188481766554375346785188482761668525363125523747484851611556282728456358772223637784752467756848844677232123876726317423817618364487272373347838326237127855777827416582435885773266865451515414241451361566625182358512333868858165711553284681586453576431436411681652842117134748114427457165734766621537347772458781343621218653825647178723138815686167685326575748324216268636313878424546275756677258475126346512213664452584362144658251552272188363667537851732387371335223428156483253657312531338838252264275424716677517332132624516623131343771447285185817636286728787832811114432617364147623165855527615466526686171554883311812253881236788425783745715246714176175186432174253234775416173252755432635848855875453661347651442151334777674867171146141576537448537816744747316327128746286846551456187558178671488434751221866512377713612568675375761743535253842722182858584623365411351575878222331572112571416124628677262753173746126762772241518446861626624615316781844727568474736868247367715252742273638644624162686424862244887273443167511174843352325545845423463771587366652157888441611223158434261183656532371882657768145655772457731178377843118853557281378274563667365158166132884671775383458674511673386181858133272661123642668447677344318818323156754288863516462783783441148344631216263233835672651115618611173781477716651387552337585252268255311147428228635734673788123134332415754762634776342331818268312413687141814153744644434322847288435718516112153227261368253838563233771452337326143745651754377357343345475766577432117758874421241165678266525438346682371737413526174162431634224854788532373345851323263332324421755418527442634633645848262678335863834447312644515218673422442618587113531364422147626835761811556436386433565645214516241716458283587732255478618166642422167154813754878176154121662514321775273258223737233585338578876665351262764743553623823767666133327312285668532881743731563873215616532258627864858332847332523758178385763631682572473263134866875865148368147866612878288372171236437434815462732181616214478482742242348775138847665386731341525311231275778333216436761814123228343851535437445254812587166187178874134266177211681551326673571477546162431326386447246525741475348623453445274575111757882147547211152466851265376127824777533428122365531317842544113471884345824611264811415536686811111112383634446444544713443711872682776728732275516677137118256833272521513627847523175553468262555317837866737358554711233616567255128423765582224562371522875711463422367823711867655724172557315313441718258842677866344586186524535515187182226623146453253521864482687463385826322634141862155561646184338882231864465432247482536833362822741746871523614254414754157348281262538277228644751743258841838613755444336756733526837738772353515245647824664525375654688882752375818467845187382766883873634833281746616214533775275241123566476566887674114843557642721734173415255528678274416747678633147144251477456432748233812744725278313346288582746656643583645221751182477346531853234444414186663448576327641783772336377746263214662461741521717187732573811272355452246215885461844162158747873178314181578633727884181165433747347416455184443217377372521452385135457554615875714217126253378458164831166655812337781415412453336726483265355555444172633434436226735258675817242526486481741237872286122372184225562221762882648754263382551841216325162357482877351686713567574816423315715111445562318365178541758785346544584721822544123166718358873613158117268434585717345271775616678381117121166226127615441122658387385664477118367217442451585222517774322687625446872786722133254848137286138648834113454624648781311288768483483711625247217744771716553482487778426682128514858645351366525351867637448388354235736454712126664584347264711888232847325426751811344732878874587673571783578336436778666322762646564653666216741437414786174715452437484712555514121251757818415654168256373513821136278661572624732724522761767547236281728876161217258215248883475185743322124745566447752621168345426727531114236841623772554247386165788786828213845281153437863346736673464852353572373586871311683437631736632855173118486584533665415278717114562578435744267482612836714624747813523186521831761663321458533388341541868837815677668414334663384428222625573616544482634157184486864742356327162477351423287517782342577278576575316145335845632525741537483711417711313586136758133775382578378255886223523757632626846762611583278551727284634866537874642461648614653548618763533871854216742418534755483878388586288666451386346483813217237656462118422111732447438428218871384565213374154867777626517113288655733751832325783652172887267211373638622524268482611485378261865237766137242752872137264251243666258828418574773145568851872827348287245111245521763465531622242742322487528131617151363382473356158317758633481262714734843875656256838562412487375728871765342856326263471288633365754512132283585228426213275278431471281476736344754574868244786835151667441632727242437123488148314872482435326117311717754337228674428663884362163711682622543272583536423845753133758831152465375317555421182462444346157862551641213654461667872813374262383437248171526381147845364757583885766674716232813413811145412411644378328648886734285856266414178566116871535325342847531862146881312865585777428561883176881647644517736422751477464478644768588651533832227865668676546133553237747217421763811777243713225545138521428416717552162123345565164135667374631446248452745888115565218616266262583247378545452115286266844237176387786651856234754166721743257887744418265587863876328351645242175483121245818813582134268483267377346861532477717827415342224152486288812656217866466517681155865281242124684551287544311473678715878677156272867432438537413471847574386664537467272282632676667235531764837734358148223171424244454241641284326232143327151441776862113723741533334636233276833635586567758878823445768154454383843616253717618524286762863312313668154135783651746483246577467442446816283168141445361184712342573364843355838561267274254358516711215281751427585178482886457217284421285284658756753523255646125564573768834825352321616761478615151117167156643561582378884534246727371182665678745541585558838621118127351578421674684856858721572488822668272321475552243232888718456531245146682316437741815873428747563164348568773633328577786441283266511224118462361335721424241527844856164166864116254386476515881455167132738386822122456216712447521424663383851262117685836266535674621141845157828785357675418564823174177251753688814768368833424388657271326253643735668357366455432256347564518782164856788585748131325277238767861134473413883555687762654537182715251251226478614587624746316484576688462675356772514854375635788228133262684177888854483132221288612877754732622217424627816626254122564156875263614143681833654626873445743356527783723722756338833837412443262611858732626416868853711522645776542532668118765452418537688876281851186163651383218653587446256357134681165652862544768614185387781256333818663523678227326813672465287257784146172113434222256463553334723177485553715284815513554487845244688845223312713431375732286772741415173424351264288747127762653713877376628715722365274632883743247663314251443571765387454738723276477568514537512141545588562446782217264227145728831388822656413524846468741382885175663518348267232835725554728824242512483116838623861133264763276144853831571128116175418445761242536426534526424733138574227713155313634245456815815551133573755853325616352512268722782756732336535765151328245777864618387222842587784883476152417775474383157363753818356552763626754354665153437488324176351288875316444845358618337445732711665863516567253733433264753514371836254471213252284572824374477562853361157863257326574863122835136123285878814436644217418263462174151528415825275386113681133827324453861532658345523682312684183217454426648373515765682837836354151217743437757185562434384625182717558582833733856211235567643821445352254244511277781424887241841246327438578666453265351242716421648553422445751244335146376637418465673584166746341751558333761614342316474665451413567251237215581487235268425126348265875463138747537755783315818583681347217158522854431467828567744547456832478665288733682548131474185647485131618387256362874838334755311523651545332165763856745882438586522374776642337528861421321276888723776547461788652414186721476865843267112752486633643822628473167152858114843563543514773471653257821721875812363633776125761776337327472573465738673442687763286835434562725458134137316771188757857325266772351454344638635276663565158487533365751883526142775242326356276228653412763234362755684171467175622868615135133374558127665238787581232332725718264243668283733657432562453814826117372811251272625743585455514315613711585211463617634278438836414472416537632818462451461153463717648317772542455387814811816354727325188823235354125522618814343744451343322854465584422327423616218848747134436845457246174454732682365237277543747362876477557386571114577348224626414218132751228876412845734885543631688845663368568661221211432611341385552575438163784772424544674724338284414312686664723347475723346833863461538813482686131373664157352267382888285135344468716268182777627564583755888143123311766145523131455742317122378418466767825888132362213871727755453645534234716884272161157681335216666246574873152835846416481612374668377642644537187638144115211666262146877332786536146517784857344225713512377642422763222624518121567427636566317542464642753632547886738145443387212565757681712617346851285182712135366743583633434236816122368147335816263516528688386668756466281452174412623373727472137364151185861316547433422835135767864543731736447181382274654247181254437272585382482211443436213325734342161316515632335675815846478871177724464114816232633233547536315153216667757561611638571483681865383851783246876618364371356343532834874854528371874128744475788183156543112811617125181144284281115326686754425883568331358745543175612156557654161564686371585818146212834381764531651454514682365153845345137157138635245372415672833537737633413462556785133386488728582462468426542327431456163645675577435334687586338141454778356562124624643182683386187576177445614772225525451385655424282632313377455624321825578231225178375373686864356158326286728434332526555243577341772257841578873731586712165551515321172731684644453131313555265614573652482722356361152413631266625557786575677422237145315183722377624142526135225825225672523727285581427737458827535761833864374518512174536577816274836288324364385564633342112725778457186521658263335261431278766473882211273888281723726511486784181712888775711757611361165755851512352336474526187181787443635752586476634246755231311724654235455754533127361883671753737826237614654133568537586538578341653534566671813755665835574478542554627386156348873246782738351516665561766211665158387472173133451516651167741326245581464644158616143116571612383548276621123153464645354132826377386537336538842115582561753157747211581351214425662537671676467744814848631237665425353176631215566826581211836475676875325435858352176683686112565334553153328352158438757157322824146123355341523452387714313551635436367513322666763313743655738132665222553326868811241216788382238746863881654244335426165612832566368265382723716455133314264321517521251887878321884281526644665236318867463382442461582753331541836784336633837674784645648481471738768512555328465516262612326358843763637731444884362548676873864752272851685254282426841337684775881755782364784615888838468546722784443366726853143613656217778664675113451145451437453671534212375754658461175775287565578186772133588113266415831674812567326431455466643384554683171844746546282734188185256675652653143457146336413123544378545367547574458778481487328746467112736382736462371126547488735583645174233576474543786643285742176255367373121444621155361555721225448874276781328484682753812683337732248535534144471325373443445225418168372683611688826831272563111677562412447227176671468575573627244342285114572348453871445474757363272658266317814788814218682187313274752572147284285263212812712235511426336246522745125323114876214856575886227483612214572568276272511155676333251471487642331655715571655145461467224657747513651817141352787715374746281122876564148264341737166417237788654122432817118272575383162427474473333483811777642737144886782348338577564528874266847137424224217152578631584811362745343664175557762341381452565746862314478534367217344356223354147248273145543851671175487738832725341354564428454532277557512358841872835176683245163525443277243886158364143825237276482626111486663386761728312236746664874174456386841628621588843271675144575825375354773733734852521285211788134325714187146187351148221766668752342627278788682355846634367341161318736663518615718338365656761762641174134162253752775852314387133216511614881772121523343767647557278856445181313131365328244866755321522732838282384533146211775366135874267654743855366687642775255643231582843848273717362456662343555372176362375242168375858778612838246771565776173676737766743846856311154613317265555483137482654484261546533436577236516826153258576241881313857347158751532547465186775773735368242137646818315825581747687334318217548318736487625616275865455873637634224834486833516714311887237682271363628872383178218255678528787722758656546821732527282124653115271252526868138772252168585485674366534878852585622434443188357484123222176835484314658637561366475666841233458846378842465468716371644755716357165856883111877376347473531866663234874881545464765561833528243263522116762328763128178446132147311267845174621838884517271474872684448653732484451817485538686423867484733173215855615324341682154784747743733325552674274741145482575836318347413677655246822256372574365881316671143334135342641714332777427246857352661855736516836674433816388185732837416757427686218216836532174877785267868747238645437777155244578115463416826481141475871262221286643684145652753472866183775785238485416732175328273787245625818547765444313782621885718147647583145278666556687756384318131856851535213764514875312718463467228873451646286282438678536548322815352383612187246775614158141718244841266176557342462864545385218361356662124714832725248664345137634186285246648787312844345428372387166581731418216852183615218145717437221857835332317564755755332245533437882432622175567613333514637167467627448324577357346667732615252878331132281832353188538361775543473546422424316522235252216462475381132241367688528242133768866216278184686566237113362358213524212777747562841757755876564833123786647265868612474558816365546533887772867648544518587782125637634172275615351777433268361514374452548726447135565853456524627253376857583462135572434285553448376168587542745863723212424434362545415851282358347534436761353226734178765817582151581847544832372686363431381152272363624677566642365368315812288182451587452785838526223621741328532682246325574483725177138761374543334552728835366842322385183145147561648348545331232457826837448755531432375574666568851611221116655367273647764471173724842623345878456321164272771262223174377533468767544858246321118114428832845432376377868687367866174844237377263472367384187584818853376262685143765365745261652254587875654255448645226413568352616515166248754638757484746343124761446762714876732277528323531627628113774367121885626558572521173143331464235825557868724655751635125752841448684172631865217276448882676782727383165728131854385284437114883677865244757423748134567145111136883216558381442854267548158232722688454151755852168833485427656436447554638285818557587111533876571332452342517568125836548736252772127338171516227767438373684573652284268271587162415311241618545751763452517164222428544561134366821166774571668721734757531654326424713727882573523668472214645154511473743181128352261171422634244358644548547243368134176856432454187142663556478453537328532444741654587543887811853655574428811842112525522218252436151283151155243384656743458517763878375347533763385848372842634673626827762155884258647747611148176765253434881415846731687463161624331248338135531313148873776824124218712612335823326872856625133513473324513614116415217738143453612611731182563818126768748775223181133718825723782568153117328685758735637325364422884384784753818472122721346775574171258583788343345486486735388467278115145876327726246721128133441121625721528362655344116675871183735173732628854185483751328435377442432614658765811354385285488734176254271736334151585172626388664176514277871185711878156443418424231535123688368467848343571238543565134111834546186522871788611664847347837358157726874651336384474277747574476837636758477227233656282155261734566843447236628542851163348328645135846668432355442224448177823282676438138265471352413112781118847657361253667683544814781757722347662687164811831322386448277173741626288256348141876627286184145124433425125828616135854331344823353354465137167478544664617756278475532132587113867134561146635661723612757358655455778871623746438485531463137661724478412653412841561376688223315343381135466537384483752774762813387811544364618217184867112717187578344731717778657751532417277146876821617483128411533461358621374663518355536274346358441123621184445847461878368511215313275351452852417583181646667385328715557413551466676447174411647588722558824632365615474482552427188721718232834282785744661867664355183875778364414685262727652754453352535132533688275154781162476478538232482422335542881664768526478468267326241681456223681228734431457858661318454263112231673126238524276226138223428318466775257121435754537128837567462755331738747121548121624466874765488248683512536234285318817172687512242287321634128311817763532458563447278318426417114852811155678573412147541377757223811113646685645715661315171562563641621341722453688686765838743627475576564661636662348517443422756464787334114661882428334275167662652475572627464626516534237654886611838216644275586755378712866547612222883471681376872458325165715684583887657752141883735387475124461435882336547334623713356737345145514434655578816343575864767161581631115368236432458142235632657472458885465277333887726386238167764638375484373243622446766638426588473137226546578378656386847553277281868381117846878327528342328134782631442812351257615516738638277127768555782416344514244174563164847754443341661132212628246158548815316337812164782158644848561551752272847155234317367638382344881715888311884322755588527728278856415143288282363888447875773365873343353272875835866632815318816782224117386585151383483134872362141452341586253252461561538422333344438584827313421234253715534565877547145432774453478725844212618551821254417514758437813423278734813625165536578523813224148133173442828267536447445437542411428323522518357663424623467224356857326137831484445814822343745432328632435274525772361284564676568132342455574733635642655134457451355486622214136387533713857661485813364252264581321612654521265526721845658225817844118557244783165238483371567353433155831328623886543741586381511815285286735225465725432267784855162587866158513744187371631226481328763578115371455743826514821857534843453177673364326574636687547683814713547534156471551288641411361757778512124323177256127265813654233174242641647454763655743127531585871724775382475612383561481248617671737464313778668533642656324158712318731674622262445666118171152272232781357275385568331744841665554744538454553716731421872545211551671523647128613342145381477511267888358262112113823513256167754553278262378258246584478273867171818525428311325661128114816765562181232263362434533114211747111316331226113843465645753716374114684375156147374525761121448815442775152356252271666737578168371158634866247366148673512125143755388343866564764743254853537818537268436253536627183288427217737442352666681468247454815713373786838255532665578185553733737117466453625758464871215555738445278425784148845141122663835566244784838333284554666411718152636772274724618255278888535236466654832124271762186546166681136767332241225262466287414164644122814724743431264553468576526837785767327351144115343366635384733426725357323333564862381781843352634325727151124566463222723817147231713324483416721132821361772685446335734775456436335163212877577822265248452265567262442346761363445666322485652535371572758882716438131846113835561378462366253553536621337331557576228826347381643865664484528846338227522857877375748885327222714333672876375261455412833442282382651524828536647748812853177813145764355715546122873674687255556743238426131718654533167573785448768376871637284523536345322862427443242762687128168663815658816742653841615467175822318574164727581844521734538731637245528682126162238862182175614538751325487775684652552635866176522351871357533555667446613117661566554256618632218821351657482547858345613375553422253328634755247242323347564876682171551716337147346377234272827125747837326182523221814128212574235134456225144463433532518663686856367581782237246411227185431223721678455545151766478384717575737755467138584347186872127766428762127787627842616865777332144637738675423863714267626148823873632366524762247355286767328324656583241687518311526851683631756413483552818711667854883823185342382313411152774675175146143544438561516583362786414578878381634651717533466316823162635365335461127831877665366641414136231774585345448716341674425735458286355786382343646621753413624634831215815116332688775673124574676364862168762838873257121535613131283481837237772754565688225338847354127417775158475621543733784388756387175357285756877867223553217884618245654716565158462734142531682572124585822537264417577632487353534184553475218356614544474826268635657115326752138558887188363813277847536378187544511375823713136537142775375746284882473461441288814742476566853818227261811881756332146368621622681167665724515287168365844125872178452514651241124641715363461535147887368474252523383531733583266866368376482523721768843712175448665663467336374361222413377822785153856575724346137377323174331432417156514138613247668844437177327138488858571512364868463246868457454158674335428822555441214748645116644164376745816542237567238611135518587873448251873418321276871217137425656642616546237253527345117751133656533357871463735355866622682837376618466223162384781168817166585833735147121841385488885362187241484185467452287414383786612425534884542854734574861821576435858447668754844352455526235877563425877731824127863424237382258252356211368472767765385725816673775563356264446731426557725571565182177614625187288725316555228785864432468844764623824678817474641641786682265314586635572186456122161581473661136785121288812321486543242217327614316383173224221574868688587158456755151467551225513267784588211485167274636717365348175425133743458236316646541771658861231425621311616862673351483185218356488526256851778224834741331853512221815317346355614788827614831158758176821223654248787656611425867873332343327418454871522221423271214415337745746842883772423441262662712586731132276235336277315237125841574383468787372116813123874464238327632226145722412421668776215234556644415587415643476364651231583837145364722356312817164756723762345778861255873173548522378256457633635352616875738487685572737657882333484272332877746484374121878617856142775678433663717278837417361634522676678153844738323168563615156831385861255337236141663833518767667254376466851332317517555143861483426234785528648268171682677476635425464125886478187236312821581732367736483641641461762153677667412354854837158116251826875727335461836878474452673744188247172624464163661726671832142133811737272354532363147716817621861611417634683731682272832611464142252675752234711634477325453434558726168273231388646565261274515454751774687374254577182771732443438463533167454423388466251384614221571573488546835743568255322614438587513464724318325841148328738678185118471826528111214143775651321531445216754454142226452636425447278688144486567778185365514127535462163277844383313538146157877285117326276516516755351662531148545147652473133665872144384867828573855251268216614565682187445484458175188676156514668865728465712475542521225435413466148672838163234445164614852868348267167661154465662718252146561557134486583615373563257138654415777827374344768183164576512528216188483727812871274342858771762137673835433581375615567255382115561733463638433883526342537747152145153182844314353853726567434247624831234621746748226738663184536538528652736176688372316372632454113847277485251658855274156387488651268578782866428146122647253288773631371466768641347273885374252232251353611331835743748336723642867551831653655811771722464317581356826147321561258337244575842644842646238253878573387445616461762112725381655513543854224752516626854151786457768164445537788266463875664466743626231481241754416452884382872823383332222786344676762362138336356558642831325481644732135535356811744646748844617182852124548811885125656331481266153264684584381757214786736553336243213637764551431728283525547238257482377711444582577538182574381141244685645661828662347475814815586153283438522145876721861137686162886338357263366615613715245817616447143756774415872333854115875381161155431772848268224585181376151135665321474161171218475421726728153674683715564585238341328667243527646624361686868713512565381348211578563342888845815722451482168183841241141612252744676783561568531252333183225185561811344151511635435634556263785884587183751771124557823316273738857654618444543858631656145335221153573224368562284836631751347151477461887422641781463255251662616523628236311176173315471426384123142854654458124141555617844125326412834148552153278446217518711457317623347141838561252578558351252188823684783318385253664386372241638664228441148364232657855236811477758763577471881736628812683617254116152568638712141532757788611672184311274222186155812782623451556676772251455647337214436347111465213888612272112538833336143786364664384427388548448463644673426458777881738441884737768246245772666536325751826116453466777436581854545737521286542445821634343444788847486175785641832182186141576241175688848573663543623333447162636266266234257428451371585157226814382671284685331165184258677348738516372642842845242536282136676516742673866631252475112174648168428574742512316242622425551456187613286327217727656787458185461232257848468327773433837844471262483257781477263575464365378116342537813112824743378713111122642511867367536611818556757551482228325723332888171616457214821242143274517414473458784672641654834343461877325237213332212277376468312418287421237532313536134462118215735666686225126876656764561582775448675163364158331116464283367578126224556123553523335642148763364183225526868231163317418155888465447815658238345343151656722755116464188113134337644365657811216554833714774276627151326166274886881847336445724388421684118558327123525326514818512271687521528321247471187557215333118551377216882748545452878468448312188726576436172634427455388886755414138462161881847651886555237478552558435135175552526872262175842257182311478612763251174242745652427224223788845357162456681352161578867843716131833747424211176732638421761271271255566184152444624233878187772867131736713126557577742747576441743832528872516152545785624157143313261225375652713388521823434425342164558131817716657426721833456351725378175765217145487451386127668355253745155736463767717276153678262115627851384642232621372318283414635532357683713764418538528838363522424783744627754627646586283142843332676754236617248887277547643663817343366114527464287613546521577378615173234662657525531252816634662848258335287526161155855685723667351288468327835541682837568443838855862481344464544446254714267721876735827331445785221357474233331811267652616845433558184274566564656473653844457471175211527872814653875876882711425142264652753325574138434515324725112467328347862845577115536625283335744468232486541442665134323553686234624853277838253453474716175455536828817686373225134511775172644113188838536855464575648244178485485358328664876442563267662277724358756784752283126318166852733725667447483377676326881585437716144755315243167361158284334762566127658868345168775654753241314625577174564742726858115331131458174747812485634826877426426228226562422556686775274572831653532885187824358814427576776522842737317285236186245854537386241328251536746525835482555141654353875118381818568177834487231356622272727725632515114424836668411585466815444265763274364847444263725216627714477365488851415788761478726287513138545231347483468274132452377577213633436862278884366218416755666815247532651348343163863355737277763326458541172458453457847723651678134858667863514748381772117163666132674461381472122285163441714124872375174288111286483617375686781885181571571268515545864521285844551388314431156517715856142616728547478778584824615867367487741784617386222571651713531176861551682527716161186774217726461233882712682115174458761358866585875763512668876183146667625871438616833161158334687134886182215163455738415145464367324131711874385538475676824316746825866665151663221555246244585284781226323341637771315676746466822833352586266715713142725268451623645865357135325585347855516535516784876651778188633485646161526813382133772686351665388586325122422281568415146764464131632731162781524551664427425724546736433618361473446557488841185747477525142756287753263167767127536477888744261113438313786587847656123867184281114134823537181852264531841326436486784724324376283523317388517347586645663161486445745562212833443774351637463274657862252122455441775844352668612518774182237432426166513436816254613612821424565848688888586878318548436468583787653323338833734377387632352637418641631381643267666436333585383333173713776751576386631885282473481771735117266556321865281488648783565743555227515213732847728458373557711417258746775675527538257528861667588234473546215624636155122778544224563486227375718525176862872314736165454857538556633135221422561244585571431846376678767876633724734487587381137353841614176125518857474323373725116746245526264658267588877825433276587628136517422871445837447435171523223534143246757346752581664785724267263156748343825744717856338642538742235728227662728524344225437172361453132887748616742238448224412453466523416877627512242664265176331852253556385716687864877143775477663635832523772544638544783146471644814155431254634548885758586647737243453165218651325812737262842723627632357781723128352778678821888433655284246457151838783475272274126636141453767852711256661458861233784531824726557638863127574613543666765713438358755127875812336214847134377863745137772173372888483756361256287681448647562432376633868141356233346862385448534366564238862684875362217447312618133255623772846444354785583734446338881775645476777854574534835357846532785131674546185227561116757227417567533176753334682457214533338786228434766151138862652712225281773725868544557242376564775885173322525448814424522838473163247246314727677786215218153456342755453742375734525733337531364121656616442181252485627247272383125373683483514744873487375522578214444473781344633878327845663641284648588623774642671441876852137268237788734214468173246812712588577823586523126884825665553478886677117365664438582154361214114738318645328438477251656374481731352835234236132844578376325168212384576186368424873761218775486233671156671683756614422468177386262834683738614441873636534121447646673125583616755724443545671225481752122847233762876241775554613685853747566524712433277434812771475726574345482345228663153247843135753254484684726778155145831711475461576845334677541754324184118343182753153471845121428885165615122253467416466865627264642818461353668116643111638255526723331126373283834741824788157416748742276463456547615145152883233127833241543783553234481655568846431621465654176181441265382846376827152583652421132744843217533732347553838647722586657767282542675287556227868184461744661474557737553362138517112783258867338263525512771441822187381876375853821442386331228188784778276678661672512244324823468824433166534668838151243532575236675848617745615661482622548668336527158813273611456588613378873682414164382331465221652158643573474777876271736125157821485728164118717576266564748342377721433734774213531754848533767321358611748368378164455427362713514234278612341226458567164252267577156534725746253165873164777385217467711172613561254131224842222134722571646164151558347447551433412568381817368182885786522355363485832622425125274651473375417327511678582281468445541747878776647423147254381242466147815584365663676253558561766277848288382435753565531154212476341756453215777615327133518357142237548756112743334644685637583673236778445638523653238457217145435614338887526542832767355251418677611365126462635727213778486451722844426761784842753711441252244185514886136436263428261876116223644731284583221233156244552833264656676135124837743533875238256527856236747837628662135528134653554877237627488332232653363418334782314144573173885137161312212381587662121137324587314482323448567334583215684244841151353314326726836253478811485266363283381863525847786756763376623143862134353547133618155174633836828728724248857885781155437681158632221635271148335332541176242274113162386362851553324432223882453661556388452517516151837337143376143348375213161635475265676622375316815125128162616834252821125355843125324236156656732571353788141328552544321182335583528584415215151322314418542752283648756443828616847855875152337368854565727487648244688214184522473581173577428841168151138577326646451315217168275642654378827553754575713671555731866111187814758374564848564154221477454345417835183553216327616544351352562332542463474273623364761412655547752617843137488623755413644287634881455464213742227664114424887144141376764758867314464823377778254778255347781631747845273627618677661881671741475865551532862846664461587268887272747757654845373388318833782321551445777368757183684554714642654364543445332717274238671641763868431665367428833423171152718183845161586118617121325186266764134312322133658232233333125413473713645425352364256576458186144382656365712617723477774788451588661157314475857862751715712761313468811345836374555512273836156464124235377123478638824313875373472884433815253673371477645844883278587548131868754887433536635511465826585547234281134884223474286685814238118537587654765224533767437452353862732566841553573765365222823311171317567674547582127318281587386333758627677536415345855664484684138686135854611882546211326486766383116382338427563851173478152652832237121168583555538566138315155347751554461425844812675512723117583344657416562158376423552563422353484334682863482243256323522427363766332188444325347868387581836311584661374716816611388128212788455883821157327175214623638578131678837531142746156435465378882166621141154815217527654253248155774478252412837748522746628631867173118746515481122253534464521335386267738134145757126534673475112787237232515787316131485631842177511321242481331683618842133231556648468665665435415381261441215878433151636861116613338144155258288262244586384135164638735146633241332472772241456576458661433444573377456372386641366883643644263217124618744178273842813376364671172522413876512465633527854828134746686151411524776217614713763757433717745566852533483841227413723283647212816766173167645453444624688575635118426678251755766245324837462143681338841883268551187272885281558658243848352327386711668375117633557817541638267424582121636288422873436568483235654453582717721878223576275265311353572458347135824838557665355382555462185415664237278523147347268715672828266688264723187588875863211418335651264343528148836481612417311573561682858754354113741672518333258327111686737214158226844736253644522382841457864745216381162816138365138272665121646866848711514141323886264663387182352833651161663653478522722386182882266831176313227668827613323528412285758541462285784525854772728814281745757667854862537525454355731711156583175173382123365482532678754413467866763162167673446512577887134728265178273121164435641418718857765173817378845474655755643618153551427322816235386768118141645817651542788472612157836841814152833574633362417314783476144248313357681634744364341655158471171316136786241564615731136841147745247587218835313842545315121564675534155825245486657848426264347762864235646853238871532315338722175418643435647316365256651337546254627637363784176563887582112424753325158184188735125441342258615846227124534466135275371483134524846455867325675264758565867826421753321748126614756623261532371123354145853321786134417461364166862473547875622332672485228685883287152828272464548457646515215282816754748546667613476744432557427651231755532353357648742863712276866143582787724347727124165743548843868218556842334233385771711381356337771544346436365741581526658442881524155487174365425143415328276387413848717841578153462518536726623624565158124187414552272864346374637744543122453865774841132358788578634882734787363636436262227645615664854338163415645167848671251424721821884814245648531288284836474243213683764337251367253212456531827853831334145738324585447212881645647661632322221368574184751775348212845144855858877876158646262658513277268752728577871744437368231217534376135173536562672128188676516635447522572318434342822776147617713332175815728858141875656483374263472163322776787573258767283378324487426515844413784341236424153253114721325433428741538847154476356435434677678531283247151157783133643177545468174468872877436436367645486683317615363457266561713664783258156834421463756573263286645657634833445548584247434751571743376478628844783773623764582574872238757622757145177352662535181213755634718573271573321471678766743412758476612426457563641323614615557486733172427241472261216567228634426731138441258343453121418173421213865826638534868841681587441536584742222275538434588618231341615641562776816858374722734538255731774628428662558647881121535224868312241726843574344115165386778761682331831888388461576173436474148863835672586234378686831634117681871258877666782362131681262531485427462717574727581331113266876224552428367426245275256561837346368212135866277473817324874777211232341487223136336125221567178218311351738612481713182227676314384386831761621466433524473128418534237275824866321543177155866531821445537181633453321125672312163613366132712126148157386583368531863236423274875457274513736481173413721715881515884414687134143851887868434175671672251631132884574442351468533612784426576473747742846681548526355413232468618281455731742414218646158863714533568717853113228754428163423763785346238416487338647355687642827452765773422725486882427872634546738117316287413117821774157118443448741436837745686472876453387387273385648138668113266563767357272472645225772448763575768385123826157378533667351318543463541548325118563816612438478683657317316417421421751811515571726344744271583612376446287623464265248334174321547753578121356443524243542653664251464163165465487518831653138411224627832548644515285352531142753185755165641262376868682662754751115528243351155712372247481543544615688682364725143864768524745225472127845336812714742481542133367148844444685572836773584686671485175281568774843386246572341141627334857536882881612335535341318788354114461551237131544877614551475553156763863665486774342416121672657445482655764511844142753487653463613774432573543656787844328333684547172718121175432323624353373634542438111118358542761865784267587487884162614527465257647734241151456523741263171283664526637618442613154662146636811152322152166734218373247726267341268345527812187532846334627543228122274144724574737237311231148142831332473716251671212281814875268888636677463117238827178276661621288864467778558152626535818132657324751585252236888622718678545364321471662772272613581567528726758563538474512368637752361222587141464162488233186837132743118424536534463352657822431675873581141468723727144735645313567437518246285446742282435663171538441164741355646733876228577541255268314418668352626147656167283315816847712416675155422738514515712586843281538132373565273644724141312372431111218222431752211321117315124232322883743578661417266816468888186856336585332847555242588258134428218738458223167678818721433571552214116638846462452824824877181821472655315643755643745743648636445276617848774457613373224754484873321114188432872266154531175243474252222222318283717352836546551636757131732446787688773113724877568143635576326175131841873471284668847282873572651711488616473558428335234558384431577427732786647648852363218252168722254344175525417345333257354382217348326877188524156867668718678511243716625334315518446426885823637877525745276446442251548687157545464628313854387463187767548184617668568532856464773356671678718373216738822367723714172226787483411153825757516587866277523353351363235617337873771154425427644436656784387255281716824455816146478135554848258215586813263864262274611784776413552328335288676482532327465173144236236442371836156775333886811321613817735484181445877247437536584452334474651385753634276638155117282616772717188133411771473588415546735673247157458236742711747463252326212123528448783863644451432322842724166126615868831445445337537661776455622877767827553686415373457653831137525316228285716142444771761873411147426142673883284542228214124224624337453457637142861877181177541661485331261675768834713427343416415645462535678548878131764774575656213122281251148127185278384861556528747458534112872116145288232474437741781761158365541721733876176561245383187682342334873847346858871578888457378478546832362127626751441442866525436231853732564848671674542381541223775765182542126245388185748757613888465276484268455165515287658855552271535128555728871558422123665554213761386844442584115816741486713756852246651516876567852182638621315226773831537852756853783334421643337277317783845312677871173246246532452717782432256125121115476148243133728652576348427537636847623532474315461765474283635138857722155186313486584821343526562451226733163168688786787241467378368647812828757484161852657283788658541618284633216868134821288755666716683762753248158211286267345622152337224484818821616374727441353446855865462121782581877773524735277474886718775812585434472531228567124484478648415118224374256128582146442175132538122426832241168864675483152875784645388228386843812427473662821382587475164657655566375348532336273881113538162385633837757571855225832242758148528867344162764156618484675356814462386661523128675315363567355618747262233214661361714751373524414887112882455282242285334355613762578447254661554464864881531517732472387434486843116486435273546472677127233726786433745424477784822321644173462712255684288677131868113422657835141376766644323876776238861324584383836262288587363153528621666285247735654371174448617238885672263146378416471585525847845263888361867715221878582785376754151673741381573571438615733277251237562512328576336856416474811838346563414133332823334673763422353171386458682854354372365266418477464228755141232531453171487435748357243624484656313667413356532464344526655177725752583835378132426844311517856533453412535117356521816624228837773674734442837385853625647582465411551164837354848377842367272632484451553174475174835768587431238665636535141654717385821651473446568838543224685582673457453464182684518537687323452463268226585651772444271617121256544262471656715856861642248224445552611463713414662733523415648262118756137844172322344554725712112673356627735637752766854482362236527856648817458246538844272881323718454342756762232686264861163441882183277823615864651754856762557636642281461134188262327811753585835755418212527214484754746763866513751662588326425512553338213853715747557285817225371311281253234674241566234646245363153267287226647462284634857555757745551443773531355775241685347682254368317662363547233818281868251354374717514865455345852845532366665743613766862413164756478513845136354641134372358741478115181614311744554158874767863448145263573526578644543885478484417123341252576547817866272232537136131153321532332235543433555836648612818653853742383336348743263144814568432415515535836721684118155468172822548218382848627275752365864166871487337532461388764611254266735573422832167717654722537522881525433626583361715386116867754873485766472428486182313655442536765318626458115764162337472634877275146782418642747842486526625133614381216132325721855576325435785272212872164342844562853415872251471337445835631243148448616433467252612755434415421352372632644121876158318411842663762681732343837614231132132365513477132832824652762774684872548446336128212366521318764323164128317178611714235362718317324773381257725463585777138526355484688465357465721815467421722366716443835677821826564373854286537262265311283755518613567644484212134322431426643511866412441832142243353185361687342142286378251834855335758584335431625354735738882224767323456886137528618858817638866667821326828441117813861311387524183124462116774572534364381222321588616814272316138156282224113738718151245133615622131828338278138632722822283734534622215788713443524473668812862188226415483386525663686586751851548281785234756138358624381443117123113273337136633584131745642454421445648243872732312145211452464214748651624716614817428262167185271223744282562627431154227637855644877114337181814625687432234457726334424231322388855618587844773275537121648867531187647217286562234582366328238817678556376683763837232463156844527264767247432372215323327673235158145858468664851582471328333484415561573241285321466267257215642268786716533725537254676287628846485173483775437224357177516411655331371564767656652536176684458158683428783637811233437276628384731268758187574566826684333753815123885464823471767517681172862241586644216544227834614417385228338811136641758258688738525244734335134758585426456846515278252552661246656815611862232611633557632742127415542638852638452326758881218621261414165835747168451151232118686487784854547325851132645523547274631235641542684757638871232626188117648753623265537426216168638346271232284177511448635438163514223716173286843574227737735685214252468347683827441273133262477784616547116118748534414331467124142415273873434187285537641228323561188347352636253623184265614157734655252885211268164552782864656188665454541357332783533738885571516648714736638465438677374542552383871361883511141878723244181886874861836876182758687172477134722225867566842126656264477852331212665538773182427141278671563571456175834838262636722345383322353137371673366536774818215447261243147123128468124574215615583224138886217743424773851232741763272732423814716351345455231313386566478345736432163677352158878486112645328633536771666532416443624777428177338576341884741444725261663376166634355814854165123388466385112362453821126573281531236865133865677171788124883143226718173366545411176877376377361847556753224724538283882336253724666322441482542451621541733724757586481136876278231872832273367173423483781415488173366481376784283143372133362276574728827213323683682852784628336475467754883252287374133552582288413878377651568354636678537634634538563887652374627156816445768737741141572416848322518324557141822183651887652373441248584357156822354143774113127737653258621828254558516114872455236512434233225666287555553785418135848168471524383258612681287762435148847115445526175251371224856557258828261383187328354135482724536487112711671513544545254136188687315455334874885451535118614371277483126424511223776156687223311158226755876884348554823332338315826388776143546283574575414412653878564747262577413632773283457353365358746684525575754643578122427841835564633851432586825434365766836443523767726633325848863525217543752748576351378843546757477338375255174478224214237514357747446558137465157135557465582443776543125768134414655262627533717237438672272282567272351263251833343311585425578157388376358123456344163411668571866612117515511745328358436871647415572333874665864758782146727556674877233286353737464645127541227515178865562841475728177743454871248743411254881447143886218384327863318384481112513867388878326774611616743423371567486341773321687437268422445452287583576516245175562263814521446256271532253437144256254316346533221361253216871866688275721248262865187468654741278184546326834631386133615146125624245547212361161348316871553182273484224812817542578333855854642172488751627478333735721323384253368854623131824366445233267684582553622831582878238413636356623547566638474673262773752577726131587231765214486675556772558333177417475162122445617875117131185546351727685531266551762642417852386448227767454271854185786688477238141484346424416575131686644126177734827268266835148275716327686266538342865638838844184626543358828423376828423164473852315218256768216755767774388385483618285868756213781274463388517445462555541232276712247344285518745817528613431217387723247468848246158881233821448277268615268288885781574745476162878726344851541785741884248525711452755257871558244218328272722557434626514565546536568273335251181162428443154627341855258374141156864518574143746738325833837111314742688281534774473865848411247227387374387475821874547285768387233822126755126112236543238655478447348873454855137487612673381742662361575847221561437265562346261314123526185122725547864268473578182158355836178241136511255224273175827417725611611167744362671678741657446826656331215518464413384151554323584387114224167515414476428541456855355445552468576175386256863558251415856161634383583874371543225862124782561117856215343164175538747277144241513334437434738152683422275365426755267617286162832338457684313574162582817674573316323678718224536746614432776223814748625317367618368412551877335416358845743528426854278864466614345816572414422124432185437758288471215445476655615424633415114848565271328655322761744742342416368856675251378533316347473624827873642264818632858354217561628527548633788752154571861783555573137866256232184558226865832145457725537221136458372135224188511482612484587888814616785385753562638577113483453728275714186313276115575882736775553118278778714272381558647183518565554112678786136677322127144582214524452337647873712623274648521848474377747512572621637187141714348736216637885224776655236214347372868643182363657474686174424823171611826654636542811326655256124785844228678813161712544156365311584823557558536623566638363513553622664485347578842315317557871822175224625274137365482354743744522781253776841664724125281441517377464327113646135513622735473386284235686561771386665518254454238353872235123628453114685232224716264177556628231512846526347488115271613365884842615427143588261485265488554155385834718734657466573231182263762152418843477834683673347464752123864868266666283251155817471253525627243578364276252352856878712461384528145231826152314668648553578611572114285787687154685642611576632812836573348725871512663336166827126444745623761527785135383172451214344726764723612761411365217287588137314486623561576314522317726638531836365672441236258378232411421578776354565575861815577435234773762164231655853618234664346632565672612446147818588563867686554178351461765522242285167737258367261826158277112877485345751657274233487426883277684287641616281614524332621685452747312448657785747341228878482345165776743382763267876761471524187345176315358375261727853524688423832538724348533612167325771483473612251485857375488827165212251477368418111518727661476685821535163121872617558133141527165685888786855623548227232348613843417187778437348831648544212253164873457351785657773646724546824312354151236462348371638188671772614125715443264268732687663426677746426667172157112872725666411345557221125787617786645777428221465756825115775632163241163671627213852423867211314287315263212627171723271581387677565178168242118287173137764642187663571584762451857267155475282655123148285342316721583712836783362566476676767251175325175752774811625871637433137326534721585852781475125767747541213672346543422421822565156711782725826661517726425343547235864656348873631273481134878667835381682385235341288363466111783188638828247443568586418718485781661323217847884521722782447873625744124478845414185865766532584145547856542757236421116356516671232813224116788232212544252481211361353753287122333553648787715517543477687318418762185675133373116342782528261713173547722146447643532478465156134484336136447272144871724288418514116317622448323712458865525446746344116226748686518285624324668118216777268715455862313315763438358535122817424626847377532465481421823673281562853756218445852554523751771516488644131865227874415652436476733653266323412815315541371885364611133622533438821461218274612733832861781634632448526142272465425378457532561711433714833236368566563332148785838875368658886758216185311788448846574215162356333848531316227722446553221342545536558276565447357878882876711151763487255656177835832785476272838365241373551444614578276762562587167716232833111454443726673788276753442315316358368311875225713175185326716238733664557141231438648836527887572544811665384414164536355755663534174742871486784854658231767626185261865614441515861851117531248733438616147717182757855618481173486853637414324585182538137143442646111412848858554474887767662845623354257228765321628165831184323658161452438627755367558537661182555512724456783185857771354333275616855887644544241175717211225786142346767332723486174864646222416331627447381336644186562851761481233134563556236316668722817524636511854821218818362321167838383553525813634231224125733576413437481157422441228571251127435668278854654587226135242823753436344841165422848553244835872221725365873232476848328628216135226421828837245541432181172454863314463363753423136832186242338566674877251582714214314177377732468556843158748836463537435815122174737631525227432474226774876281234667776168513657746274672167281353132447185837612381665872657473453613218762548768413166813627663148456313257242753126727771556521223724238521482314855681622463275236256878534752256383465577566776218817427888272521724142887373881857788258274482241544731354321425262287762772185141188172214243738614458336415666675351562886748716822755265438166382425665855516215156661713776123834452826564754166688446484113382646518832424576223757416516413646114586435873365542457775536562867486246682628841756644367821624453247564716617673444561838886318634247527887633636271861736566546532383748672855368156111753474736862846874146273275563347553635488388847157642636843267618838577163136538363522316311747632555862345615518451657184768282325528413873233175717373751676567638566834814817555174461184642521244736884182726225567267618467572632377477536345567182423438753623827755326512254864273526167231132767465626538182128337614436286478783165425322528228841358678876833348471572611338324321854853323516122246177111838167124415414622134827625176245748521637847366271532158367558231657781672477763786612585122512574353237342228467644561233184242347351272163511471517636136126352287863168186732842311174673475281656821538317188777885121438855521873845532137126772184636578741748718132282611857227281525486247637686726654656537854623332853636253512866442652257321518665644438371547257124315234785733814414448484728682632822452114111242546452434461233131346427437518461166326333343343447748588128553331838332532533836312336885857776446365288148382638533722463757583285772445372222265453251242187874528634827731123528442265331734846878837722723732475517612771345513386177825718147354234868154624541327617387318632212317314346487581462282687331122342148578828774582777516411422343156574563227677722568828531452763531644653526867675663535377451678414561728472351427762115812875836473223631835676521331877775344658132362834412721754428356757823873671764824116777285722413865353682444746223417887561377665267214847478711227116568663131524111412821716577358522545757576676774575525374671637553117533286835351523116274717658831478368127654362642356426378843856573485836164787681442746731683357366736283578127758843574341345178467177813774356321665678614812745521127365787438366731411567348861867364844657551731847684128172738563127551125664727574153556781454633257235312754328374641876683133848737428664112631161738484367568247151837817267761758458882658531436185755367612484338328551174224433877212872727857846452261247587575166731127411254516674315234188585875856463555626371481114178115381753111156677823162738746716113177454456685483488548238861261544875187757876373816736673416132281685547836654545385854865664773528244143368431658313658825161183816162158112633651186875272341547321226673456788587753467363127425587863825265272666861787186544764222518182211466633418775416883172238718186638163421815523377386575153132365367278876534522457165577847764362658443166185136734457228883178352783256535147727851642616124616483627368543384776726847525776473654257117117475633477728483682164258546446252424468221726286361375336571865267312888862672877873276741534127517384382426322276484648718271531166556315634522227682338226266878635835215526648477377288576235255658865527858754372267722515122243111328211786282277856216374555763554175751441255622338663775137354753344454276327127671537217133578411425881682413867837747222565413124621351467454844685526368776277321145652464557837245742438114836811266178435884318851783481871541337535545135263737813228814138123573786361584776364356244443325373558245765813235636822153355873814785442533553186754651872176137413827272233513857428177382184415714682472743738267275562742382477813652815875468273531674561377165117267453668553714542167186561277564476644351647163268645182166438837617711762577564134314467726711247127751878712814442547821667372751233332277338478381273221855781521741637432145662786218861151172762784517472658447235173774753535712833637564427737145384468488841248213668162524335524567214267752738283268887172333686224581173356863258717626446776555525673525263474135553314642167525744712328334643818816342557828254334264756787285773476633181176515673664444833127132755662665183622587188473452764111377124671842161441185382474555653462531282415128727324168525151157877887714323385787311228782517165722312483638867684476436573158582728535587571826454266482486423355724374683781536621128265567853242635115854767416517235647544527377855521184414134544725535147443248717467575187223381748451885371256661537246634854688611486824611477417282552623183528668332788517847734641713772141117686446387757611662728117872158528358855442262845737717585411338852827422348213682532882238132824212524724332516751628848542414572641722844164726787357828168127352831272675737464868452464375261161687823113828866823756284477245721563548746714215547257262175354377342733573618323216533481633622423313321587221581228158727186818218432351168185763778437844634522135757561441523857561354424543745832677788456723666462811864347537763353214853888533484476471882767161147413763323632631474264827782586316354583722655313786777337484725451575437584231168424357763242653462121446528633365666213436668116764527366838333766476486733788146518143613335267773232722756762273653828213338277486345136764158824872713715671281522184777743335484571827286265734814148883833262236377654371861137242182471787176312277575338147768147773838786234318736156531414377753255685464565448752424232338612884251367732846727636758142628877381177757828317142423387158613412416858342348124253542857575835146737468653564676882284543635326566411346313461157233554837165488186181621853765558772335747153853562341313376882541664825681683818741836364831774528811241825273763523228378466825776557216334576515887585437786434676257787823373838357582446141285412351128814357783648541325831477564342333735224575211338432546161414317256638784474267127838246344641165718375738315764264284478728825265711873871227544528167518517175353437425244855127631542287566218112821231683385634778665532712428677362416686866115667727167826742677477227471281424883651253516662261652161175884373615722672114332363561577764277258782865173213348356375758276187847745811332232264562154642147812743844143763648115876312126813747628621163347724112713614862343714463446636277585743714881671157212245778287123366543533671654264354818535886834545515533367682626774786386675686257367615161218586166352888255747375622828815735212534784478151458136225773433524474731267741582252841187487741774867854315831756147626255816155557811417562656827688112273845181887117834185454281787175861576242858312776122512356155328336627813441584883224818322528458771547573617284573544273134531425248814234124537583876246611427832437747328338277243867544576148773634263263172552558313737137113146453448614436682588542152838838575526246371156376281112754756772848363187711437727484576628156251676756584617176585818472376868144775245365171438586535661263644772413641327127674314571554537815723184172578327457712523843331813877876732733264622464757757725713567852181124575638771366747385343234814625271321257384165864455448831818573324341246348515827553223821847361482465766726127841268156151874673736114685453847624236712516834824622657353656175485246114317785834118835766265722485255583333785316256443235614453135375275154352643374286737263132631727131462335524131678452462515356156613832551651337744147367583868545485322454443837318745565537248487886633744236537428146258664511161748721281854382365652635656464154183718764862217461388835372374453732677774181434532524118844381631767355422565687716877773327851817711143356525153652216234831686236247248782184438258838337863676167782437344646368823752358686814448683223584377861226452877647688628637183271867151682576421878827872357563631235362236844113612556482255487228315535736337387421756667276684335848282831626237313576465112232683513485154746544513345516421688125425637173416864767488147727385837467835275533525465846727226726233126532855214421671353744573715867337478681617666467342456746411738537584265688445241183467767751772581684261711485264516144536362482266553333448552178444586824153876512835875417565511855327624668838178363723641881573264113231633332235573816515531557637812161811773432683448668475754345118215284584368371813842483527635343738848873871667858267521151381663537433482457754646588555384327641551888615571554311843167111874688657637846667718751266863537884535155441716684338313661638487526223664653177221248175145653414783251382568377168866547711127516778527662366174877317685617234723761384282866332658587265547835872667287174466518165847163766131387774357685123636271857311628655214536463661811678474775717778115437735118165284638717358614321854414811716486551537134864165257285355313122463123833888153667254676726174832841281475181324785834612876438321418125634633272674712568273722832534183463652685233881578861623573673831862232612611665532364322671171746666417565318733868152386865111463728543864747714426516863163676157672164428286238856244457425187455358711421221615336442241451216413873122683461168474688611787187382354281544326354321252816716225447537652183325753848746577718421874611415416888353383847335846582652312753247174163334764324174246366227248644641641223255323313816377262233514368347638752158155654271151471763467241233888861116431233247725233543322627265875387467382131353514815774667263752388784817648157117373745338674764444512372847458354215748616253254325223427251746837417445621646244655184575631828466812441422745222487743465137175463516328453842771234462175848172318136533583637651217872233742137547362322585466547812285465338288625727663226831387413636228614663254627818658388716235727484551873112812537243123316847356718566764822245555824754515812348285568137222376838421567134857776482385126851514255717572166451211416575866187473668587652817784511255743428856328837614862342682777428331732431134862127342477335744667322232844441252643552355648162614486682182624577841746361777614251528388566122423283871635116372381838485257166182456488815381231223268445828328452611362881811587871535637655262447564331187147516656835362885135843173772253573855558185874454128183368175411485157833237344416375377373484434135588862762323521757573573832112651544382523532316132451423633765576625844857175465677321653616854533284341138362518337853884576145432556638233443173848847313573286348518583786711185845465483662116834574734211828271687833311216761834376354325831166438455533376868463285687857552265721471668436173168684441813281673476421461138882552163163448116825364161241741153758133167165466663276881661646872684867342855522518365333464632887155585672211161156651684166836618354538618623777224771244834314711258226258186515853674634134562386815676256516168133413525148747235651376636314324235574245738648765868538831432844117573665585173346288258762123131548822142655678355872554736711852453636587635652826678222717554615547855737461352886568325262388554121511116138187641273718115867161631641421371645764222723178756536286815183267722814143847888252747538148162811782765266526547432345726633581641734111663174433327516236582536378478223177486738275885221444142175687563123655278438856187412366812338636553171684688167775118368582435272456235562137523281226743185261873353511674233527381874241463237553818547631548468167357362384615863836668421437142466361588536234524751468572183341636752615284513855513231146446111675523733281246664887668113614442164144833847323672227134162413378471843844443717586118513324532566531532675653473788646545817762175718674716225184125371872734818571254534826425586125721588158874688221622831178757141685612568138657378238346833786466134256721452386711685457484241543535326863287845822436865341861824416718188573141254516232788587135325382811722817367147887546826457654845633821626287153524816522186487631128147433848357757116226532884663244187147174726327815335222357572147453326458157754146366482826772536558364761222683428655556335454226613771412371678325776216443721551745456371125847182772133472287347783287886547156382211418635428767784353877671168386134866475162516842231664362856651124423825776561451476524418235847458658846658614423272522245736243775665832863124188242262412776134367737631618277663776673857537624416746816871657642121872432253661154622111145776645643573465632444465642653811562712136164517447782836287147712858232835385781376278755536116768672545632311115323365527286573427442822713711448345564148667676226128388347358251416412448876585317733454858754782233174562187577436443748474861151154122826672472736177635778454531138732255464544822782445887442212271816513134435372425621532642531327877748853481517775447578782524877433327554274633373746776838186738762384678842745221714584214756434368616382466187645255662627461583434758166342776388535665222847287371346547775122642378487672272565656171768147372216226842255172224823566177575783474778861138351418736511855535843186843153654312374515662222473377162137363713637284332221857785668868365625675261314475167834182645572223342558655658166755835211355546542784338415413755428688632843586443765725123114553123645846266511783442543544565777158318885345385685756277234778262252127358878118542838648887422586568384148856872764615362721846653688784656411277325452648631365384871122323447736473343873878575544355554488872676512785751317863314528635533481757815271322275122231213333647431871415514372588318386336556461255213423421335863813312837674356546784616431133174321163516513267513873686355654652765126536751511865844541616642834113656117755723413536585768638735167347731318328662187542214785458774633464382835732656834118225181233436453652835266721882828138717142484338538113455454223225212676473825564145482534155347424672131323846142581448722315727253465214257753577528281432111486643838812474442364288132788817568537538443774661186665542543156528438863356484211736182313528241774347344178218358668888722615451482375354362866733678661512643482586723848233525754432242123338548331222742281645755871777717732325147337414474131227865753212444555875785711313382177331242442816282647827525745624226247882248568488247111552223235528374288122667683288255336626767455742424371111126118538861544881242173421277751251171866676273866162168257543655334376655131386583416372746768167416237347436183881637578753758261741374277853843873431322654371332165554818811817857556773812612827238581252258614565324324275344757777713124565887521527143337624582848847164553172734514837368674578238845362275455475845772326761654347844738161678863426327812147247132274677745338347168735116431388217672226425151724416174337856874428512854555547585353782287553152623715832272147543478664135182368326728834714555663231348758655577855825386438885866582543478617213452142384888273743865823751541575771678775781264222328361384853512236714448436515634231358752267181362776778248368683734766553427552336175558285262214557813242656556252677316481561635473314546383175753651885653723152157423248417881825525251288455352218171181446434166287867723118226784781514254622136834312623612842436187578121721463511638685581313118736637426531571534251626443424356186448188127746853581232474571278581216178433225142262175134728778585251713772385468376855337272736328488464563776712186631228882633338266383572732887662448347277226111431755547417342286627513121737767518231171475654833453352114557325188163727843113318342527674272678355633126484625325437362471325226645155484733364574411625344555281715812382585153181222322767157685385222141525522514443376273658757346542313822172285221886738614214428326518673568786876335283278638351867415763757223845225441173824172738126857766137611822831732381143841313676456226778167121816821772512576322514352735684475146735152721417665782641361418873363437625336283447312318345834266121547277466717537537162352748426267653481747667472355276432148454388345335153511613272534487481771312542226164211488257384114773574334425238311425342867347682641141482665315317518786287866237783817775812518161817326171461356316174372288255323645423231232752536661546463155136535558232474387621472137181381521275654568187526355234811646668673828172842468285315466417244677546244325222247445171431712771434126254666871722171184762128158361573858514356552631624723388872648812468864271341172121456315465136768662241872848727864555768442628382476531435117752323488313162188716561568866453242481187115362722265882745241565372176783186267481576732356168216115352661874371437277861546254832457384478426536141517567874136348778873732155456477831735718234268656186367511327622751342831144828385832773865344576321171272574161633526864265224722631615858136161127472557177158382153525538882164813157533345344546568137534711382354777627253667324734354744741663712573164332134273617772333865246362367786866184324768183878564216183463261775364451426312857444754282475268356462564712187518674781514277274536774731831457322487457863652714248233383137728168764337561412435455371583443115882172547648787181388454455656225181354685642252242673735387871286288357582714678554746233882677413818734622741383643456756531866337726357483238464671155375461263545366776616613642653857582567883286834212532816642633188353623837522618758128648523588421772645563643235187642681658561346521677117132617172827178816737181764232112743647748326276821626318473583476617488322618382131636275582431262676665716413213846661871231713567314575875262263788484166754272872145281676514843488812274562358221641467238273538188314431563275325363773367327286784336151478517184148865713238577876383186124488864461511831484852687516865325362667435588234531455223816417631767312751441863518237477185558315136778588575533522366743355886586742611338878881284435732431646431567666255615481844427531212711853488162643872642141864581371443678385525771645556613632738561727646815553384745223455685343381735133657676137548882231324651434846878346611562222311433567517168456887667482211446146413851734336633456865276282583233335865468147454141325114864284524777321885716362814524661285324452281278466154721873846635334468548334866547581677878657852384828553546257126175541466838125527168331625484282423426728782313726725477683163811723411448241287831275554831787761626437158177847556128567357185147476273251514461778686237834217553372583554667455323615118571345361171442578331558881487856651773882513452181123112218861535321316433468374386683511467482721447251217135531781247284613872583374484714423213274173221217427355785842884312586161872118411843278363267365285782656524132733211144357254463158881313676555846116418885342344381321367531222773283173276422547541373745824267177453661173843667312683841337732236511675566833461335236326151271536364782444582572711518365851824626283817463372168788723868167118475776588777181561217415468778336712221117464216827665863721458246857825468858542174677861615676872741156813833642278162118334837772774244137488576241422151424387242556665262231552654468517516427634816434314155282537275835344266254864864861558628286456557844466421867365122658565877334118242783841774856723446834724384814288254882483635665365327426727883864464363346718416115457215612668162558481736644124566456573746624666575255838342764568836877528873342427827822617235675163735773214155724566443823251666656712288281443868521863288826357845232647782155124262256755172842134888665577248532444121385478358647372736312261165544263677311272678832653535633753861315743436664567783725375351557345588747565637464345544246867368828458373545348771132126618246234646364538723367477681131651361314142252134146575421473147272373743658738733557781737243637762716762625315231166651232215157787475327844164742516236453527317253754244322712823243754216644136323414845723864885241637183213815742315574762866242221188126466556477645178845551477454132648165411771158843567273685214448822458243247218133646526213617215822733254644327578846527574864556311583566757573166788244646288771446661145853266515221571161818758483483688662433625674746517173682817374752152323766822563837316254173464346475332123846746536823487312435143546754714185625126336663716127142374455861183612384656116375175824321723831851185422728554632331762521578264241752631353686538273481117832123718848164884654267476247142824311762734834886428234528433283373168218562162361381613642637525728441364261467263844764114756118828625238246623624687257514863764745425118642611265847768865718351553151134885867263126571762686423328377774832455456265252437668167686241612553117423117821483168785211341482662221472841875872537245768865218181215111667353525818583241737434415775757274213664328544384636244623754678755782724644733216576647681237661348521552144432681431881818446571438275356488635647784472486614424448144381324474833448557335767778678727726865334465331728316745621658147711843148668442347633861686367128178183121852753582885654342251127633145717571711188652756547521183484561435175152673858281623622667182782318522651613328371528482761641741458384454474328841748183764724551588585188477472233213175466838644511721738543456333642855618361432471431844386638651855475868623757461435531288765426132235286238646688823548572731213482677487132367358271738622448657625422234152853841581428364745614816115311413356112124121111367658338756556488261848411421216178863428245581474267128727748213716228634771587815773352113534571382234378337785341363443363632757642745648235428146357685634566337213644336867878372626888346646557488782488144633712451282435277687577783454527465672657411135485843688635277831565332172245481182121854578848655384418688738814113118223677548675222651641381711777455733247722344426251375333111543175411878223332846565267445286115523321237237822675768474584362723721581123774648382238655682741722867166314575114284231385458516484266567823423818132167571231736823678276485476185357726535278767785321628234848242888647865423353581258143214627824745632878315221333317387756327612335188626818843841768345576323213772351142842715743474818241252215441215865255411345785675418228738816183275782536663812547431111651321645284453688671442354451426128751361372521258884138232241543137253256375411381463176361432334826232528235765867866261813213584266136818582658243568556843283671188358365211634177541784271425222126651361113217837627735577256368611683683621273114487142557752327187434465471481416711133575327723636163477183233421584512713672825388237186376638757715655124875175184414713435871467833512851264334771831261438162562478675362615751843536638214451365211637575721712762112632134751442512855587345127838167777334137755656266612271168635421228323665231657184712775448687478317375768582311477335541425854744378723463563217817352364855311444483438643661531856258315412256655115676813533636812833244365142218333184156128671571785813463354284553537331818854611361376522687128363265853428586573612838788366384571233444183452478243118635322466258561161176822745743625227452176613767575767827283551647184268518556421584855741663337214337257721257274671755582832743273158541253147566357527476352645812436248223141673282648461585253115736658623787163744771736123331568212764128526771357117766661424414572681518386122887465218841347766632673572881148682722613746688833217133822186625513474634163156843642844721473638677627184285781632835167172842866335244268418177371877345216161713874351317726611465856276473431724821647585856563255763528537575877657466668426412175184527465133465223855867214473148561814574571118164522148553464482278314362148145214868725767274453173476682285763851713176514826275338868684332337377275843811588728465341744566312788151311135673521752883451757836548338843572713575774686732535888778771737817836472546731143288676524554422725523347131181121874313468762858472426275785883657278422168255761112331575164148524433348332528571418166641111763765281681812738471174454435462755135111752815821627651168675526131216878731122154576581238742521286584567546748817334343874612722447582125751327146247133213442656123332566515171351244152413637846835188421825622612227857282672475644583355723684715577186732148311468685746263621767244827172628755432512818237372685286553484375577315513285573723317654864817533154372566733114135567665732375587626448723188558626578653577116475785767673618671888822878656882171626182427373457111218731581684336615546442646245335764883828158628848373527848442638625676683232625651178441454376855484258143712473247252213541883242533234124238251136224237834747167152451541262265753346636122575151353814126841486471248722656252856727376876185341852841776418581352771444714147111361448675512616572275655165463168723777115246884728375547752138626665263757426585133344236111863615738214816335747768853668733754116836484176267724626688632874475264523677412744825671614518826584612166573757758174215266234744825778136473254753844466641281543731641448334421614727582227343225355481883432163554161352642864458655654655863784887878154346353825551633228188287573548643445337578323582517286851812743776378745766683554368534332576751158118543823265353223352566218324822846814387824815717654345243642886283682441837277554175211541617123188214854662586582773584334136113833187452576816271446868148751628627454277877286812565578522253222834123776686454227742454546557612123181636178266842273286742678451751481217124725588528311237273825564642424563733751377467845234481852174241171855161416356471875542728231245812424134458164758474555275866427265537678346437366682826568322614367112136378275722723446348218532312522346834225354364167575248341287478173154686673286144335328845444317528648477413164516188151285523172143551882315435222776785124328173345415383736144323163274663542573733337322636155423616741265884864716614866578677618171166335323418678263586264182586664366518746424412662384451676141147767347186286323227331118761874631132586213715787321427364358472175344525863442778527314448174383773842287441587146846357866312256221337742756362854358746133345836626411376123865361844346347786268878117665638225726247533128642548216641313875563854667641512432353636624623835322665288721851753125484832725454287616684358345524764726165611781557886323124236518667164512371413762568537541218745642668714815777614657178766651871757647287473314445244732463257334664284887825338824183748755554822147414116618351636111172244683516123471626343172672356246676833315311872675573647578263541281287477473611767718654542513622417246181352315785752276147375236117326118318845232326636452771152848351257713322253732245373485556273354644566778637848447444665373375648716542125875588144467616684265252566744343852552565336613681222165351742717551576171446626484317548584461785741527368611346346287126264341435247841512586736526488115285825538881141361551272571487574275385354165158272768177724578153383785882264758832631112536218538565132827184886237248188378382745125276686153475258635563452313515183758455668872724376683574842142176138566252318647463432572786164664386118711764277487355442748873822378355341327767661374157813864782334827121514866154465833228368217581162722225521637326315312722677674536454173255544372712651834468832244642856272616766613652718657872123325634562227585531611343642653152622647868485147185878251173477226372775434588865453145253257176362528128574272684668754266664317436137653746866318385313846174586265137322168318315516711465722248718516764362862437777522664885762688433431684546471813266365448677277531558578877174852647888557845685727675664238531465351313667847421254786871514241473561837732532354614467287523252574265827842163112417837745267875418862355123238341243524181587285152876468378313126345625461858135221566214182111414845173744747861686324474284211555768254387152222428727834851126214275512476688441482843847616333441887216543454264128328786588731586174437743368342841436275735775164417387282735628468153335811226557854743123251887768182652361183454547817783873351236487382352313733374153357374176323257354142484722727731628183424436337648758731178867537416427867282622666256865722472283435377266835253577362724657746776874751551746114582641616556382581163785768265385551236852277417115344581124658865885352276176753354414223255253428841265464126152553162186513511414572634686317534541655173134161578357487235578811645853352367473325264646212763717818885127836835417868358533413811588667552824164827753466484471486163725176174246827335664678727225414162446751151858273621253174332385248882614658673115132148237864578244312667312363775546268153177682182225645743776142654327335164271462834277566866218312142548633631581127432634442463336287662112731733346128258463786215678555638767613321843741786424652214436864741748833274854552136814356641785578437453727272441742243574654727431363554177283373184122584542175713725731628617574883217262438621588278221777246315525418522571341724613456377817235466387225326814165321145713635268565387588278653785516256176613251746515171116383548234832558541335545251821328272151221133857676332523272364888612483486752275878187115243683268315621853672368847348868888872513132286535338273624376373771137112787541744368612731528713573444523144727852772134646533587582531834813414371453527747763523765835126333767718732513881322318557151452647285267885382373271735647474514884416813183237215375458353314713721216526416236453814518736866855666484735424756627164636484176621868113324756438813862611776227212772113248852518816776825516424282468454458366226712283714223538442477488176668425534672683856467675524488766677711368237581744512731361826571332424137574567685878873174347171283656214537114683552725351634758175763836414768785547238212384863448488218553432686425186885372383248728431344228427134778827244135873526252361323682161168544154222534255188177157735538484458767182224483467833725865871836571356464573521373222725161163427223735373642338352218713726755276458675128318744665615656338746253737336737777242462847376237814886436125754377422376611428871341673171625623262455133745648743762165114666688515615886257142488386466511746756834238845625432327565882573227776816756377622723576632588727366153345843762524847372447128823575528121886225628216151738427635277755752264782373875667515848534128561754232158426871416817531148613747837141582346154455218373841272565148185886362716325823816682745458125565212477771332538857148642248766847772668658518515176642433118764258422147618635283534646154882126134315173512282251525881371258768888583424634725636236732546481378885846326468883315554618127125613283882617287475642178881663138858315446852461635413488545418452158613364262314454752622832464378256458546663727854183875638227238742785168321713872745115837322385232715646485671534235687435232755686366176221244554184516231365545868634853167283518828333331551657327673686466733485485638352386725554523366611146256676217416185627271263541312826385673524813532328835246363265862148488748782834423117415728376286783676236186434542153532235515272228838347552113817237821567656777437357673741747356117765682875424221575631624215726613333136265656422172128431128776771641466848286151763472553587242716724215184461554767123148433614455573158213864322174174186864461525537247532833111275542848153775314725665735745531785156532715316487122215751163158351814154472182754171323428484126224288334531376651483615655727215225727877816243358638864223513235674362138441776326361373643823266584463117153371117113873875787524561867433367445816214288374236683656588583147387567684528148418442167676157476884461888784712343225854635478268326865722868661578264234747722621117356143178146851278523485536514131642645521823686548855218436818568431152128878611365773486186121651653435471151144238567874345466248582217718564186821718231444267124181776614118481542132736243631131265715875722642754834328582661474834472631485676746267776621754216322275224458688422811378324712213322811112872424612435467414634163723724173831367212755286365763141188454453558431322482735467348455112443755458476433372728354368545375632767483636154213215237752376841687533715177215275765341478231818458716175412871564687716388386833568377784683315772652872576376244237676152183661433637476211431424873557454781444773522718548651757171536862823151378268721656437815857525423788886574253385547415112534672157116751776663383783363225281465863515373535755284281118635642837858474446177564674484435868638225661114478845468728827464147155533211358228656685384112515827547567681212246426613123231412752627444232315624482453343443538587117432252534548745676122445182483315187342462145373882786382547738845745553754852356546733153886487673284267563465785135341381521474311427242275624337827657675374471438723146528522861733361858816116888854672238136275422567165476242737756675685374525443846451674824418664388826845271462777742311446124428162763171674752343243284885816824756755581156877358347684184752784576636612186472373722227353218536386636783247346327436333243265512862322533236455868517533541256148862111121453821571438671365636624482218242513251381335832512363413581421632854674464867787872323342851173845374427722386184283184881665858556615156875552636725212867131553871465151372525886274347747413768725136635544134347443223561826464846625861331634238227462134472875323816546576168677574687712685727264535883558233842177468638826614754443365848338547454326824545637243265661381251855184445716376261147321821832117264618756562344818432533583458873411886223416517447612536563236467237828226577128858677432315128747331723541343237766315543645586126215458258273831327547513737448231343258244216735348186161772751485777662142381532537212878665772358673556686415566156244227465266735181425766488685315484281426281615447882331315413158447278868585847686536224764736676465158878268818367676234317562375581555478841743327131237572481148784418483147455855677513642753433568475776282657233673827668113856511145432617282456417772753644182763425683217323522415342275652535467113821717761862513621853665313771662723685673518437283438121117173824871425445475714126628436811212381388743442627181467227768785674714484787656236751668545182568611156183865347123781611116238786862267432865447484534232522417754877477542783642655745656716648723367122367537361745317155471332257836254664511352782364763785877772413531887624864786274451638516624177743572665625438542574242564847378316561142352316265645788858486324641755676777281625865552486785358485551344164786451615453242337366581224676163468431675855158583812831318772278188654226432147848132738666472152126128638831724383576118757833633414166838877817323533514167146356651124562433835285525178488171456554127832735141567733362351483625734373566647481874327218828852111435788123533576675183854546357162516425777616464861833486737534653414848428755828813227587117273481845754436827575464383184478734885242575344767115411466724464453146352486438331576524865368724734451356618618356175562768641728832847315265217525138875746578278443263357835673853752313132555288172116761135322683584766578767662878335438846173438572841727252128153553256834844782143721216325876843334677262627583762853352751245444823386237176451522547683714815466383125783235757118747784775487634183542552716624218157143348178447463635726247665237647762636641487451887528175365248823783527563314164425381586127178834746318516173232732577285853523616834882261488637456365837858728513658875581251865568723514456473456344563375473631672538142358314815152156664634352572253388888186688515742212344252847334233748568275661551352637532155434427332726144116782665434388438537437378174252742624733823433473285123677784845673222511453762186365383171261325637555517844624346566741534655278531257547178174736172244666375818684445851755718526417564268421888181375437827431771584671528377274822452813756411256535354382776267178376527868185424846145723436815431253146512123214877235245836246723134372553541815377882251864346225551473434424528328214257383624846675877436588486117481388236322145244654368774585842136548347213634785783742311462241882586827251336823257144757872147357558344174333625131525361242167584225378723775374315513627781225337766724683327424864883448231754217578828846445847117817521563673117118581345485356624473218264564131186176336858221637827542165168274858647833722542444864232345833384735628676432643648733837526516688237682442363534523775217825374767333547431681248587274545161226656667411241362376655128673665111667265388823141776884723256666314722316818221358554116123755283231352643631722376754155417633855652733752484638164571771541782466226252417541454762548661311523842227125868524182253278271837888771683271632247821817786486853731868243824734686686235552246236284777778358686832652816188418787246634356883575717117464874761654827151625671322187582881163118287118661247236116765622687167577357372113586354511768817612331132531736673168438116157535625438242381658156515525872442864213187836858855222641847748535853823713277631358181181834484156158186464847668647653426763347153568365351223657571522718113575542434561648622138172338741784328457825646315477483283747534155566465618436835461466641263275433776356356621724521252868853553837351855626385757543736332357647564538767214645188448748134414237342784511865242782762335643232653442863536752836761111345638582743188153637437762742862585144885214268513152435678473683264354771855815871231788413673665162125722368866646482833361334741623364117155481785158355178531587585612474621666262716111624341268431354423241766623421273224212715531877353336617818174113483574784482377627374242751726256422461821148476812485337328132461526617678286554653876427877234273541865854526652121358724536121135238624645127378122814464742825488831412613112111261324685744454856653731741817684423577633247544761758811661431672836616122542888672533568323346331617176236285751571716445348633781214784564746465425766361343278816342767828556167351844677863558384141832574257653414562335281285588383226633264475833726843132372377218838743351521753254426642465855845586788552314525537363126612863272837583381642362288166637582718663428757488436612578357664754526468421868817235473165523867125668371364831753167465874741317744467565558611616541718251271835178885252688751512557264257821425375516466327165722617728521321827475728121836515346725673725514422551462252578224586631178236247384116833177565872354128813633133238828887342811683764762684117877878735356424284471523683281645418152274886323426168218184158366262486546765173781717317474426683818658136242586344232871877657647278273564621424784682651135555173867835164125265532757436851557525475873381574233178728274216654383587777842435638317786223588888844638283385538556116635144643237517527524277634134673744327387755674146524354354487473711311173357632441776773377136163784563714663577653821248627425455718658283251173374165616244771831716475617673676251621142581588546875252686534318157758815624645343524451113414118542147521655255514658621641717453534483164358766347371844785537542657862486143644562633712332756822724521234217522484632565751122351423432852474631763136567278462223134335244264851324546455168376381678384422723812866368543447263242742341137488352885441745238428684425287614336585746777111822847851575126248788148687284353216873686358863851454483818481612166135737325366322427327327455362563615536161667511342741646768185363523276824772573766881274253456417783475521378522262186172227754513547251787428516413271488762212253148634436186443422431814214381581253363542883382114712228627446528552726613683763341237168724135587748226573421455535433174477613186124448772813155355553667188315677737673733737331876851758651328718246528888413457753735461568246661478165675537473653865882523275884452128248876828713463634828214551427143817368856284533674382653485886754541516832344573613777274461252576316816282658636875468724515734455855535367836685738772232721736427537664254834264642835674766467871754876438413774137312354862351213586316844883453741175568365882712517863357384568546751677746134754647573467722345822656436746222353126154513787366232775255847141422134271451256771634346732315427586512644631174143444727835263673348264544342613126515167374648841867887138286178786313117268231773343145652468828646526841728867882266448673674315534837576541331257882536752871113563832375477418785728284458461476675774122433478151666168162621145583682741757631486711677825821246113353318742776254287688257868575762252645421213622551263855778456243116555243425631444411857851672572814277436568571622376773816632728836471134652771527383341624763723561241313157228627548411753235142235833745527248118546382662373263426611337652323873518445374686688336831712183877335241477513278713566543442711341735743384377268525746287148161248383528516434852246823733411471416637385888154375644586847572683465851158152241421761231888235137584318812286234827142712474887724224615824514682465643477573125443724316423478535766215858352562744841253587457641427574516323564567674683245825134873811218236573157477488182361725673683675811313652462466263812578755773173764246384487272262428364828886364478724831717835134661228227515121587652683572765248332318636838555421351225487817817684337126873181226734171747384164517176671651632422578531861444761368543618342551318323125661127811735783674518345244246728486874136513442412145636112448888476771511822633533782563374343277863521377521474461674512845853428637663272388742718237822264422175527544643524452144742558661745115535886827451535516747415286453825275764378433651334275381146415673236564274248348427534684134258473715284325816828367616216223237417184235323814512372658447356167534146345543184887754357181467337488223347624718552677283841333138842356777755782558445335455368331135614256445517217441846271163173324411641866654587388614772756157284738833368627214272526482167583833525552481812338242787655161164483854753744843534623245623336465627763147218263511525246276738157444728311826376415528817546521364722412411734235654654178511584575776683646256378615781341181525683128383665464412571384481122357658385553265266382431536545471215234656644351861111724545183768488535355357414272264387764652566228312847777266451471357671446267768151734322133761862411452144521236276625485678735663375578817672385637363417341524842266624582488862455415236884156833614634863766568128388655251743161243388362835516413177583244257342562255125676174472817832454244166383465183412726516186812383388184341811847785113728218887384283633784545871582571416362781211278224638737857213258455685783416438853443884375356818275354514324865776165564718256665267634726213482165683668452174511144522213148855482364818174515616654842856548744841447126446677311764866336767353164462776451852618783282737334232644823234881631526535675217687452511881478123141711137655584346264223237731744882164481621641127416488273833128285615336167166577223217162461348565715217572341638116513645641317457165834725744324865246777418352627366445881427825216554412133265518343518252121381645753855238388881852743142142623384671761768335327212563347428428744581544266665285318511422458811351164587864548776417448242213747855372144287235563326837225411853277352447322568761231642348114128722652454217274716877622328377368282316734543684147725614543465154884336687636632578226651554251615738567846326142654478112526244735642143445258431535243464788332716677822214656465588883462852287565134245566824478168162764854727326717834626131616511486783831638411254333883653371326612865637644621753623878876175752627287863112274252521125483835784613566476382613834683212264641611137342677445747874884616742728883486334165526874361442233122176873315313832238633646536434317686873521464383235565888232532187376614422447732874534414366535161687245178437333785216248853225885665231778623857244457441333528773462121158124437871475577548234437311125827166532568787628337442262868237831353521586128543453541434357227253564381153824858371823435744638553672756628262718782714485727341325452738626783448671725164568582214887568324565314343548163122718788542241366784885246653125865752776856183447537142324623265457582767266471881664516665658385625762674888688732382635782777855413367433312872276148685774245755778582783742566336316741764421584523668614566281726262355456423541577447784561358873268312121834172833473541533236514132218813812762268128743135485788578565763558633342383286785162538243721772422756872317846224374357616385246438686824675166184487827327433232661428587151766875734662122415563624541855638316571616727155563511635331581481757724215677245255387487444254246687175443234656845781245627642367745171111535736865185527487382146552367872451754461183788335588222144743658442744743783332772474675166412842636276456475651567833516716611863287513846473336228141727458543437274248883875584214843787618552146551116414551676272557177818773435213413535511824246842413371471616817166536685778541771677726573844342161611384848826685243757743877142722512865754281611656517785316457615412654274821186646586723235856213448534822621152367526838582718223772744162764516367137543481313346536534767738562432755184282133445715842722474674458135225834348425821768616134476146538727312751423165136318454725577466887244843728428121663745311126422285286448187151733777315373534442136472451836826384785178412856626464566551852557613212243114466113231856148815635123837814342158172266747435818271141882135317712625168873568147227377177377265187512568823884325211628426388888451377866726254542518121751725727455318682824334552164228886538872573512481711823238527213826522475686543378472681423238582724158385648174177754855878885177258658221727273568832525215671162737628687263531138382567213728188432467775215774461636247286112142757613783847484427247657834215457727267252812421714365165255751548452767634536526521786322584317823257836141718421511712637264856863332136773675713574423711352855257437716275422641678168655857533145523736868211777741626377182385517887551262748621482788388484622271883178254783788667384811148266823232726256213748375633437322123143274866286467182334467768136347655623388615472622227514225548324573872753112841123774165526125574432624672865177833185617126541874752821274743242522273651824178532723547872213124288254223431383435445241131848168872264416213452516282284755767333418426736172818627714858283836337775468243144823663638414617311675338841355613846825456884384233666327458671144313855624253665518341653527623758622243664587227648724745563425476612544611423884742885148451868386151531343248588477588585257287418538623543262221675585722586147166548464772153636256685525236683324351444546426787547181328545876873623234572262875455453117262768737711265448647351465462788142174452547288121426453661555455233375511128181213725778744146538554224723688428362546486757271746227216246185182813552317123286475366671186562463625425874261517114673478615548871438627114252563116852483145143745374282266123184755614678241172328414681311315446876142135644773733282888625261838331513773232561555452323716568218238117436343388511638671144855537547876677674234367842125277641182586834782872428721182311131711156626663551768427483324834174776228452627582483343632614618757545176357714624124844124282174487166418246318371765864451364714677324818536444227422737564152275874462822635756685745318361458646758852175567834275712648745326682643552715565583171312356584251825271157565135148246363682114753377158576775155148743612578132336712668844521621665643557562364145367868372131286436683516343753846434468542557882336377878732735578673286128817617116562424514727745745247145573473648752817386247772186766184388638374163518283677754237817134556552158316286251646136726376648164371777566743814223765281434337732418723514584673855245277377127338827867384352324737423827431233784577316418537127538522331153383446843373216677482128252824123854528843331518145826542611712284225121113234644386146887865242564245252235315645116486888464536527248133251731182441136134254525385287574333413553362842127465165572211534465481634584785248745161377182445671323448737122113325418228831288387383275684564482883872574558248865254478735842741715828374158553245573233477667414816712316868273617621667482832488678568833426757536283623713623556561223262726631356224262543464777511523664437128622735856863442217756233333145173866268755161256638327652135384687111846258735518416873145665711216352663653261671467673826154641466331362648617722386347618174287587234467415756653376654638658565374381237373114343675147178533137256846774672125154534113663845662455143267171653666776611164516743123811715536864317178185125756255252743163655286155524232417784366556453335812576148238136815812334838868531477152642554225416348613316238764341212333724155446376363642535656664566848451682388583526651822555123414318175262736675421213167638866467132358112475186117412841547841324526423256766563871735775376468521233245782415461543287623438147232142387237752415422361273754636746646456842143372474582476516382622367868743132776215121461166787132888468733627314715518373862442681246126477867325576515557413562272484217885436882327534164876185142463738167434535147441548328521726668563413733136447288286748727284727738178473786524583247736222384277655681865384621144476117334443228345148678651621268445848478357853464882734483575131621234761353256643485842258738467581134768772426663826718648386112275627314415777141421154171382576758348351744325366138536533472133524251744863575778738252466341312626667752778354214126833637324283538172258755275354853383635811261768152837523725811816245636441537433333652883474271554187433482782284256426332428462851384348488617781182635466471245375315325843477587422565364187623823251425368277136784487416344236428261684673272867163423714824336258785363252114762123153455778251111686827728253365567573737353434484752641226558686512774626658115277447131786662173762383535236321132835175347516588675617328516328571244475816252721456854475224763457812453767156658454862151534841346552738282867768836742782376326643722442618473435125885181677143332575743351284352828427155561461624765251775817261117771144751728262477462638555323262742327366883237542624346865373166385782147136772128554741448653147684888687476254266552382836232656226643576763371615742644434281877322531824212868121372484721574315525226584587588384443481147568781318647787514231361528381247683484357744654676311438157143578737831424741374615724626531488477762828464282358411763426243176854653655745867817652852375683155486438111266624275472578115126223565535523884828526472353524346588728177846444883687533752855372854567353666753282842887783327273236162185461388241418875873662681366563271715436577233637854733866384572633873586111838612275268855828852748268736531416584767323525476662374737272778444882381648886523426888616582433582321452346868811686647183316532464268318166557634354661857372437525252228772214341664466384414862173355744832125788715432543586714111651628722867757187822271737835661382371547883768552346178578115145878618465442153856565171882563667347354785667153415124771516771511115252628274132681767738223841846262111875187864522251648133634447347316573431887611475348327323144541814324864742775471867718611765763885472432576282777567548323565821168878736525611254877525448142124622513824254266532144385888617775112854465558872156253643271854535737735476362277553833751856466528383447742165482674666737265776475486247141681534657312134572886232425321845654221852731255144424665256357423815667541252732774247663155814364541885617752138224886863554641161856134578688377377165387368145782581848577265811414614416176556413564428886286213661676174711142118546113738451474227723363377554165476758461578587471716142563838247734377485155711541852674837853782736343727165721513761864338365258748282517748416741734766464875568558675451171455587842687676312253721434512643753357283157447263552365622443488634248122836651713838266872326261342858213747524874767365154732455627238573845412857671885448282424244787278481272821615321818741232211685634347516674365832716571317167516647218733737421561188635538158671211641633432258255787127824558668341424336558242622274776718766417516541862845224413547837824332777548242316834145316661567651448358871271743244444126663515656253726735868858364475228268785426457247335781737242453346375534848721541781873364218213747162252714854834187174415826867771563743745315411218618817212571646887767367518525456117534753424763528453263732344625174551552845857588776168861382711332377247714254238512217237475428324745685171261622832452888517118171628723811872134871165683484468431123468434217685458687133461371378276885315152284253526838627752346885223787677258227771413274127677866342171556264822153447716341737158337371167455367368621424284811511848812327822748627321436884844687375576374228256558682377642717336775128547228744713612445226111384463184713656734252366554325852164464711176765852185421513785612117285254517283117516366613261142451176186513421832564345638684541514824363624427244665714434784425666211143471712837275637764225783568361274831284618242625147573515538554656665233646524185453763176112466641824285443822464741228521633187771285446418645786777536268548837524235865416173332771564475174833125677738586588374431545653213125271163588848876886611272153464558635682675544848561385412714861783152326746812534654261822414453468287848618462884812113721353661276147878472641247125186728155241545883542676466268765154168343464861821648476718646758222756758253714877523268784575114376662653544832481476356474652281423657118268414428752586552747481625286114112253114254776126853582221517867774774266351833375645767537381238214382827676125551636576872185622152824653152676656161438515666848247363275118642357457127551852732328514722775877484282616488547461382373467636562852283538444382172225233612358522411354368614522311874241143855763788886463781637725717822877251411881214588362114485253341735766533253377212473422547838872234577763681527726668888473846168224862737855317871831745731433122517378244662268228863445255566737363243376481123871332847554334656542868625727775425615132255677112717746475723262382814286321122388748244315323428618774126237134668551871577528456135217786386751375341177831843522733672117651655851857747517738118847745666442844111582317251728423216434775646126762818684466324612825188351532318215144277576827275372377132238148628784643412788434332132825735463828471482277181521481353713815317825122748624433468264442617815716415586257212525233363414815585783423285875783425448657745381546887263331421738333114788385351845423416455334237235621211412412121852567757342752388171122858226822145582375157253251733535424713174313186663177164247217338616672167877614678186227685434165438683551872418128647217626231473128331437248852483361643135161132865565456157816284365267741854716161576882658147262645138274322628644438315228682756438124446365841351382778654811314826436664355182176865417857185276471753357764672337877371741434263755147882855257116541682334422483664531635757628841118718351216444587636823655358426814835823336672245813778371878378331832334518771161325823811715447217332477836131263654622362722633232446331844637164433658427678812713545616178843885727568314262153323678857617867126463414482267265443445713658152618625732158466627127267513225356737172873588857626413851868564824482286552554876534588583516515645861223437583243213237278546211364453683222516724716631352833655762217288411652743473264436378856643552253787668673881334662664317221432462844713753755338282272614743551444875261446648524743123454778731828432243814563126835337776436427137752713226485775175533362571441232418471786365748482378244847867265174753186542346473463767354247615181116736521865212554851162712117274433755842138852356134224422216628114285466357581213331638551283758875233738375462415537551271223221731173626231436551113286718731711768747526536382157447788667455118673132764188375171868483317428344357481511234443185142143871425821331376181511421675885274383471574228875545656635884123118126242553422872513343582118126828343468466562382383543653625814834241777582337257578721242348733754812422642264822484577473323315685816738645213158167515546837414661434388461575472318468853361434536836871587743834471442764717351624177147827862326861744385177751755368731624816318141468644478262665257826464761765712473781764612233632835323488866711758816164756225178621538433771856816323388877556525278287245336677366413862726145661555348568244641477644423774156162362828811871675428526715717561466668325811175276137478665488586328742118113532815758323538477771632812473742888164663126532416145215443424373256334683353568264684815347733154486553755612685735332853416377734276132618567151551425653351233341154371237641462414745171174414215231224685347585831548343354732122114261315221724734456777827681861184131313174533678334173842518664173774178283557156261422373711375353662672614118725534768155741375628554621682661324486868554657888744773852725724831334285221618554617613772124176116175664634656736656512711824274888155588634313148461347315731726487147572618673585321627351347684455323443117837531387174778344686234448416818653458267625246366856166516267241146861382623316612367125412223786253283152353838736615245424314826816318212464144474887587637786487785613428831177547154723313142521657811561574487714256273484613445235888814441781275584448875226641835583584573361521532428712442112232581825852811664873721655833156362824518466543136178142334616818712323861572541358251351482182677866853672736857444276235112775632334353135688513527817517653386585622881266186125513331786185311863653746442728861253348517645782754737448381383878863824454844138171824721518816513552656157522238787366826764235176343625533346885428161457737145776714357688877276174885478274457638225871575113678667315831462832724872636244273226517716721111252528588811384376837327165166657881518586586124374212518873548117157664384665611272148886257125431887486731111177278667151862472167574856826831428383767751658733271542334874133637815456528112386151371448527471347474235683832287873887448857177585814244234424718267878574352612257473582888176554443381685523447855712561537381414441276418641585762885625222262663486136667633771146218732814742177752227587862645363345116272456342124578873247671172352671585276155214212273828686787855572788255673751878132811276133351246722386363336381271865548741552734733456485225214887543116222411474488138657747843757137626557663113813535828478765577128762337688655176565114171214125663412867714172738316365486855522433336276382434132658817254663526416234554663766118555441567536376856162144481657521734882444137484181782211862481443537638718347614481571274471284443376823853424728874567666376437636188374322764427742628147476326872778827752783647475351785234432671332714853334648364124534543771511377773762246771372412765723761515374657543226215123258331374134538884345536345516722425221624776663714836336857216458662613741564722722555847657463186763217852113354218684235843312685173545655857168115234738631586664878424676484485517656528365538137566611358655873647416113653535148425451486674618526873345367543581712821375653271578761314758674754125744876812855412548872458842313574672333234674885543685276876835411613573856125561686824578278425153112166678812632331477365274588766164737385258478183838124563248512572471616622221411177514485146282486464785516624333251588763288185618287645177527533551246222737388264616814733246268381512482381875425113246467785474442656775571672348333641431868178815681824553757671642784457155826273241615541875651735841743114428313143657455681661764825875884822226258554223857632788374873164253468431723777342127826461367788746376434773374173844272374764614148378734622731185121828482433533562222583763533641482886241161484315451414753684434334124672681686383141183452765384355781551538338388487641537126241688742562461111111741881452776725466523741516514357324356211873285444784845263665283685876142861225661223348616732258727422575563748821251777161343234534758826351727581678482376565638175173615387244277734623441621537786727454245533462748644415434324886488418838846681635162315613288417825515466185768842263448425336887245787467645245452362311541288621856763634728321227155728716344431116245524526387611248821521864544855276514234184225777731783824116585755377754843421861525817815535721355637722264851813251122274425212641433315656524446418233665876621731626853615728468388333476155717566333584246678375367226888448883585852135361314732324813726423642334586734724314545513855386657552817641638751771136482122454318165831668645338143787156772818475635612532735335371254812782346511646566718848567353614771671317872634812765488222242536355373141813182244484875111338154348524221576417817313413142613217751778813311281681582773541831416182648141136785842688624676724283854727782566637864836364643122124586152765217611154656727138347654828763453821835162741554274826375858214256355533367473487555884456163458751414316245255611316322825332213323324114528756576714116545433762763734852546352643118441173136363526123863685728631374448457172814365258285637367112416117573763261473162532868666873244113346368174472384587221774785365256484417816635251563327686378565812422822573767885823653156673274486275411373248417631636311375784218421155468321753774471325764155887683216745776764823511187253728285276866125663722772757371353348756211722444636511755373375618652163151765847585331826854585236331583638231655378167664171683132251474417243741344217523642551736844452763747572183422655527687852156341624178345256338671426713128323152566167583885851652341512512523436134558747418565416464374183415275532223153178271833337436677865584425622176115654147471225523678271752665833217563327281423386375332154454664287486375827224817217823425778887717185684222263153541882146883474344528587625186842686867367622726267774656733426383151474223484176565137411623158824168282487815338518346477478442447463263638853863714157863516652254572554545713743845612557383125444386447877832873154771611527233352865351224812324712433181574715163285376374276623566442518556753648846371618131474684845566353284277513678553387337728146667687115556782427743376634637814761246783248181842868543672463625648375318877168255776744157821251658356745328332578251326875586638524815447837185177771168324657571666377162776154843125647713232314632418257861454333763344464254674531525118112242587538832144572532643823431622431878443653677831612163113244376172876743271161742617125388384682876642666334465215614281638217863646568268273783134118178861456637141157872337681662376343445724238382666786635463316631545224683383436775415152147612465654121118152741877553354284147313375483167847544355257647122848346473771245715738454325686887473281465261611871785874254813657837642164635481445614225623657527182257337847547227241668632154751146875436281863473221174385362342538268544512825247825841547372532225176217188571142335486774144853536727623342352445671468448512835624173467268424552555116167221452755113421427471336816321112246178558517321237267728252862753252216744662784666438422215471662478763331175243855566784383836274167457435158152317153273172661273674487163674715377586582767752721866664612288473242517674226367152785765642581571637265644871553682845418335873123736161465221546431841841447428487154262788511748814685318121656233616475813854815142668341413735656412668164234647712446544483168465342714827352748143314653135833133323715211351225252524476146848237574784435227438357656161622345163417527248658674451123785886151162831625376244386168315561875143833864283727813615243461434637187351766627418431621154167237616117245723234764446228635415766176881542862847448661631831574283488213155256662337167157715374234241256663445538342747584273316687413276427832545426273652188328265271787652565214827254128147534748734561426184472867448311753317876413152621638833746347421721214842343175255758181434735477214687488753175656225365317853373711235212228642434656784651575833655736144675488824281632486858324784265284748681221783112416314452767487468438211256237865685711883718245155532454136531688846836876787168533464847361336832674873237842552515158853673142266352275648865222634378224527482137323786473563785831752361711123422661475447677871852758716715737882618721678446288172832278732282858841515528238614783172634813615661737875855786872251428471442174624427611361855271878736867646817321272274878454222712455888575177282871464171588465272767383811386551657232872785314257584842671842164477643572228315164227373147344458231488367387461478873376162217736842748565113657555844357548838328514231737661532176228144516538255567321784716675164837488617524277168745232451666138864445364743248281471586558762428838462816737424552361833775134587211367646467888624463622222641131237888312651637135287376517321183758378555584166673121442241341235164121248556875254884727713433115273787428774368358716347387564152247556435757464412726543116478458224856111856154235461436642677518162763764146457861523387525373878126381564316661637664476774167641176684172457182855411147122885658435414515424321557523131726152185312753364785547388268357163848168244541586751577214116463753631552666433177233623281446778252876151488666287438415455284171267561675353138772333867554852647212238451734718612885411766116434527268852188858625333371641181422785756756328377472675741518556443188764263761518476836847564824284147255482558154424727532624741224645382123688231578443562643345415615773248132871771714175378426173337258132821658648714348856332325141848211876417177278174766688268861842118446225131884132481826771862737362151333388718518317675642475328285225224784652672146372578617336518131515667712163716525283173434343888233621786737378764763223516463453725761223847585678516824361316654712784285615263683485772528272668547533284677157153542413182734745517524847341755166276273865441866425861462444151648134831562234562238262176547328782284816771244453141355568487176263568847662174444268686643412838752756521484488823543873284147838711253367327365536774214327161657771666565813522261357478253825384357115362231127753582276548165212578615538536422647566376884462531181621574822256611317584112221231887126127818361352727284326418165837615115118745884313711152634237558731137878167478421532655274686648458246121564426175322415542216622533815851167673861272442553834254242714471355528687432664654645756114143274416436778623247273767238541734375577263711182521856466881874468684211157837188172488177143255624112727612571275424888764671328638876454262888537627661637636365233568883242711633156136568213785748414628715838884564837424763824852334871461331484543385768761853155244877172686121451686348182366886172751826588611476111616844513817278347567448256854632483743641225218866687313665635844285266247658456183573846526272311873517141172456325616127612582571417862546773221646826776645851666454327653561512113647312514331646174516463434334557455376616731285346853863183128554252778132212633488655655164526132871783661844341783457632174354547384361462456245442371448474515135452265411632363161271625645348752644845124747124682462132636277153446614155836465322473645833735675146228612317545474715818358586167475346447868123454655556113428263767268666535872824238846285618155543215428874275288244533261163386514143641135641332754672454674114275241828551381536615417556833142563335872876181766167733285567381374468247824516364724731153443541685628166434631273253738271414273312875578157246138412136147452458644712614285567428327172584441164452383777834743671548467718513618744772375758183217641282128471851418346478457438781821782615367468388647643475135133617548132577467417268174647722258618273336244552437443814476562138854374815161273676576122337212113282557632728147412268168878656165287661717423238813828517571244463746887735618611167638143237562553222552783451136888411774341283461383273525537824565611114738643542756777387785248311377451884245182368757534757775478222821115572677364784278625364853141247463541136113581253646747143734541581561871286328384534485375418255222816135437333455785183648655346534213416245272637847827848474684161412285411544347635571524584611758537838878374723161273318636567432221725723264147232258232575327126284733728334626548123867411827614276468152283553432735273842712221834748528572424663787242332541284544266721553686172786675486523546633122277123421566835152711135485763871482431247717123251238365852221825764578136814721513511152341148582151661321468486447123827528435617474173226735466747245684314744578656575337562256546273224667283128374576834215566355274616225587274532831322575361585835644868477717612484528253768367513186812788328555677388546171846315513752681326785372246552523213561723648472136355246418321522535376642585464266447184176684857445716833268353886713267547118443834684562586556833221532312243513642284821365855843686737627848228188252287781151431171518113812867544664218815145238741647115757623258566537738312383136787374255531284514356157874276835661682815871137434738383617861587363558127282612285621152755574312264273662533628877174238674775662155328338216285151171628263635542748663351176343357428813876586372825351125648142758421614334632531132734165666722424171571858763572722887452283144158764836573737626715522482612776451823261524375833284314441387132683116768354426643763876825475655535328745356687875831332476118263754445832317652355848783561577531874237134711183586263188214557552675574534334558863752463787551435848113533558223517642132553556156124174311328568121223364671882464767215834752358471363747517442538121561852677682325361227633772378186152886325225752731383241375372146733234446838278315328824552323663855117761357254676375681588454728126761716387625128555364828467161416554758637881855153552257831667374468888787741143867741243366264317817753316817275128641167344432328665886354262343313171422554756724878524132762763277735877134762861583653741677162452116828876231378245486165747683851551217531625586743551611545532553571133662832572834561624836158183283238328276176413461854221788214487488317113623565626148228645242881887455686541123736415875281456153857486247821268571144461266777661578861458576132745242858344671748716453466278351835731352681461127663615383885148287321451214225852878575564145554176213723241616581247682255422836513484415545814878444631368152473688248661856325851388176188383353746474465264356356864361255452436261277482836638835157631343585868656114266586486668243366583741313174117567223541564786223256754263341187725771736262558862557731655765213787447155876564715548322887475452385167236574531274725872488142767432324577642621218466315876238568662235856735722337655858533481463342517271638732387778718127761152313177751713838477864846628485623582343433383381684247576535683828144443378627654738577236413664678774122141572655524114641117242128417312828275613678253822632434144732681327455783667656771131241481551578131665813474733415136245882126576344814228683811221514288162728151547636383253245385671677428132743676113424448534113736575275466414621128551124581464732121537877156257164773282315658851571377778552438423618536162834678473361383485844874734232884433862365181318551857117527617226114832436533288255665173754535316411541861278252334582774846537767588575661256155415663153473851426442668454656317431413421713552355488835112688248358317888311536746746146826417433831735356471654188668157618218512245777425287384731732668271286422561372587384667352584573283812227855771518146468314653178838222814182228283546466513766766378546642834443756418726613446772316867236361553768412173186762113366658476238572423632831374274526352881328267826378148743262278874764782478776462142526818637682765825268644367462631871851338576167251723328162815111756755763146567326548125373448535771427433145544384263462726335823655287168383738323551412142583865541853563545233558686511736788814867334374417723483148777456427824624628155717756756435377628467585866548131775222852155824432877454217266851573435541833345131872868356647713715348138153562336223655381736115318327724747131628772871663141567466858338788541228314171171784512383783472336154652258723888351258435663863275627738322312314128667282555572713576578626526538183878714468548814333282424263778646626231172642261557418783736471248523287367285317145611854682463185812627533731342822574118856852158381724164288457325376347641852871657234624338627356671125216351133815437521282884258361447141753221724265845742256751862446538541582865231411683175142855517458274872264372148353734678246658537632758844748641111567178722665148371745236762447455161512745348745888118456611223628346521245786175653517738541777428242333512276443681543115753381325447665553386262376383477467488611464528415237136653617544454125737346887462274526883644258367411312682588376744113467751756214884261326725285663121513547864361476465156362818712827743386333467175386574741437278158858677534418885554687411238182156622442872547163218148767644558827153227132717635548276621262761363551861142574115683465148885628533338441567648218243724483124677826427544127518221468417716745384143756754584216224754313183573684836628277357846138258154373352342163556473847516423138436738568633688433473314823825765217634614173582731721327571724142825146451718853645343267351354423124668315812833166484225827468362614344535687682442431123438436254557117376726126266335274274581855445761552724216541634252622374728115226815886327381426644563155832254512177718518651874138344487671737115743714335474584424534167741517652617147356365624244351282848375543427748536614287531318288284447656236671357446366816483123524168678814846481274442282218222527252653224728534147734144826145526788711252763346738231373564126785632354212285764554373248616353476628118828173587626841462264523355233625688827775166274161487773866244364825364867353661371228265756353445872148765717713471417584888231487688342537118154154871178568627287688852738332637783887424485862641332574576621281556818347832766716131477226846662357282652835272774888462133688532321273133251437583237431461373574318363584537153475275338137845473116865435712145344834736332546446181648828731464534877567427137717462134124256378764231648452382745146127281827555644628324228184365876453425747313441133155125247616148471541171482285166567773554828464587382486213328146781723815457566886783574723474633725262624131735112451417455738771384226538368778183641542222118714276445131127684534578462567114538841543525171214528565372681753446467778354164116128547477433474136515512175285786747252815841818666234183512657188725675245746713533887825771576534183566751417427477278424478732346264846654576322116647766646567384455227346164745471863646881785832228154357718327821741546335728832634635416887451445588388571243113465173773377332458157812185113856534418687287144648416526774268783841471315121142673314652165625618354144623626752651735511277648371675753172437613373643657488123657331317452882336251273882581735338356212186875512388558414557781332823227813431351275733777624353554546883316438126581544126423345758157488783681131145243852885431143857737664763547758725861214825361721557612165427486553361337825614651282184646155712645777661781363352456877563744614753625415238154866635252443461855876583613677772425631861777778167687664833467528752755511358353782254644682521486348588534231178312446822668778478138888167776363427768543521137147583411345673881737457676451331771137738384563343278614358152231731624521876826182533857868142733761883557826523675677235246188363132476765586762115828131638626836735122662425283774784863512265844156821728147386473436776668733334883662572112446678134352342561631187225433563817717343266381464431743142368651211812338627732244835231434851161737862411873167256676488784457282154715868846653487186642673268445533675661813343123346222248248363231764564755136121318223784781121766328412874373173111376766434422713651817843257257353188348752638611652223117731335682232276141572644533743583635752875268861638461721114161483845214326174715352434412574224274755764567618344174271387776714386773216176811424418545424162212855866542712521151622734812138274477788878747411342422513322811324714657333151274172813742138732877344254238713272162453332312268864485577458446651565567685862768875438842886338355412277435328714123624864283187337522135226713272243618625134764373546668426444535485467677731835341824835565688238743316258358774575837552221644677526332324762236426342231381338272511388676518347548752557681565325453431686387153615726375313742254454131758632687748564265228431536141233162838383346463842554614328138813256185186638634741827428177178384661868318262623424233741628224342344864787631168253437558171565315788844424121133343787313428556785451787316176871256684885557384446582178657445262811316532157412636835861674817685473115712523482185348376466843472773168382236416637625433187442371254273862622181723453632272466172561463535431523554727112847523738465788143162126565833233674154862257258233831357742754138585158774366358248344138812372831113852184676317342322318426316326618477543241131363451367118716264172543866565652117615573123645714834871244721177557613865345576876434258332331772338526127665831564158673873537751613172727412435816575761274168116172753611424564337574388753333612783721832885487325452486636667556845588685885673888135468215527867437466553721271658382878431887741246512772585331266154164164514638155214161584671183288666624753658848322142478274488436755746268651357562678384614623858243826583535372528255586157324847831585518144366877516268662166556572743623718114531317875777131358534462743414466256145288181235748782133334441166447556335315788375544477738886511363885276663361782336728775285338584773528753512412151117337827744323342884241182384465885756342631664731755851756351446883623553325467453655637131265861718164453818545826256868156211882784811266722411675448311682671536126613185382166212712747826135617875384484351877255141717212643246633242263861353854835423684614344557445633467468828262211567512834768118856418367372213726576466524524216757454258168347615328161188216857363758455156823524272882718265112456388415216428637883671387564311686547134443413782236362127528375841348483714671818543422343331774525132168546244764213346545374783115873713527561172373613832477475134824833688467216433636534368433782384531566183313675485583233522627661674158481654863477412654575328484515514276541588488351625847454564222338658665274216847518821437516645312345768848631256154257618348861661213217767473254341117132675352443753216121186236747616475817222154174672442254445373626724615767875111354431672771618487527762568266218628447683463367121514732445762611622251264487866633165861454382431656464461767586511267878124837853385413485715253248637535127724728366315753168488163782164723885882527714717327321556753814811458381737725656184221763754852864553236177241528136773658742617151378157467578153636168654722327325327144588585434231113251378672811664733748882462248454548576373426785741748646861573834542746277864555211232487245115456441638283324832625764248751363564646563464864286638751736428376612165462565654824861643452358621813111834488587855636837233712412463265562282657227472355585743686863286423377666524346766147426668158461685262771721567778576752726734488613552541353216752413685837444375347557281571353413738138534132362187814862656817856751718773616815466828155743388841522568536284431138634374374268887122645461714474344342736824711372553658786811385335218766826855766238678438428657775463154718883666541144656377166618871122626874317418445674576824423585756551551487113541565327766126368875636443843286821353118727214162335136321316668685815553344446641843532333111841217651654715431231244474771444555137763341554663377432766821446525813816852485624263348112612454121321523422854167368338211453422423571773678773578223711713625856771838814458776485462523754346682684351666211556284413377378648774826143362136712212116545476155253524551651336127187648856338444666227871571388787633285528531116477846162781635215284743615673177867344421254441858111147372581877777386868413465176741568774473857656144852868533827641378637674525736832287627121441567517376388447247337788667412465873462167523433346622658166868267562678211424417176823535283226563717627736777642814854573852528588338717555876277264632677716653385743657825634527181825386633838423656257737751528362817271433372326617472323344832788514257252354631548367367762147858472783116235358753288165836632541476786166583577467471664844267816542848515731666174242643138428774635576268713572113733786647383455171664454618575737215446375322536563817145868512138543271468222844242653228238118853346184873766377428742332332284188784253245571383333155775162472127244137675472664841235747152734615187822261436582222453264156575684273468177534445572865376614874888213771334668384252675425571565553732524887887813147656814541256516667767624422476227816331155416144836358416515236175677351887683652457884655345618777373168818831266536117382423416784717688358466686366285817355515182837453456635363648818382752162231146453175327548231261353526318421625584732655365842544756456185734383373227711385255612827334716313217528811116288758622151117484725637334332821763485217827766725448767357428566513783582834425836513335247764132312327422861123448771154842111246178832675654617645657717818584313383267411731552784664522272528528412748823577737714323232158172522463465631264851157372183151728666168212328372347276852354115678175113815531735558824726236555461636836271231386344436758412618668142726515542846458131641817442345284745176367818717442238861264374735143368656684447337232247346476141874521376687221113284637176647745366882637145226236515114344184322176828622213525773478764874413267858887177118374537275278381526178534418718437752368557573215513565613554486842145111428731181813231575882386282767578263237728742886453683827752678382365134627514221546545137255775818122553111282826567731553781857836142143157758273856677856658512326277451812721272416762544255353167774862223787648386226533764247683645867224674673315167815175854238722213577616146511461678245354315582521181662138633761455587174231457256884683333528635751327447153835324351673832564118712512414416135561585888142223288851762727522664484871552678658511654735554337767863628756627378144475611243186554723457686435186245623713773435823728385147324138216184432475864326835515137481177384717845211613382512272587683582868634355325212438246385232471334267383482628523446243452565368755572582468427627112844161654338754671436444766646737311176161653682731145538883345733811527278257388113235181332574765576861583223171313523313261643762168237145344342463314687358615713485786487583711737366688568226455612457274264847332111654275887257861758275366211376118434583415862816534757437233583546862267355425774856766356226466734841743885241643181723484747481553616816222353252218418572381445676443762556778668671335435276424137112236872847572572284318851133831753526378736885164262264747217774783431413668842468342635415384368573223586271377872142352551544562781728434238827778525736582847287348857862838477346726475345162555111817717416831268776316623765445233878728163186675876644127352562736477472352128576751838755668818256652884154522367161812168638642126873177141844611462375214745514382551462252583318143224667237564481413225445736346658186578113442257278731163616161845663264577364247726724751256327452775283686712351818485427716352418888164612537537533642182734844513216543766225136161246171442513774245482721478683476272286143437443188761765414742266455651668511525483246686747654456688665386414111825352645477874244176613323621778115265421367453466737225166242722885543336163878668477654145326126546566372378846752637623245544777515831164625417337268183344638558623435766163713678384525658661513442887385343371716335816464574438584124227446236536776531848472811478582413613133611164164578746574131832317261412528622746781247527628515333474615233424254267638267127641885825245257634152571266877748515764148561484766572687156516554731235757814341867244611361133162282377764368835416866661631647826652514882581738486763716566337611421878635725625882848263885723764558583645326773664351556235262324343617785241274211165354747661261287564758766354351773866644326146751345737253577633671452454254711814176788753673842683718822373133437777458784188824264763862761774538175654238122215672165728886156824481411472213777155214183485257686344343363246148238638175551175728324216532813785658623745754182674212522673852534153113587864748326267345647452564765271646132653341772115852614741858124483568568346427618745821825574531853561461718541221718467686125726231746534557266324851636117256568621173517322623165744515181654383316227636787765155463673315612617321254748276477685153881532382231315446162471341743712832666586686887515748434125885755882657873663581741744852157314783635433466786467222264475215685635244272821364143366614232757871164573635467563458126215357146754377522735377224783411115826388377218172265184274222282751578227818423311826184516332577235217588216247845522863363571381872431822383784146211546554574647742548438715318881822266632683546387811878461238877615437264487774574348355847533484884472731378443547434637246473848847236735646186531558364688841845355645878258818634558687387343545116354375263135267737233137477857271618886866488838642155454356742863758145452354838284646737262368615276783877167186227767675827555171428724382667176533362521375588612371461346651323326267266432352246274314571577516233711448245458174172586354772462642454377521288513433225314547373527533475551227531543148181888757616821146757677432486413553144462231314886434273123431653527662584572161374757766761513765682447815668714758683478238423842783541214754215775171664413654538553532824134328887664662546156813836234514835882455533683158356341538878443618814154488685386822664367378348211313352381475276821147543436124144876175783367165236671834335617213521186184411184758522822288876334111661171785842751623833587387687432418285645532613666183423257581317323557226454631186437428276326125362681416748525238666372873341544624461642363885457256341345488736873655782147381125426242642215858835511472872858511372146233738783841648834188645444657847327356257382772252233763215668587383625444333545337612687265282581858114533455857475345268647767651531671683257666387421142717361883151736727375561478274431233232514374535453676725344344466758678164536148167326846872335166635642782566234865256815117214844518455512884841153751321647743211715363252546428384383167813238726413625546857747877381242231728528557121375261665161172865126838585354352565287615421666265535271476722634854782348316684756472478766611113243476464714276531448323671457753751464544633352186677853668415786484757821226172741323678616775572537436227435517638886536772186358162471223443223678488776553275252186175121387362377725277516783863341448445872266158376184461647537573286651574241644421554677247865242527332623474735556835446283477615138811358788824613844534833413863561565242611271532881854781757212258441411485248388451541575115388243841878588185882142611827526116881185812516266847215384125325174771341517375675413118562118364753773513188357764774787565212646585722822743588674768586213464724415364447464433415434625158581538735235672272438563144525165735614887266474286121124143348738166526433647253435246311542524286728423486368573783424277886115784615554277115172384667267748125545112285116362486431344637341755162282457755852314485865786442548735177753825122252424181614568558627261568646833774371321764485436741563437231114388837675221624417254464244825145144722811663171583748231683717178237184162146716146637716154528132537814127655168413278551663576438281518145518248134178246111611431246656367877782268741157227337842524321618555662326127746338121877375446117342533734565367836825418824321124737127342737381148271243572543636215835115535311325331384125484664263444154684323426222524138285588848145274363522333255537247463356832445533782185117531825458655444255728765161247852151355287448834475153526641245427124344144884417614833356867266877117113263273141113387672518266137515727715616617646222338252535175534414644372715224426818262666825833856452533754256846561486145344631143266457543814356383167318738543756267822827111746724622212125117724573471852143685756843255333112236441546416676768234546641657777488518751587275284228881556881715356218257172267681345382657318831352246622748674467164881631583625731262422156488883483252271253413428331246775472687113282824364573216376555711146444733632725773288587341586362822352484563256146153484413735887233368486628421776632143133682112115145473485461641522771621532412123332661874824862721778843658567811734422873841222816787664687274357666535521218181746578657573165433255714434341172311876681564224438576821422235326411641416727232778577381118617348173224516385264782326887557358266248685812475535654143715387724418135383442154281582547237816136631831371443732482315688551738218212886532575781827287218883413481648468236472261855473437678124655381278426334481644874757426853278257766511828671778861662223142123411257728457412185132814325183433225854885415611274161563162172488585655283734542545652838737634681253373625646887451323366736755877373242465764376318612875632835623613721864487728386552225875453474463528637411445617871544158164226478143783584761635378742427738544254531455848662216757581144617183244755416174352586453457434313377463164677764131463675434834368616614742637786434717321723818846524517647276831812688762768424162283153741281271121164756358633852824855874188668465716243116368231626274641376221761275553755677746161585584313355132576533262655868175541547843226371181367148332241462422373384572377375286236421153262466655274118547226716517221244457183311477342731271732623634278857875688521463471558431461748311668844716548757574423255316834812586854314358717728642342682283418162262566544326887172842256264266354216561158424288883675113286782818532347276356252281716625161257122155741565787116154725882114876178348156342253524853152838474688683218831212134271583455314478415633372863273512227424651617414874863168153461287111143173721877162845756784524481485718757752325118665345414543652748724265487188835536676137854734675288617214163383151438232372645353713624682131483235755878744446636155182211811873254328361612471746855243288887711338855186231375576851271235525325327827381188253747523316767186687558345155561821478661353738218124628321447286331317314357274173225153217524726824611736251365677258245654146447778853245862546838558285686816775346337735646848752766883683442542335127253843438372867347547387282751645511554472345235581186822254388548561115788121665375533428745381826574231732755458523554215711453627111774836232184125243621455437214378442152137111324642684386624728751145815716744718148438766758642413613371525813863476828415848276146132183351517855226264657342556336445467578344554861315616868362865228547532684141168315113188753445818758537833686386864761456667867811558428388528162158281563366723768777466485883214684447464643186151484284451437867322725886213577533123235368756554383483761127446725717184866377427733111768521863428227375823422881362155873171837821445813815215832684282566335276727374675355455324621563265671133737315788111233361337642886181843761126573616531643264368835618643622171446611461377472472842513844122723453286232668764165826277685537773788472254742314784127444187775752651573163864141128863478236418672436311686157168853861873381737837367334531324876873837766816311286136246747212785788542883231241528234728311251745651828838124142855114814626382733512281163266438586857128755618626736813725265225882711452672644824565537241363737677621747673172245657463416456374742786635583324878333541873522853742575685136122124167233441216572435815167446528523112426446285135282765378636555565666126416566185838156536353715442721556721488678675144648536746875641822141515571672216766141418838132785653712845253415176723626676546712278844226463141323682421144321585288567774244276242473457485225682327183226514228453465761488557758358236784376778282468527141875867587866362556436373282682451816352248443317127315632467613313615876531836635565785612443478455844313155435552717475381534278741767244774446237665255875318341137852816141733586773161216212212666524237316335821777517335226478738252648872248387227647238546576117233236857883364235528471787515388617161455783363834543538378578425833164551544744358217113162574233136553324687178511416411634647857674512837415336144475445778572315433375133636881438561128643843273472671113668427132244627862846384458428456185718178456811115414516427164431821435471732828456516228623135787541245835776732478751638117276147738827416241474131113663582883645236144767563866143421438335568688414477384382813314824847281768675781671721566765856422737712445185223385858645732538422868118325787224378858418238261123684322712271575266776418373454484725652571325782448275721233367621883727848125231747136718746615652643486115587548153711484762317467774184651274286143273565753216145454586614621185321543728116361723843578658757856521858438266825816234715646243811666525283844132622782836347534362523247483566447274146472212637786671586724224542146681411344678157773535846112813242358343378374638172536833281414345266214188262776116386675686621817684774462345842667813562211817337712847673746161562824612753385643837612186463426314444681526272175855721457465663267246355634747381572376631316374115581154248138153242511317185215325187527127623614722552322547237346757636517534826262864735318118775348855417765258456588621536264615382718376817811538282822548125542482321627265237224176237715131375577316634744333731221852464257763253836877326286318482244536113138478666165784572127347461142141657522834471548357147872153857823442282611722356667563447631188138358285837151384256452821838543434114316761718322833235885745785866883671431158222281771164321713213246278751433352441114235275266171755321454441341357367743168463228756563663487583831772187635146577312367617426778564643113313862468585453712561274527538756221136886513581614432758322784426238885342361112441286274164573782442562768465216385623286324588414537514142667367536525243518521673488511437862674143357674546362222247372764823126318776211537655441365418866235536414281854385848563724676361824255345336656321877326372177238323746875422123717338834148528541485188681582548368833113855571538745664481654357321532586145767317772837651752574613457268316746382251123158324344356731662125445561337634232623728582366467618233865488577426788327245777358348212627366228865466351745637338745127824683256688834115347637522238872122136656355733357287858738484565364611846528822441282242672187631657753122114724531414672752272357213122878361484432515742565762242223427325151464521255878562346268217118321324445227326331135752448846748547872284183422435676587273833787553478557561471545352766158115736141885728556326513686453168228583683841766454225251756128647586822713885312628845176458821776447335585225854855153458457212445345881178364738812357761371482626373856784344845237684428558417133827614617217387724265877437386286654184522126586873467821417286758738377255814518425373121788242735751265633741683871858637623885147222485748774778444324276232745527754114553136172263587817257421763863438687465271548886718351343338637214112385356826357278768218732358625555246747561857542522452373225476182746351325166837734138452568365445747761147646236381282158175386571424427858567857176288764154627458467151874761267554517511832443481882858436421843183453426352652326513423224777284415744275342148711748131218524634375384885711656737311127647121248445544125786236834645516328118624267546785415718373514313211262288144681831277122132257448223443124253253832448628545475164417376662683556687361374428625123557324453415244877665674545724771618124164548114777146467651247215177581615326655265763235251637345751732451273315843835547372675258842253747278648848281628756178843735218186552225212271726531184473554534376168376464253762562176137551545253647152473338573756156863636327253858153486124186462228487725637588472477148344881763612248511338344482216287683461626512258273766226114684221254785542456845223542843477461175532685887683772242833241143657322546746362251331221412226558186212842348254756865665476713617385576471382376141566272562438837153681436561831154433341553443827287382554356332732266822734235122812653188787672567226115425636576648157614237374666333875124662116168538848746821323517228553463271181582472744765733612237572455155175828214251741712834448274786365434424436571656426561585832365774235348114631443116722125228417786432288567613578862138351381676488315262688637522334336453237756474862747611237867181416776562776344225553675547344485733256412745327461617827721865118432742122321637784356287282788417582451678622287334644523353783628521685636416348611128424312478812167281847347824886885135241731183723414235636285745125638318867358386476845255416577246634532123128454217731867535126656775584865726737617412832233568246413751312172523361231353666252587874871688812714527558586828648534582536577368777614353612575235542764183836415345337518436645216444751723561251374711644117385831173144181762511682723734321721525718768823264738167356448231248785763322617682555151765675416355587531682556472885672826154381721678448262816765881252526852684662663288846581771752614878247272145335826545631376424517183521422821213744167183414535435653482254372335632217455867117643648765818233662573184572488728254742437146374217517132747726613786516467712738645118383232568758215713281438414162862852618681217758774537534538785571752686427288746886448813442116188837668155118485138886332238517116431445515242655341141728631246786781157643514648611488433143583278881724762316874573422335675568464223687527873331273473647865777111441218886321344352636121568171225233132621452757172481527435246428637561663557456262274833423765615258386242684312288288517575222417316527786884668685325261347588878347173472748475173561362226675326734248124648346513381278724145625748717772615433358166527838557648221687767167164167436238745668686656511174782885337826817175541376634433772867416888355251371428287531575642488758671863882148828748583167863857483578445558527262671164757728657573227641368156285187144735757375314245868745234631432471636552772865428213625645455558633144228863285612131214446862845216385372662247112137233736672767514132385178776645558512266154714264211364853624238271814618156144532567161838823837687655337133253368742782683652421886585115181484867257386258462567727385714544847458758372228462821441681754727561543271188616767868848122281656777662777645132488458822732713147415353223683532543215348125185813135154473643553863187665772472455551818738254112427775163367463638785378354465514153568553811863522125612757164476613327525278237148561442255361841738457846558351276828784381472132163437243775463722682711544327572731525553185177324114127351115757878445322835327634246638346782671372578643362744835588288747112711555588476667157374253246844275846553512834416244566841215631781226544634265751713487578658485527837187471656387314763414351567832732545666366617171127428573345424345462268748254826468373526735338763871531223574322716165427147521575388317665256815672238684122275725425278482752321214261572466855586771338512743463746515447714321687687345575737773214344225527274653554618358114424458576788226387344771416476586112868318332867488547657863422133275726445318228178815412644513732171324822784417168515346417656765784153813824726344878325142434571656844236375528176564278188544325676216485853827375458167171112635455682253225148255258723431564775455377361461456648321662677666377462317852167313232154288663887715843734111541731636246711216156257247517668422285861257845511885615566181813227462154757115754832547824511573326233577154531631845416553678872581455231651438481531373351217834666358185135674646732654741341627411428683256531811276237352831641472442633376177253472267168113757658472726485821725148823428462836775634474632724835476634632524268448853326265357716445875647735466452754272664251552221482274771436368744521645462641488513852751284147466531733667616237583368174457314824617834712122741744348785382741222572622531621451553448567413581457581343861613738133886317667468227828725876338238288436884317321772661355547232217651456486278863631732384116887661415122741333613646572858318245273485666366636867585486434318587413166353833386226352782232747587562217561465276473623712686525462582415122645481622513777411646813714376446652674542486316367657115433644178244668524344642424824524555854877425143267618552841163525221575183267271151113866871842421237643631455226887252541611742722353335336455245661832552313585486621323565251634423548678515751528527571186738366382268781165627638473583276761588672651334815365874241235513552181363165522728314787576184346336851236478622357614158738361883378362176658471316428462357323657285154385841662478326522824376762137567752725524553764165261553666573835764333457332415688645627433433518518814445573757788167562861738788741882128162556454216864147884545331418265831633621426837487442572688515715467741752242851352521381217457812546277283354181213847835671246382671586482582668551323546651356284711458614542287288251826628888178282738373468888514652188188863573435351367853771756863837514868713415212854833174472635452817574832447514614872425258461532188548371212677143752376371143247253187178743423688883381484315272277855546555821421628728358746552427168484843172153135826562884735381338423737833813461786175465654674386335185176384478757151586662156678855553381385336633452725826262236473468414517377224182351864256584532443568456865342463546658377737868882786272475238243725713376741345585374172362373361812838274825531137243468267212253313831127332344735248765672767168137146541642825118873522455732435316851682874481455766513683835226872657746753867254472451621338587721365652828431545476244344884643768135733442256384115418588133368863423463647374475883552424327812224266182535134388542651782377466553358122672622363187147263678432427385224452275584485777135668767516725821214654761145747172667484673335826448735581672286833763346631737263225442176883585843843263823741128368576266533687877814156336348775713236545825373141246471261138365287748416632813686842525687374711355865335183352623542127416556658715137317541427362241887541873733144564885634432342481752716151254567663333645575625466456138141257635828253467115553257561545537451628541547844561783528361538345116827643137584561787435175175575834688818457562227127532738347832117887713356177571313573276831741536377361847482538544753526581328123541214551773437821262587238211522238385443383754746183812572641431451552586743723282548787637641773538355138827817157634416241825245761341818718265648245538327512245341347287272345236488387754138554367653531762155682317178443165462743253811213438255831845247455245532822687542534724774868712835557645765636558637112515256345511832575727461843421646262566624766532223626372531355847884332618133221243867681736381176211437487328181887767846235813331163573372842641483877567238252235271577443524233327164453436258774813444752744263846182185626612182112174338455621385214375613777688783286232361165573661247235185842361641447544767135626438135388182753816322488282431274754841428681556358585172835818144415256673747274188316456553557165241825351764241771483158412874418251683461755833647124564738848755531864526275151823175434878864184147511287468437333545143886182513324818442155784147328327537744236234767161228631223152421254377667151524545215786283811886131887668732252563147434374374673748266656847154155564183537563816834315556433515762362272644885657174346188816473325114767364788364488264755461452168522124414416846538515722765667521422867877648853823485343416338367132538458145316313513451173176756825522523143463384335344442187458116738111124113146672723888345813583263234635116444526575525676615827842112362823435181327856286775678446571472723882871773262446871525873181863337286771266817566685288418213136815282314612568788375375813212463673474852174661217686854262377323567654732884172547333615524345317141183878456526316547785881127887816883417155446267656846544414251641881362523816632383654181276211386881752248868717663648753474261535521412155885468438365371684316865623524164216221744333167418766134853458876557338733618555213713817223717231761621571213433671867758726238313841865183485368133778457647368358456642842575175433135888686238262542416321535177486873813236621562772413432131465233271554235858137265277457182674588622112616321214322737644712867448648776527584883766511846741554125681417754323581756512375817328584585162468678461282376577328234684882217273621738636484283175522527688163445185565312471387511457886464765175342837146272628451226563121334737628234728656558371886365187571128838817833578473563868478784515517215858864722635683581246317424334486173422285721648464252811381448114155332474545282314152152612673645875223347753741755162238163147512121125466712757151844547727267146225667158315127712733511184818222754568268337225887854124511231863438123156447816658261377157122352854236761331816588374181553684846366528643318558276653477354528325576517737754478722138562873864137478238175121112265737886271384748763637848826781164534818847488862712653344881184126117118517462357523844114268372152457125532624475766343361384151863641883732278434127152747253846772747732846886868761122414785274135717683352835522571431868453555213878712664222141188284738783163367325283622786516225555332238262864278516656426614738123243651523647567884543361353365356588227578815785855853875878214731342265136213665336225778386748461644356534711181672835865518253337658173431238214167654875712631562231173156643251872161526386124384312524858861538736545845643162463381475338482232553146222585412681444647553466228484222141577427137582127332641568647742866414227843212644775747763357124652861634522783761152717184513648733756888664812113281666727188647174343726316127184731418275248627112188471287657636477465846527828715744528355728564822576817716473636175722363821328144734271775248526785882851658363613621718471313688875747823845875257335841642611565751547488186377777163116264887463184514578826665268448736826631115166475466711336347831578823573276835442738433753546461332671617358553412355336657885837763733434371227423543378267337724164814432221863883331214617575153251561473246146465243624168635621666672116611854548821834867438263842742573335758617416813623348313484317517774424265853885775426453481221655187522766232371522354218282856563181377656554526428538527381627826122444788322538471138557638277588611176627541555557171741458224744823582143757371778534566154248382626527451347883842868534155685436244586672171362527172344778127383752285484236458733654112611581873762312782133876347727684654728686883733842348644426873128566246533526776577542584858862734227767725154772685822826414353662434312877862632374273581522888648135374747127325331688622816576151685761562364564538362152766562316844817782257676663478332848766232677267858624446755384258733555371256652278531866565571438472575512836655674477682258868514353873263547675721671765423168412661677888636825151183415311356584367757682161235243553771776585588462387114777418331665423148317742842647736543273211748623613274377128883223536544235166434413716615514585558311688885435745626454821138675272321826451135364828876141175213485273787517735274777473241756166272532187831525881744658785567785125734625446645371752382448385567256375781461618351581415135657263887437245223227243381563735622666577312521712335331347387758573332142854844243662416233567533733646733734814842787267434754216471721761731325451877627264574383142227282888135228542467773877243134711618228486422265618817438782773811437476738822273244584564658611633537817568774184254517648527251273164521468468882422783715537355533572627332737846725263485227441417646268323226858173472661415446712585436714161847743618728122718567776557852625261547485115743715553315767848263877386686272438844372734585227516815262876788374478332671367275745853221788484743335211283727352827241886435876715186676154876168553518752125463862541815361637588511482313521713644432837682226277284422463134167517361145856632221558763745357768585576767582623445372563687572132355142757138461668525755671788535235172852554522471165384844813173652746858472338383583177144453734578842758177677834818613728757323716888864332782282228512174816774543181431621548732747556113387623623766715768447383227478775556838763523661511146424258737854523111122478116726457541471376387665676525275457161522661764114567125644822564842614847874452518126586678585861236236685111827438255521568733713133752147631571265623676358381561726681563377384533781583228776838284251245842184341161378763426846427213364461562567252245557227731341347641616851373554111538372473216572622164182427535545478687517352283481566777337543157176444366485582554782671245211827333356862122866323252365556314747638336518483135421224778166247522521862712772383122158636457378117282348487323272486161372211727236437347165151211564613571237857381724617873181656274118627524328417534332688364148251133851873581414743762618661675455626475331461432667535462441642714522652455254332771386527242118222383585711211385485213537717731535842123248878474665124515177711152254247233672147526176372752867743264677842726375853357431383667184258828212485187823736766214123215187875734188787267821242618528775353433832572815756541612631328814353513421527268824682435453121125465327146723574841258362264375778176582244487652637652457773136832341461476342265617743387581758174682735438344764345575385176145124854416447785826441648744517126213551861428577322383836484316574841884532581828724127756853522166653726142114883384246737251136388647348241515442522262157666186656552163783334456373545822582754515678657187481637643241181275213772444813428457323214818587728263864352214748637657125172558135183435325685358182583762823726173883434881223282412477245524823322535672611838246874415556826354276615773743426674722344146648253584737222424783872115276751333352645523433712785863272833634858181322654812786144337226276242757776612258847618612281815238174867548425425845723612783323222375288747878564723283468486425343733414212735217276483388637238212228511473171788114444177786724616666312661328838341447214573123671126344346845541572162435436762444775371661234258425264764547452736835588677661272485842883685868337487123581527464827724753427841786388545664116265826318341214873218761884465788372682583563122148523323631315711165235257521425343672552247737582272316237336446715626717586416624455144567212848222783357168687241324761387553434228122527274567516644371185118187118222115263688454788767468877774464244766135162156181537182546674168242725478381661671451315178253667845154871153227333832215721144435112216777786678678788461242582163773432827543271266162775182367553562351625143726533377783181515738632613214276486425771246386446318268456542771281677482187438238253765478534454177734618253133645827436161512511154181166448411568473688416634485711517223751573582567264714743483244135827536885247552112473783723276744387183266638886742271158146721821325613175645325411273176738872511277473556745882626835674332173756562886237434685385468852666648415665177787264454516558315161827244448385622224272414444842518433467166584416782542146446567567812377637745474345541781556164722856488761177523767453577872854726435122121642575336644112864453185264142213861161784364262663848266671557722837814111524351325337865677258457218325434745866116751187724455343765165525218578232336188231732275388541627565268388167647336214414324483856563168645118818236463765874875533811762878631238763711358446116864628713644456413471476132487755326264514841347283312864621515184427547883684513741687168725885434254151188411481551336774474174411462531441286347837626761237347182245751578761664283771864684284474661677365818138473148178515813475414887288113617822721446884838545615585213163852728453723363784455865252154127288241278226555687852146253361251642461847661731523786178125186232167638285278217256754652862654727371216372263677861112368442578877655183376215618621843454373246673777273884234186747251547468746632228475767163327138154567418277386712387185436716427841487366283843178755884345683156812618135388357213768311431713188361263768484272258258368848828843836813743831243134622272263754156754715157748647768684561756338171256633266117582221664758158126138762785565121243821453165834647282361776145261537364376741261588633777153568388226242585323473122356232178675657448587725121132734546624388754387727356867541731244422521466856645232735358137113222468425217548152742446845453464572223418354231421522775437662788817758445854563325461618543423371232675232357556714442415614633623771151885422788234131311761713156653658161745765748565653431685862313218884237618255787231256453553541235347775612176766452114121874864567355885784237774654256852354612223463127212156132527864165583622168846434688818236123128648667742482245562263175756725756433824153337454561545127481643345336618183445513356835442175316818346825861426458227462548776444168631823162614286131851587812475128121124352741258722861767676378786575117252874835633765344843488256757541637787351534235528835851283146771558185215385727471133152333612434431627846485743643827727277881111137522837472443714372186856566248117787616757114233148632358664641231881343123216216246142115138248247868741251477752465336831554435723666751554341483625366822135624172433178573272251757446258437786588814422741655681212587236863283271232473144381166326735283513487227423337433141773223742753617288132821734635723112875127185814573362424587161131224486862453771624835341154733422522217121355136478614486735277436324775511111627355664857532842338626837145674216733884324528348371661244427587247437431858481378123146474834415325767554168284616516322311752843486347454834464772523651783687616347148518152281322343178445716536116867838248241141148184662885583351151132522285381365418688835352833683722841246874521551143345248514446541632338377481265111621232676147761163167513571786735555781181467245547858374864326878124183246162372144643216248584413713733216182863347327113652668128868858358446456255625687524483448345837578784426658227566125821822275131611128774366122488676645563632683362228445727856482236678643878773864515753345154847625656642278476514688121685781567781234318857277523235755145757644353744331154576865257667814348774128548222375633214676537862715877533525328878768837277645533282845754355343786758374148388514665851353447434221244328845416771432267473835143124545238776231234456265167367641162282266578363614182367682553321548733471424442821156423348572535518744552186275851318531287327537428542717273647468488264185728337877757564817751318786813254753522814537878655753413188815877316263625514465147174353311515312837251461574755553185136174362531125168677753328375877252255318461644522857385831475716632338766581128825322664672258587781374111612351757622188872412371825375333255812764848534744868637866466382743826171843124571213185418114288252735721787252863741276177574456248572531823216552265844758764455313256854244566381854115872137637641343426844378365375544753326177772131485873876172636677116472261178235473431244867346116755178683376721762545143764245731185821357536373534138182216685452824558478227262542211181356853724266772788562483524573625377258346632711334564733771728817683634886144747885444338166167716775342622215812216215128736267722125374211751847358867811224665776172287264835761424764853131678146266171341434535528675175118174466742536675188357333586617672628453375843518245634854632281467874718463431421554646275455457853134842351888124285813425632236416716683482411528176185658768128465215441342361277556128662574127634745866183672286585452678657227662858534817184444846761745234181873716814563524667325185378774578831281314662635436643871425834583318841364534246877772824474543864465212532116465258442486821864426534756666464576281316158755354116451623138254768868362726118461722851754778233771724165476834872734818374863352384766165654722614152666761252352314112544185753838285847651856187265821485647842427672243237516334533267733683715334457472333635155178557736174367678233463446623276133513877325743666168373642638483451648446627881357356636785715647718324673448575111361626366531377816472776314712518667311634468221534612432478641267664646771663635613513752472515343426282268412677848381148856552788218433343416866765876662186776714443634644837625888226126711152282435785888422876888211747523438542737383845233588418251823756762522421622882251761773871232568437565214311432228257222215452162528111241251467351772858212177238116721513221153687884461565487164623564785556836383631487814411873736272444217833763872663778837727116356466731224462315284276135445132444237845353554173216466171681414824318812726285112755424151751853351841128318826712322723768551785548347275237714615554717654738154175588773561617754384138278684258318386311361752347332818577754672526817842583424226327872727886144444815134163552354658812386862122218672774741835166526356118221187666722882881216828351567541326183432232387415857453511332124683646825255662254811327856238258238472166534746846838382171886716455522871125616166115811868646188512385487635842547815862513817758855262845118861621877237277668532747883513455534382762271653365426316333568788215172267838363524224544757447134518635475418651678883348188558818548756467381164854358754476474187871377727782887478865174727734672721218658745283256735716256625763554228181528542375433757126561625117517535256151583477386623643323161481675371486412836658633522584534367713518328428245674646785325343788626528267148376621166655855242724545257831757236813568732156244564776348325715485528182384624141285728757137247788315215664145861453114564488745473114432445683714621267577532646126421631211242228343286526781482744767555671482185412764428438311464821457164373571654715727358182454181514882846183131562873848184261721271162736241754652826782817881677482545825582157828267465862588445358451126873462887485187747757854488267833766132872157538372266223746688573276145347682388463782143673331625436627487533246224388636558332544216123442756567874716153183746263532775632345838378885851245438458686266111251284751345136666272127432118785814478471183436614886416573452848183682667816267633834372687568464784651426731663133167287644576136488216776821874786572446462762271256712261357334657813315188327881441667688288365152143553251856651726554241136618814836852524378357661674656186854144335266381323756732867376648614244361685787638372265868383764845377847574826835748312382377468866737353342614858455655741387344684188121357753414668221358642711276187731565473848537631685433557226616654867363223775712854868647415747745662658814475546138614222655546111766766371445725746764631854552516873261822558134471441535657827275563361176156465126238615454877581476555857654765478125247332172185452626471756112564787522685562223374673337144852437881638876284582127821432776636575228213488817766558317456785511732418754625263887425831378846588431413772487346255655474134681633431327434835241773881881138258553282642212326162467233246758464584465245474651483366581842788814151562625271831324848844771642243851137513686384678341724457648535637555782131265211758385738788328645372584327714586486675352254137356463512857114724182624711773265578715581417871888727364147835284164381217853157641243247142651633768758251426356131352732864647672226248381583383138218466816434356136553372611861587511762461885368622858275741716326318526373768447543257412458672127136455413156761752552764642558132734864268553348585442723537541684272365832352277372238571441278657445634461544873212731761855876332565112636732747881674741888638852223355648421378144577274713487566512143581577283312685245472818656531755774618681766381585786657317473642277245783487257736113511445428284665221261882642147417128626346621213326822755851467376718543712888772448621873631524215128116765721565214363632371456635383878257371482837766665677147576845567355412282844311568348117482144441676786156487244745756263864477146786158767558644376884357663266753135123568218546813485732148422684863226686557847254746641588435522781438775546467812273318817456315447433557781657462768621543273424823838425146584736415438617625277577176581256211547251287638247553462677468188221843537851575416311277825881513566585382445555883866768857175317557753557273468666318862338558472736282818826448246711843585514684113381842383867557222567284263534568651578766587871714223618843186538674627144543524843811561566238783235111154473446333481443266623132313477526736261268773266517427625853462624416421165352612221172544551638138447245641827748414637678458432446251635484234172525841883745645462211456468874212386186341525127718541387253333538348848657731621273317784684647672233267152678414712341626252525415733684432478826152778462334765124341681518267838675632821164266362111267774644323742513618283788518623262315733127247515284568538467455575765164557428815153163685437646828513858467367741717676888654154161333361663524615133782434531584637534212354672282241173513263513335452674743838123727735153178412526752342582263152885511574422344728853763876882252378133542645127163256225722787535245585651362646132448181866681825161636331582764825874667417255652482224341527625274322132556188837221324436785421812622446822725487488582777485146815128416665811611365244658263851463171646837165612373454362334466434518888366733667813446241244886124612547832215655166451475541322778814414281663331875681751842786447574111776176745812653617553317153224267565326427648621266583368677614267458217532581213868855781537542456166728645366621613872112833167374124687374655326572477632815633715261668112331687413863263483673817641341541211827825282442676644477513334441213182522422355138446864366327448315566375122671382188276515325856418787115264881268274485134578885845645328328432116456626145642335455157688583454276425186356441583217166173187113424533357863623818623177376754186426448316365335884262556843427731261262788137527811766537448837125733888587321627761224837436388572447486287856413472845487784643583312586471121145381788364716622812762525585315884574217647328571465586743148548116284855484122264684175848811866245342547851733312366762732575261761625522282587735478262426813571658362187313153351876625475411473466245543827344413672825156261167783123324825326354242754141124584483782873572716732164447256665721158244282348138842456847524253837523848744426117358843312484446388351811843354148611137746282876513263354385661331481275584753261456458575142262862888255211523238544182663776844681515233752242185511367513266646364877738843228348463231556777124568822726285188646531543837615758741838328874827367182152782163144224646212663216815711556463737316672112275285753141183418678261817665853468655625782132616283371757314427158531761173824531537611516515322331127183474414567814622373871664773672186214651121288437472558813372147467781863682311115257728226832764251316633458231725385276478323644442714616636377664272735427657212377558888533488764644285632428356268654373622365731225477638531747421447776663243234463313325165774535813646552451884822723126664677274218732576646735873885528776512628563421185335534723144833348217134466273376835877388342346854767262585534274773367868211485738326473135111558443831426453616617113325586648253546255886267445326554763234125466782342165525227448526541553216452576481827548841753526268255411635165637547238375243856473121658326575811431127638685418617343341688881518517142816247174428753777463223144544615121788846778636244563747888158622687382136866382417782252163185832466236881528731316287312372574427231585627561387627425323462568378145566481231657266687112758484184652151141115532757368454153168531435141127336222155861143121841874284863683871273646441747412581575667814783871325836661422637473856426713216835187652713672121373821362277867277853111838717882858186724577483245222375762232427184662838464655377516783126225634161321754881587445671842331711776514651146715246774468663411487648264845535256584147674825631585128174646338875145813462644751868876347766644745416651584561633622125781431512243478414561381632434161623744835874782757544566725883862813465663718884755763554111164264467641137824155243484565542854162546318762234447654217442314717837668552345776322618153341622422855776671725547677381625756556457882561352466311741777351673127474611783845365128687281267436872452237182585287256643656461735632712227443153444718272784844416357268878383216485818685278518882628374378588817488137544561251887736224241741656265621743755445384576152642467674356886373584131257551681537483825274818737817823475424366623862451527561457228253665158436421535384621453231243225682234863186382663415337428641266188453458157874875425824757542242754286152848117646885371714825761278755526537157457842128227685761752124743258681182864773652788741148573465132746834477621581174284718125628418268267148158633148278282721366843751231785367348367774636658354686688738165516283872344616322677826751433671388654557535356272178435164143238715222571213521685337412822885743424263353515632861622511716451682215112452685877128276754458587375875637817153855533825337286684743126863777141361258453247866452733131865445563545181415788514444446148683816732346146233154287638311846336621411122435741766335336381888467178781111575347867562762532564342226737873176861786573482248363544836372681854683357356547171885475721646442761713215828334483687276822553611486327766415744174588351413333868661227754135413838554262514517445556817117526568225643468826431683848728646314836567522464777453444386831537136478886114283535541168323875455153153754868838574247771748171556532417861534557533427462835182314252625767771644872425578254375411568242681655121858577483887238853774143715376178836443312222617883853341748244214857757168886455352672635611637173867432181636357182354535665471433866663413785514711868286414427721257418778386673466456686238577683218654274532735576756236271521537263687147832245826241435543563181358234833714383177636872315514615338487438765238563852747378618348774377732342867364115833464264648246631731834736737181436423875718568223375627267866816358417584217281424655568126774526137743361248782333546255734843545136323447473276231546285571815215816827426434624475751325173363421272573733852818142241457642674767576565852258754145176552486763322145542433475446855677526268217163634446441175646825334632247125154485718877442211414763687256653718448336747668665748275682334521425125718663218751468817732251268472167185373737875772355247734768563442831721678864251341233361324567427218367231643376411636425772374281734227743242847577828514312422561878438754515133735444774174731584547278211713272623766365335374415821742522586435613436138554664852513651528823484444116828152417467611438421366476777146552768315743876428553251835311865723643827275424146322872523275727757741235476571263137851774433768648438866322415465851845874331812824717241846154641784858483258347478388152463737464568165151884718388812147477731247251456522182182687468876666787374138657464634561177865318885471778425357787812818486634683737876834421215656756666146462452218488712587164446273553266818271286143763675626382346334821845525726264137366886781521523363884173781288185782432251717215182518585572581768863758736626833151611247454446211172635853342637668473888848528634786183174353188587477877811533178755654275544484848414262824338864146424168175275126213315484457562211677256662374652183238344181827153767244448424674583137543385781644467568421855175184717117384858376731772544212311752338757351284447533454735165642574456847563177586742874471122775782273115314733474662717566424813727177585668623141886344875472431838454822578751541271675871283275722371118184748763882576285571768656666543623266555471616325817864317838882827541745812514212688776578548336286767438585663838527242156576855648452876254524465276452771463584541317731272684827634712544814325122585271358427371631472637131338547663767326254776514664547231783658516144628214452584827617486728676181268745372417781332271537585265872452151857746547356878785477843685881683446767581887466875438764164711122487327323656124664322778865666723615116463772227616545432615154474584317343434865338761616712226373418314616764386861812378261717255155286863368653723627535616288765374667564436478641213641856513131263878113647513281222824544744831878878853661686677866832373735728417168336113747682172228413555553158158465418244143255252226348545221624255748348365747651184828586567151382782725111843842148588222686723513755352425611464431123287531886272617525246351463464453823873681537185626813848353456457615842685182558351221726758461332585755132784775767851213658742612244426513877535177167343277155846877484653562771576476655237322178425852828186721457881514343221768425573188631475161182273112774726141448878117212176285265158442622753428378765863358776148883764616154883431686123687882857841112476843755722273553828765635643542815281478517528771764817547881781878183511368226881156811461446141618157654645111615463511321684752434218233414562727245743513177772218223268276365258384651825714684574586572725411346412512257377446763172364761564215232313132566828324121164231522735825385553754443745552862188767131538245226532715137822672564467286272383623761163822785823156473251356327512677576653324386834256842664282361725257586125677861261417487682764868725424853418233363728357482487168677231172164857836768517727532588873177244341241536453334757813411378184235728738274577623461417545122241638373286642173121727578651732865488668111267576258863745887274381867874112538242718283652546636631238285445836126185862282565818872516717311828328875682724412368176764254826744613838726234321888332657246437557522181771328178623554148677522168868857646625273238533267688785778445726447662572542458737774123166248564836285118312881777241224837444544268738361457212686717757612753848823556363158237575362712654847516557245121111857255332287583858611235613423168875127237644811447551772188486475853443114414225861646755314128222236436444865253227768161263741833543376743855344687614326382885825254687883274624444472267464665257524178114445848884722334682873415464461474165635174826183751286644741785368883266557334218335665146733338387315137521846441613867516711348746115727478283758223534325326711176658266146138621164483622368876618235511813841647756725848716267156526577547613158437183544357651378116451387353713672642136418114164626515347328656421674131646214642483683432117728447527257868388518438743558487142481325617315355215748212711215451143678421643268324881177718312123842863633515417516522487886764668523485743454714543348214752337841275436663611754787678765654457273476118171163427876533688281625633334718513724627371358736554126421517428482733626758412654246845682414343223155781416568683174511751752761276633463188665678231275831223831513746725758886816882155733136784744523758627825361445638113677738376638582158286347866566412875821373288154173413251824664553122148135842148186473164416858856137536281882757285467428774676141811585372337647745684567113326364184587727652246313331287435263338688247168873374524344187674676223746214218537656181566311338751682423533553187664571726521152732144884226172827176724446557412515512688817161834213657861712638758874871456411837313666726576438387452586247887685633312631861861325564875442371841731181787774825432526257885846138638475261628232184776662836586546274687428323538513841241866276784231878562834852753563538847524713561537337378264127441342761211554367666282175577128238813883615282865352568187586475163352688218163517622381656464667811738626324541128248824527684242232764582526377318767386652266155342357525224612287686368553765455382741432588688258475117855562186277782647676582217464261726533827766531417734641177515244466454281752552444564662188618125362471263338248256681518131188685744567867577414733888782512532776338783242157142136876214434312615581575671251351117435547568736855128253867161242554165532412617876712284162772817172535443628216786813171725116575618821772762247514813582263536167625311447323178531586673533318737367468812775744451187147445878775288288867247684658264664263142262256723234158175818136554428613487168158254133381383528857587534316873785387236223574147886446443211256656175714738843688182646634748415723158212113447427557732265273361636347544475387643576411688832854385111255771352671821855547611731312126262384433472246487837122148757561466811725138466358151835427232377138621881833258232881242832636518272766821333723118771143815566441333875615183151848813881523737456725156233235375776663684134471238734126446565248776753726362885465846371546157115446438736822264628426176758356561371751522635254166371635657875661755864743128483731763485383466423666621128637816673833423465777621382164816663132472734647373652777651642374386535365646135186245517672776815354887122485662345585354212783125572351266433566186628648835884248141136768623182451412154324745346428253732142844884651283233334675681648821115254536312284587852287752743528135154672881128474683475536577586162246386885843117113366822366144824624811461466347561738862333734755823831564855678462335338518652853316863455884717611231252624768281783788475835316186262148476416442481315485673182616521558265576325415652388285436174741334542273481632452141651368718518854748257721163273848845432453115488165454262445717663722736637244741186428331872627565715277688154251817437575353711451874411425442287117756187466172735276375518625225167467872578353876375735464683268163551677221578863556753228442827361818731844431743488411122271664754314188418254563411277885133175225673233125262468446843426424543272111172685883847388541248381677485218465835725644568278185221651771474146524154561275784466418273781212551535182761355558268174464254166131585441145686364348783775373642417628633767285681366521255171886458887371786335157378451636675431836424481788862718425274723365125767764524511777488514175378582244587148118745574244518247614727876642558581155235586561846488774525476816577182326834635431128131245885258637768533563775747417532672814767322842364243724234857636873866368468355778627117584136382677822538422118547148817377516645343586148315868742687225646472512832312883285748868757128766534484274471451831537163865427231376615718845547517175338566451475722353847418835633766474228234412517783638573752215723835428751616486438454336347785278331373844581214755358171458147676364655672773724425374386361634162214668553735874463518285738333143476832372766773141651243742646654354272435124285256277132816362664673885267376768577367234752774258228733232517533136748381148535447177311267587881372767872582215521127731558128743881745615773341112772817815571845631256445678655644411767423177616383136562113636774561372686127447327631842775558813611846247658187761822718832888758813334666365128726156846215181672672857573765343148444131518377242436852247663174575688628643167367664877722785844513144825882625283577136775366734687656345177613537187676721458488354858237855877687523761866722424878588455541478886373331628531128664271731757327746241768782781423741572536437317627312842636348631448612355643264162756186636366421372273324632688572877327155656442561862481231784653471243377123346818618738475841245836364146147638618353286782573175763844357277128141861628467642328313735224125576674613628153382888838451433676442528742426423613553218317276872248621733262532554562162886655438487246564324248683718185461823528844651188473157435114527525534535862576485486316714865386846161556421731866616343738468731446263812684682857253513516281211826777643762564486347368854865634472715282145551352688371747826325465172883127214873517653442773338584351667448543564436741528722437563335251111434566221868826661484434848616421764455253714467284336786457288743354575526131445567727551146832726341583755716431822467462731828614754741387511657715328288881737871851851426143888222647687377736732584332816366848178847343786435385325526328824483444745724427127546717246285241254545623725676127788321681224736156584866512723658377317135275776536623844282236262863762478866376855821135257842747174378243672373874574261634714522641634818786682226634366444716647412567547224112632738263521284112767221118118358233141418185456333751732613387321382187816228843735864112842748437334184423313385451751652412125845855417345631366838182832233387581186531611717111678768653157517274837614755563631374345227167486876324718863385831155346151518884626666668885158251685161136836154332657643257744511117777271443873747273565148166744582416151155881724732883715281228121686468667356786573533158247145775538186537277446681612325181378887584247132735214242378547673232681212574637345431224278616581655476532614288618332718666835662268538665775723325586121781456641384227412641172617126285736217283375132814112743644123514821748167346446544737658662677176232785228841381734356833662576358115337287824153158748175741536114636232524826332213272432472753286518661231763651135777833218285743621711753725588133683174681265544284365224773353623121141164287626612333667613175174258763252621156246284155138214621254241328134728447411811531188272315314713345858418566231346235122622188131576236674414414184285327587186255767243278538684123655164444266414884213632317771212425761854554544132115832778461617752813368424486613263842854524166267254213248878756756623162547332156163187846583774246558374216367645111561221167288844732358652473683348437214633624766868532648615811558371423472458725465518276747451465216525467351514632625888412127535847272873683162733488885216631334748816266243473437137615478122553144737157156168877448844752117123155747541857445355741335413811214457873864625811585578785273361665134327755156262636376482774727431438272774182331138365154535135247763111426321428826532872282366728186738531268231874738654458731738421133126648786747763827787541578257531781646132867766343117733447261841174684541187688186748741666431234361624721258265721384427162771316335423587472628655787361214282524633173581653385741374384473532185861225852877453277573831851231736455111887711725244584685627462773174171536665388448775124836174873187651484524235168367662138534434816613264586164667544647366726814535848115472445318361263544242665221776384235635368346687628552634328147238612884887324653327442578551334262132581173458476287143884187221333243741252711228881351631247747268143738178757353448172766342164845838513278874325884161412268631383744257126225425428235453882177463455326818547686528125121328622166568851572342118172273312874141766428264314414172261257343424267528536664162278452244675687615467137754367486118883427846727434843688772582887776285571268671632616375514381278557173761735468545361522827136547156418152315231424563634544768371672586474186648153336751214712865182411866241726126667455736638815255213734412724252666221458448822212545583441856628112656657351446662727162224482483267511443177724686461648187384328678771185846323636311378778317745423478671177812547675323748383742751474477378114847431482127182343872186771782882415144325232825821771168217864214725217486658827186118521426413875463712563564333681557656816385512773546868863133184828521125535411332887584757753722743541784132232337783848775666727733518873782115751742681353625154415364251426668744823525843158581777818622477358322378764246612781287258367758782538562556237173288112817351331458176238533141325884144578628632338528547748441141424561238762882551465328251835843151273158825176234325317117567874553865554632411543744352177543818855427756667777763757123566866738161423248537111482854317185444322168444864474428374762562773374252753851354363882447362216414825762653348745235848765686317386848671122886228614357423723251714472571441167615737576828341382445351315818478152875347272267822214385883747411568783317284843768318455618456263628146435526461411443571285718772743456515353368874837847235271462777145532825773765337757475273436231681452881844577868674383335816646787857642656153186526521727482636137858735446426244756434838112422367347452781164528738323788137364285836773581657312281278283531615266514734585436226334321561341833571634154653174374712838821573617667743778784722367526276244264811772731628617834353661354777777523786837467357451636738816682123418288645237661613173833418571532116641351777717723176124832771587262853112548131485763736622367254856326242241847184467736148754856655148854615124237622322866468684864826887456578347275343645525623262731343811585311814778447175888273717264824442213281741217417483441253345456546722586673231861814686837231784146883321643616664784483366822325622521372352184434541747238367586457255377553666122165878472212753635863378652363148633261452343366761787331423736666673785678516851836468427761587763727373314685355683212847164541433356557676828574565351636277881272817345637552167381364548345853214814574111726344431555256642168231555726718211521376582233131618742423751376418483728842322873566664111644474482763357555744687132532566121221866388754485862675735653332421226743434534227155385866768617628861221373762246766851616367136684423446771514351623674371651436467478224772273345611747771681314742421518626721357838477546543137845185535366168853512326547827322876246674241115153272416368116715531364648356852846187425375663882877143674446631118747143318515353234177222752557213614112627251544842631572437225283253425211351412645363573862476713622243834172344441485482546374355448411577667223862172332831163674374332118882745143743186718734252245423167853424384364521253565756117315281212217615654478783178645543643428246166328654314517243657137831554857358382623641522566366138782254671615543724566623126688365251627355811257612363342876518285753385872566344547572348616675732757323531731355168213163717172334655165638754852747252287183785337482864811812786217484261555748557752313863247765375618725415832714644812823661188535575672874225575645534861661531748873271568627352511886154773524123437584263857767764231674586118852677281153731373713737887667551487774778768717675635435867621731217653538576122275785872721711586158323836615731118217141736755252258248568158128146412281835257833544512214165136677413553265138884441626134387532463334647222771222753526622465673525156844623411685614875273647868261425864214348516684373344111624763838856451877654752755226885837382784588364138175366848237437334174411136411425512363253683275583613613321137548366352576865422457528456528174877311165732171282143555817712865413266358263743823348535173741446454151163354326321273346632735568674447651242463472425254347552486532463477584818647824114766665337134468287357388741242284752471884316883737223187773612786882677728527756378555113363148527756637246182725447817812826734618848554233162313164564663326444147881423471617575137281182436832387438464485353432342126256525454256761361463315518417281722324715282878586884521251845174315356833126673172434446211417785127371258827382184514725722367566364478477766873113275334231173628227633561835245531761273846325884766181774464686463457313132522167346422727386688632532542661736331173235521858538643513648731554337516665432174825765248728432754375628323237278766156134544631235484485317133671375545118578367464773214674142136372452126648586842352335438218884148852532247543635537266687377658645484678248418532448775514875828165544124132584785664822875567474185116461625264612681888546881451866311148555185335875816282847614312116157234726125365885275643753828385727266868216752871212573442442523148733723188253861788781134285166655887786477372426386116476658325874751168513745245742586753752155417264134168678834283545482584711624786211745737227267626543533653733521314744636144872386555682862784421865444645113318664381274351712765168141527827441841555871837762444148716665218363825574343116811475863611821524823167483468156265367688381143512717524537141726821758385485426584123145755834375362816416127364436641782144573766563264775378321154641855168146368676235431152137567523726687434318673785787111526348327187887887852231421386148768312276665462766156257853256234162751524757841316838474718578653447265511462452752656136642677588312568676432663848528854787346247115838572458718427373652273867667862785731377326655182716183431374133623422711575145882517552546621577578361334838227145886627388116765488132585564178238512416364621861878145353731351326156341773475131114646685422428271525551814427588568837561372386448612452864684326215738766666466117244137266588776158113758153753547557464671545352258284116478413234532116661355147566547342283263636416171766142784257573767775145485161717522357774538583362743147652642254488863486145478231135867148364661364664148344256867434837732857171527822546838322134524166228634745314227426858268387484776756216713225664461143578438574855266426745172574348314224662126331143333411635621342433765546876542842788557281282132867283576742686775347233853125872687645436283741142764225437625551332531758211822164586715534771478588675382844151575253772321134184133227123135253465428652332731888772673683377385436458282442187175351375574318457763488388418826418147655153815752711681347288546447774185153588745525316135685116855831535782436854275745121632173565688864176463756112611733531854474177455783747157325365378472581857663257113514143338754662427464237223688551162484136413352765787566586557655461534372373238614267877243165228863166285127645767326141144333338533323431855447348541324757172632833865668868663424456582458388452448673571556585186653487174188831518836547817113748187583868733581453264835445726675212285148185746621273687835581772551162677758582326685487524688444222485337857178645844765811755377173476262641371765828118284673267415783157645788172858867114321131325676152382365152128526825578226755556456543755856514263482128654776523237121675834426662531415583312384713761134132475637648814812131271423135288446866731436477577565367576286716264717526255178413131454272427244575146458534275575281315427337356861316838357512181227468258684356474746473788117781234715372416222255811878846485215255771827316532682446437747855446724473271788167818328283875218777873311155833431337353627747783581587584287247742264586377736655711361741331211134544848637863254386347172667767378364744332653678474878125517386284348668714768776862744882587274627272238273651424385754611418761355244622184716743475556666218843136518468848538467831356877567772417145818528466866183341164847658533674633648113778613316767613553581561715423651521628312133155365427465623888627771316226187624763576247414165418136425134786838353167587551782762423175464637354637173545682768876375882132567516115166586648347833572452515835633738245571424374388234352814163352846582641647167657188241545847243513734714372746242236887443833274123464887662153873342153146431438745732568444448668644848352162845585652263317845766367863668851478812737235526764467354337823837587767552721457415287332121173743636557481533843168813661675661688824754474668672648516344871146838222238586263486844577136746516225437457771171372615228563271817412324687753557637328363351347768851135872237856785472677468855727422115785381646242128525222353214862532127277463562583212847734827277178554411664573861652414516484268782233265224267311242562867485134344236744867367348415313727132223545876341763517428626615417336552646141134452763435162523112737618871178574467616863182862225673271254263316143411716864755131344831424442226456314851446845637231748281368672812866122475648438214738833752858153422538758362373363822287158662161233675372266588442647414476344333257685722547273356264278713333325175543754678521887323313383535181351315634582672171416446655845567554227333467345374177431674836653741574477372815364676742735562743866125443331834152413586743584851552766786745852752226557426813134822287743147283171436264834714385125865271565533265571873124553132328886523266583747743225266371477464236223438421311582778414252885477655618522357374553263675545158532182624855471712738254668744484561413487813853233714847832137252282447817214283144248887768574614515415876852363447414871715845483843587784637678178434274768125465475334364237643655164352768313727847144524387363747363145673824485218652142574537354335888258317727753524747212613736483475315154535754888775856336565571171245615746346275646131384547546361582646466155388883537688513246883167412186323877817663534518815872728587886271172727277318288687536583852366174232625456465112732242416512315378546262415613856277187448548634358145272758725581355711621381626281614761447167654341877617636345173435271144426511284152584235333646261835843584374786845135565686873132536853371468621833258625813324443718117241771768854586187125531776476851614657544183463771411157483188756322256233268424232836476652337866257441664375487557383567467365546451233521766533123146481373447254863885162781163164323342672566621618213142227222253474328245523574262463354733157164466371538753848653875168432837375668433876336813867572185375788356855853543844336142821458587588285477413713843524666472842486176335176867357276524352125852651358456121542838386683581773628644676158611764418267187243524285323175656644674387274618152146575554228551584622248668642456271716885546565634754422346287473523772333155328611258144638263485673573557171617788681664657183337355566442413852887852486766258872417843151355215817713486212656566457464455146244675631316153711223858112316116435688631442772464738438667344687226786436572737871421257842826648224457226366221862176737631164542184813245436524472735687652626526166857567278534716846768141668173748382111644121772458321157652815434632715714882213115177441632271651711487484662138316151221848162752866422548658671353134135613484357865221785458455628738165872416764453213445451538178676361477735847258181536355363237522535428563155865185682774217626748487815826571145665454871413187183754153421472128334338468745342386468716525684237661213256457574331872581851343115783725251865365353222714737715455633245833238635123883173551665837333482712475856213211523581281678637865123265756163783723717573443831417434871357343535475833267457165828423418731288336785218622238781338638373357387567265287427166258188624158748313235625134836518278642143117618528151363453164172523734712532553165262213171174846386767837243221334511478284677824666135721282831357485324748317364174665375277871626324367358283381623352446134116685782387214118242234477677254571158878766773757171278654435784856854417282247842156528132327661323461845158454325174543464717811254217721463464137278586667265246537178722167247655565313625716531337876753666438653844773163625655221885232642226572558555434666377347562786525343167621863348134537482336888488465234321222885355864187784313815488826625415116283653117285476615554823563738454776657474183353884184311271283367144452726743117516887623483326186212874555535343118531566465272782658722365568546458213858144271455386331756412727635187682676728337657383614572825581856235464366238135815121223432434714452488777742847241367612524185517353337172865786483351477547764688628417682867526518257178565835514321671734652113184713428878216334312482427638515152883587278712232147376125565671841286624554744657543715438613786576747274255631142188343268524368841437551128784581532418331457328322266274221376135276178182523135317683764762562776471168322281322241484541456635371486174883132726865385132664318317522162475557821226731814484472748146854216568387861666175174365248534653315845618462171657772362822183184675222658863817453355157353637786868242737175581576187431483378666556436312437376543485412545418634164464526342685812123866274727332367785288325873284447865344743846325812433682816122774116456712111381414743511318186514228566666683748774244735732458841586264831262258331328583648583653175135223318842574538761331363661871462783374512552348348166311887845781235646472313313811511586156246338851367214485685415232744564264738553361778325556161822464782841882778763765126681453281646441285374357314723353357674315818625758352183241462667212532281723818881111124127385662835722768621521386485567413541731123765737455585812457865288343441376851416133274331223613346576375177725274413532228581774148446641278666774736848885643624367817623381647121422177227281623173525851822633442546468387825324343447438668613537371268567756842275814537485458743826548132635714114234674276766738244157326767844137552651884673657163582855646756572346443467644522467328554836542473727232185426331632686776212448637221326525327872756242852166646427255514115854646421223475628337741817474861111613331668741448374372128273271342251374265818537635784322336827643761357728468842472578462161742285322661514214327163171873664873472357878385424311564533518884318484878427156443211334584251376376442373755566846666135221854281834138824236727255755146133227217371243352614486172283863755543461255457625764438354317583126451166372114246651546663532713545628846214227571614872334274584235125416777243224668462881858132511712471361658786643883555257175265821627671321882842856478857435786755318432281872777172174887466621321233458226382781114484787566568373384225721681651256346764181125845823264248312187688335442113563752148253751126485484687715632674848532723575234331788346826751352715553812481584271272573734558716468456265325341135348282654344151583311518741723844853188531585354373433113155148412722434454688734134335316817728656761715232721373683831527158132767454677736825854846874671358436772346885247744785588634751763126827514287568657266741372834835687254533456827715286775174264714225345651858781825614777862413432832557248288277424468255413342214451742761348671284621826227338572556683484168247276278881782648562217246341332741434831661712767554365661488371174477554242188714817545382275374738254375571132523847263372776761656282448433341244627856782574351148241783787517671442682826453434827684674132885618875766572572873723876388155636582168433642436778164654366538858233662116858333781335338882583215448351853552832852285154721737433154746162855742126578661758268464825582783864175484367121833546618237176264547277375773746287558448326638684568166545588878731372274514578586418221676674254847233373611651111123656375466762355583851685613361246842187732867433488555175873164357546321524864373738414612878122765286825477715855485862738387444661137536176668228362242767572627627441758272164611582768234485324635721335542818667412134461558133564384857715348186286381853562787837371732152167456143228462357216645687411666427728111617538111662847377423654513278311738431417388783332516634852742524234244678335368436788251815724834327455155672521266772848221321628455661335254241827773661483524536763563174567567145872137855168353678554611526387573645217774626144668235344673287438141734865531613526712365675138181643235758538857248135564774371354374736648612435435652738267868384476257777816141662745638225725258444223623424171362514573754876821113471483417234852121356354623621665674584414561677714215376258373726265373731717355665854675628552375823756514345478165414672637433872366524628363841572625575387383471848327821764838651816415842351125623162157517478371587258352323552557364185711734583165851753767821754833124164278456627684562161225517576658164678141826834247221476885361844123627768568553445448748343216618876724347383346542533233443261637476561461381625764746157462515123671473471242435768275188326427453487416482631277776876875227168866774433583672268864327746311314572882322651563251253133453551515765853787545827843726168171246624778267678261832874286265748577552548113681751657664451534288824875452727763534362464137523175261615584341381786631248862868486234353686733478758733785571588718345671151167841783732171146686627775857821412456411615325875316752846614455667417144675271677454245575137351187463831254882716737345858474541356626318617545837638334737888685126644671245634287186566135184586837316421658768247852664868188352258466483166886353171563248671855468277275471275284817228774746153142421664742466457845581842526822733785276171682253612762134482265515783286266178321264446773115623863773556852784472735221181638625113825522457766528717826641627327371747671537288741637183134723341182866875412175128425777738761561633871537433184545121864557315844213832765664235444482823741841132434361744826157563362615316418227641472533714362314435662373781331435275166563481838163366526246358564242714724514561414256741473136511482748815323153575238344224775824668655387384627237722244537121256738427244273185777668627586223565524185273588133568132787521444615222611655638142145884623467744153783768137513664351483345781282562525425875823145245175654343556418857223314315788487531161436237681512847875434431881587636421351877133836571673473412363121712488363535858827853813715664644851577717113862457325385867318464223614411566628252641834434331713671187745573585338178537852788163742533771111613517261166743721154827263368841867784586246428282688175163164621565525211828437664342857321653426137254726436853384478362187415168482848643835862368362167868165621775428418815148665543341224773521163613561735668824254845881242127375317457574273514658357343541135266667186215432814588823744817581724633151513453773762753224668752285581536568556881743134481173358778587754711266341541151764751314254618181724417238834877123654246516216854362244144288112143426174412656283867448868735518842326664438228273627561222642636534357317385714245568677742172314438826656316627844513354468258517381635332681454565712725687637554224416663774332578756816668272218521284562885723788455222716833775574887284645522167556436171165688678554878542444366528384116235214156415138271367835535832614824386517216184722274446885736325412662172752381228268536768286617732646832637711433183631246826461532882765616326622845161658162785672855483624483256734466333528777171578822856278532174317338324188653515462686656424852685377773355665878255527261352437155411713846244238781574268128572288831235446768715538855527272351814573737421452822773415821725816832214655787648784744486145636871167213458224264555662475124478256866113821114526681417165171185657155124731243528536131317314541353532114738746786168181887443145117268357733378842557327127483888573465355243744851788281111165121153558131174471225125772488151653125628676731448111278434381133341868417671432383127651776751782845776624454553564386162456515388874543157114437557324466277427162433688215627474813445234562168378627235764672677178652627822528441851237513446345261418817228663725518365318111534445313125157131552284683383452853183411865475482326455685637573758186254787114285812271311655647657348475283678838644475457582464784433127345718764318422261176453713762563244231322863176645187144472244538818142884287833148848357578112588261828315218274265712535185852764736467154673258436255635826211354881463746733462774336825512336633431672454367543675136556786238578256158486227545645182747152878561263287476381555152815717575438226185848548654766534715668877758265351372216351123111543237873515237866257474552758573883657627211114428734378232186143877616137217325818387717666367536186616484375562461852625123862262848355654817124776155526471316267214436586366454725334843171417884344653156682773374477746746333366783717464318316651514788578815352232635256186323463557172833237457221714468112124866744114137533352132448121222375855426585344331441651552331267361768237658273736452584727784331477481834713282447353745572824638437337677586417244324448612661674277845652112883821464335267236644285667777646535642732147747263383436274147418848233134824612531573217363718314387587658271341167145842723721846363247153757752345736115157143676181562823315481778476877453637813656447775414173677343278228528872576262662245114515874412153627746258473587767335484834146264554775474711587176535575181377388774182472217515338584251757354238618456344182385822334415842332383214618125221412245586276128225445863775166214438855241548461112317552758148578234424477882182778612874457172815824452851136812543787731648786157564335145415565415885825862577384436617244366827214663858117717827377688285883361446613311657558846422331576523524874872556368868262461238476717713881145443135853751741487165825812172333586787261325354736488688457386525812624726322615114831545464633323154583235162377442412618777175371441751834152863714144523426555665412511623778736281653655826554165885154117187616747164362884112551732733332168443326341518675482164326526483334356187125173673486824345885237651838441825343288752373542631284256287155551566458247552434241563258655371414745638255155261824211243467177457187614218423122513274221838471871742738477685815834353125854117748883437873431674115476667645521578578866826185163662148528172615324122424278685133334745751686338337565644521733225361542571761418262436855644836358814238725556131378635788382627625788641882315813845435825874423882826573711361351863262351788154843561847845562624731663627324625142183544211853383151882721258653538584862133132114188872654588448485758553833138218184858368321336512554527726416323714442341143688553164423153481632263116167117158336367641588633821226482212627317541165131114885675185222341761532638743524618847446654854842661784774615173177582754711361237364328781117173887634722727536434456315422725775627686848418212656887285374557238665851511477214813428626778568285452517226144114123872656373267724564153337647748184836555563322468542874655185115567334477478523146235366776474811781717643262465258385661878435273263684522757344831213211714183366345416548173246754241327486474124654168843863645731758367813824446541115417448132774617258256612853168271522434367427311226586358325281353162518111532623368561582122126131341842612733756374434616574876872633888663125453783824262566352284244127178234268432848712214384718276845565873535771337345674731424278635271241677422743372361118526255471484438831222428253828741263666723736436527335326228264877225854316546265687285824831124722817314665482152446147417111557358281263773674578284184512326253237734212175531221286253475217177761872785115226746458767147856718557643844232525358725521172322377627178183354546424143642841664232611666562123332715266821587177854827575457451531714566583151446545463874338173731373612867623446871848477483346144412668442642231824738334657432868135641474684673733365747341287167642388455581843276356242366164717614351816861855286812638413553434765524721863482257132543885817852213582357564651568428475835532358374421864418142851888552762813431842548846826722877484661422761755625376868616514454771533365122688826328751527123117721724336255654142637775247554333165117624885881263517233554644122522462521726738786666882363661733745857835328364846686433466521781176846148663136466225252711558564825538152435672458534422434151218667544747822637571638843357175613433564866235884664637531144665525543148628825858372745515642381751724456345746345225346811716558532166462525355567617468248584454332137758154617277175855565627217826663367715223126373716178866354132137868487316134122736383675285387755355152635734673373357736363114346722155345378627618483775656287748625316745723344888737111778538212742476835358315357164113556347427336638732438855432888825546157842212252185857561335327453124518736722822424832864556818371647287768167775367432574371768883728515272866453815761264357224283121637582246214487515536117484655675535626117553474513211645622351521153751375528571561342873168236738672761833856574624712778462742626554553428777215353242157718647184428737425736433744615565136845354887648888642675753168371861285642425814845173325622311316423656758156217622621352483281718231776478781238467453368385145854112441386116123758753382715157537778477275756688235562628822644228133542273858843285337826141568132455361532275485184873254326281135251373481716823462686185661463685683618471148176213572628733787337684318473477665123852744621514878161127122787356353283632473746454462761115512214528553781645477424667634885275214251418268417226373123518786316728428133171763511578846425223554213266272234574512253811482744832817333556512132857244353284556457881315865635831351673162487238527615212465837558387581718322871722388243312736655222263252158687887422727882364575618174276756526364246685522861211127283844566218688168527772583511128121536754683616225113253178152738773535162117631887274278152835571514172877727516482415177367736774352156514362661727125843783267564735276628556314113663652865683642351688344564142817344217736612814641574537512668551671151487678641767727675552276742716853671352337776514755841321562727255872271658381463633662777666443817776848447242174326252834668635414165168471558656163235668232778352738475211663471751136821215782142148268313547334313181777166767148552252566866183153212814357157524745558355562867775535162734585636882584221364757322524467484124374533115742874475214646273355651123174334278527744327613835211278154574683354145537154157265358765373318544625364731312728821816182123146227352732422614385142726638181413317177381431736847788568565315586112837577532883362837751477644824714668482346564666227856377778336651518481147274566327653237732516534234215628163414846351244351678183573642327535128425538532388318224255377241628361871543667668357663362653434366125166311246663216413378527622121524824888333354561887426177786725263368863784351116828227663341837862837724318116765774252286346138883661262772138614188215435715784637625781654331681371711476653225683248825344274218778786558446616186887488516877566452774685455662466872832581346688533813217342484752842281882366371371557182247623526714714186384328164734655586755533671141678721624767241688244414642445471152181263657634628726281331547541328343468748867758164767828463262272228284787533416853422855873151348827184724232736747111615627622524221213286346136587637286137355434451748474143413335254734228453814147655636874326488572861875763337151334132124734487681447122844421451731142285242171721628724823668757733612835183765733772844217751683531424633611851315188276838887822161144112784874154678472347781664674782577833418476372275152788356312566858381247843162363422115345562367856677547524627866237668335427814348653512664466251587586615583626273243466523385825461241368687176386313852857551684664767414312512838284181712446871137767267428218287364854665423526361186515183612588581154665634822887344723171816452234582724823262615647726713128342787841148335585131517758161182861733746371886268826763675445638473334157756474145738663377517445445741633137443675522851462873236677417711652838557421256825235563111782856225767378382173263686617684755237462288288384376626486723264474282427336832861682337671666722242343242432674654554483128711831735615858727258622131833813563315475141528145574756745113131362876241313274447723187665147672538244832828333775282638383267877462552644347335751581238413887614561482523345587357366877234865122121778174331232525323183288687551317275315324276764774188135577617135336534148636711326388757374154386548114673833152681443766342647112873147341614578583566286431731185185486226562531577864576361241645354876314554378165581386111672266621442417732415835822323476261542556764223451623225114328636677848385616612764752353444324673134153288556484576678524622746658122112163721867212134262343817576777544672665455364651542717366121575514767361514638474535168341484522617415422775431843156681386458525332534788837883865531661113852554624753653513518153788515762677726282537857715777627374837615274714624478866221153447881336552117261575557766862823673416247348253722343881584442626664847773355646447787453454636468754312544114428855381346786483475766621187116612212343622847845487751526437665785678847712516725687456756523612348834772112453173774451178456271241338486647645681215774775482475415834388138384374568646353452518162587211636224372342563868636543763243222814348234186454324845373214222373474186486287331782371211528527735232847367256735131626745483276315551353168728178652486145421651313118363844528552317862218342138138835236355761882655573466671574136626112588685432875383527542645173674543278432586773745565481514843363387831246572762178638645731633162752542851144258722353835518862724644731515626588481671317712674248688628881647273152143538667278615547416237536837713752738214242483213586325577468342381727783833821268562238633244133214151324326818523312862355668676743845436633375525418615362818271275678822846475626663281456145754472371262575254421727423284778727633626842256566647451476724484336284557661136717251754546873365652126551558836322414757253451626784248852822554484741352564632871412857258472827162687852174273378542167572731237413868134257255761164417641461717254736247823281884315745882878662644138537826814414685374237165215377232523371611761154267144233761644413441471534536558324514781425763266811631144315344455881843235413711833847847278534674775665823783846216167475485564528245434673664885362275775838156842272551524671726631278478474638824638357726414167766611625788346671375724465848435183231618241527316888382586188318587627318466887346746162662613237866517411166717542255182358347115752283366656462653763615635215642466464135663518583853483868214857685614342558227461415363353354724361782626545153651873378371453758515367688361235231235723858812552188535452272455247636623313425631354868784136552284752778182352457744484584225182446322382434371132571635624223337665655468813515438188651148157435186384784222455452374455821758135754741832263415214626227811514141334334122458171122613211336642432551863225173772822148642472324461134342828817666837512645566171654785844882367137577613866631415551642211344716554385378522228465546636461717433538257175817842166686343121463736418776464735132462163864117156654642175137647572477665743544771344427122555111744677752616284225333785127377863336273453667756156445647442337367175881364721126756187442632537383888672153734277776631851624524563441223486614457137773654163136831647164335462842681155228482182763348762477378147258437377256111334317523111822313816712537847147165776284746143144784824324777682241555111371372651723252338767873815265863812243825816131863762737355543811684175273873571836611512756727776252478764187172457175352683477754862545824773534212634711715672647768161425475555428576656273353711614425128275726465116423427787435777158177225568641453482232642335642615187342375187836226881171641577676277376443246527824182163871645461858364655877465765657816677871172878111518456111535185668167143342818168822577612712135147552553644352218166484344457522443385231652453126456781283551455784377144855257484168758121253488716312483178724787473351246473433261125471832178734236841355516578552756828727311684385121377183627711153614485262361468576143314742854224634827144687525875276661863351474562336413261358867242885881847162315616833635683273378868538446263734184154681817846888453456671638747341371431332577523538787766441142148748463686118457117481212313223767712671457181812447237338257534375151265572537778583485176536135347824278312276112116615137787338172516137326683783224733313115124734244846275531853835353533711754375466655717864353856761156233336464716377771826877555236551848583673472731878263685318161625645178876266834457626824772858581655654147631733662453741613322186523126755548763868821151842657428477664184677874833518383268876585368337485251314661211524128737862764311885586654761573682534487561612657376828152271546386445868135312716414311287312547257452355853733448446455756616483334261755618643546888574745254157572524284654678877883464651753221473758781225123578483827584825621662242333782726762123843842574346466358315287744113457358576517721553244761324422627551168486275816282667418847771682615314838475714847445845773448378818168573251341255355784747666224221748161755746462852312265486865641224218474281473523411825663334443763427786842864311812247477873236265625175862168126841778343333816247355558765437137266616638176662114356213623226511346528274821637251876725286554248766485546328132785276653178581177786347171571738313778756663472251555123147777675658345662176867533742125584133565515663846534186376255762744187317773736551856354675823116273114858248554556258326715772511716853446382414188137475651811857524557256185164646152626364421247384175475868434745163611753846466744488556565641727255346581834277623344561282364688223848633621177478545634857387825861838261775381242624766566864522312788576166787855113756428872613888543821268862562424766721181156816255872735152814376668635442288784178362737634238552535776865724828755645475785722834218782144533575755154518151344434824825345263615311362346467767868457658245575673421345657513316823374315424682148744821447667331367457811146257283385135763613645247145741233652647852415466616832716347462343564368218653123773153454761682548145866512511857721726213363137638785422368124715674355688868438824136231132278443878425877872461871514274183144132838237175833521647735242445744614374173342511361154377588648261615171824244777851384143873856584753754337423267386466432786255682874816425612517845378457748418587685313574484357746458233743768334434783338654215851442425663515628215287141262623466568236453634622732335317146483658371873752374566386584168767644467426318524837364588886864744772381622573632438474444132163527656638444414626251655255838877724543287545563885162344416115873147424744412481864657215575174175874367768815667144551118373472148463811512145518635712346685458162853811771342261441345861175647744742771572418411534687416661522813252818146684624753688866627874268466147664735227447442723277612315118843426614525366115233163211711413622172234636447857224214253853781888728257558152741821486653632487176867434138278771836253285142741213826328817573545367374584747455726445115551775178417723386718371682267323167265123465765143641366553844852764343388842156326151765261563416812231735136335146234446418446186221883183436881573627134535334123117474423113247265865137557651836745274582565483658258112574547373412836154258525111627866486285242384656172111272358243473162673777844518471517688614157135384247117538564281631667171544248261841783416485568315118264545262235362678338553273681363537111331564487487153376523321668161764831846776578766284436153166654213786562838866253615321374858135325648738485612177576374441841542123663512773177513211645445481367244515383367678111142345775778614721826123887488213334873266184143745543432342267217555448718323217327662886178858613826717615623154821726474161617851237667838242284862671274741586221846431141247234413476561676318464274775558373488747161738566211577532187183343874781573481726432384211111314618647783218751214383428521227344228685675527637637165686315181522187525777656421884553881561278384726185751268234351355468277176534834476281274326827535241815238628736453132251752672785553775314276487712526668417584748126345333878456525143853427763741232654637364132516513742687577362117276174574441182132262576124234628326442472557452644583212381652354558713638564317754742166138334786337617255352236321226887826165685235847173363861658157541216473885287883786171726682553533867337513811348524516263137357352244515813884846313586888332733847114355352616813833533532412612477824246377548532882821752588746615171774318262136828851728381151235874414382164753325486133184727412453842757811742442751161542848281155786676337573624731442313273377463212542886837361162387626522865352265462151854661551488641814148326568632487721876672553314724646858823268511658176348648626257543512535455527136721372353647418751673227766676327126348371121163731258613167668537852486567342222314834247814527311355877418532337777212858122428142618246165885673288455157861462542255737127255572587761256284154738473881715131348625646136488772581475263646766318858658168827736545257483766467138115167538418163347757132445757755832685333885281663236861556488887736825322732564787185817246716558852248433258385271632142788444118734643635352748717623867771871831811831256311757626661557526318365438542762527188456478231727451663377462684481143441868622134181237562411826527722727441343628612565416557875657816441162114875717844356625381742242855226371451722344126322315276162341547641432236617838136311127818163436446658888658362653635222188838373625612346248425445637833786782163331535256764118572362247886663686625731476874432335256815572817378738546384447541256753872262865725668165516361143387683568333874152627267761865711646883536584166237655133286447518264287743821583155665551314622585122553454214276641266886435355833178485512631461257844357781173457166277457254871465766345321633538856468245343376533257556588443415747333863361821313757277138135271123366683452458314228528288714415418168122227154245764744481832263246744863445868252613622715628581865338643216627555836276414864137267183121652224617382683286268682562468415333714211461356543217455313324454741762865561234244157544746873333328263628317731835381741138322638346268215178142267822832531653654871782156831724672572684736682288345147717788834777816851636812535746324164624182753357321861281461758852184451545741368133712725581543452587528763611518841632256372633573444382657478133113785224456714614241172888488455414133237725856147142311826438168442455313557733543731572234637643885182417872812372816781761632586712123522312286453643638458575765133472287117311674124555574161344378457265686762234386754336121245271617364651744334826128436522138718583855625744316574133745824712531534665246344882161145514155267127451545278345152852472584771278884658246737841745852816385411866417133473347327573631166364367677577532755647212235337534567482851614855286816726316761333633835613157376147438736414284136181556533361132442124732712221831655318612462625487836627541618674812442678717453816578441162135283836115653154455771472487357866861541763147251637463572414862654774557733347377732688511883635223337277422821358534445242224683833421868226738772372415227353226457221131463321118345834328641453875654682823634255454856837133122573122861313328532123475278547313311567557586218877326541155755783718335171452155877537341786143428123236833647313126557644147856838217582763383665181551835727516577817272421354854826128367785513111727836663255323884587436857857836486261146345542666411766557127457241222546611563374866638281844727518621381124443441268278378622277741756557882342838743767416371152216452327118812586831376814576753418317278278437677673433582267525255843526426882638143188776214786856318621316541224221165473533725423174775486517636318817726188311575153212821458675245624481337175672567731436462185357687431335761627566321826185371151558378765747385133685462588661436155813253673842227421576524636388558772155111838377413154574773435811172652455158788161285333373864857124835431176654448863161354318277377582585831464367664486534223156515632734832167512611361773655415645837471254111762864628172583723312716838885178236385364438462317278738637343335625253362767665478138863513712331553448333781345828826834711614766172612681782374842584872123155761611775834731724634788157864257227353523182131583673245113424743338681551751771744738338647222452176243788766827381831455233147253567746781153588347454577552474686272437513458384788224578474824532442262217213278262335344336656587474682177483171318584133367574437754863772778876543515847484543478545788677343883254424851372628264424373713263255516618716845758811135876381676286463841634721676476875322348828365368483442216725521112745717612735732775683344512563356634264324587646263267524742644214537638175548233251878851234242664434812563256468226228787328255655156863388632521883778667588725387875871414362422318236852834138727872183136367415187451513625564138838217482327526463181422675757647235164266135432346358524688531843446834383746577313835411821624866238258533387188172587381352525287621374368245644763617611552132571518545531284242527155166371237288721173152246164565173777457353835531716681167421638564421715215658616175753252334856387138556122658854518425654641445848864533415152573531756886187282247362327834752772853222527316487884633285546424516877736667166736888225448171516765645477275527324812445821642328481617472844363463564766531438345815754818113345468725275224725425857128538732167151347556848547744546265728835737462324675311141212478161851284646545621741725542471353115135268821142133262333242833344824131677788612178878213856386455854582167144312786426423148481843463371184574431142773654318461617845622665715728167813131666617567638513781342315675675417178516146184868164854482556787663538833288582585871178313688456778437754313238783787588754611844877428726741628675435161517288353185647323452878588685725335756233486884338284153633271464546336562762351861343612688733754277784672414582632568638618584117757825156273842268743763338448272673255563464651545572572422111264256614627173813452218127388115587225386665153158246754684552721613217572246448134626782227356474414867143454427456733154488217545587418345456318873247387814434554455488512832786272667165417861475572213463353137855667214667625344261516848712687731622255834237254215865756673235354268632212826414661823552771166471151842141457775564838674742455562552336447285343612338774876213435368868357873728653311458271573116664585484443425655482118164145362682346452388834231142614177513343433747574533623626754357778721134174737852821278534136521252252255618561453467182464623737651773121866618823722538112872753517878843324213552714362166218568124177428531473633256364152877586884785425551434545238314453872546183334851113154644564126124748217547114711276252625786485545556126577855144328287637143217723421745232782881515348743764525524688227114854812515276464572744364755233624675715121736872265558885225156532673382464763146387354443118467215434647782715182834444745347168678723683868278448443874525432856747774771655385241238356755647488877323157684877867483764348245241663877414768626163811441132525378244685277711476664478177318535428878183841177425731418235875486145552525671221663463362856555321473641278382334362268461275467223443562566371464682247322558166322345153756714363484785642355143877581475835321336475851772356645254217782181183682866542746571756263628828574824611462222876852345627365721362443245467652323247775367551577788623361685587828363581445462851731236713423822558815526734625465447634146147788446867321378823454836312812487147714336131833848338138736636446886476678748733353335874517858524352586542481434636871342783655657824545454514836225225185167234682625257317717276318878242835182763158876463372628564588642828185116615322646817532876722671551767435136866564176871622588622357167561837552638337311225786828486221313745817582887811255524553232238214761521428876888221662685575586568511317813267271727773132557212137758315632426268846846763548623215113565474211164465247253785613214431675716723866256143422873861373128618187152663476375541444473552472887783536835661824868173317243313747111781836826271677178558885771651486151728436512166583148623457254861828538276143418623552784325417168823816562518471483642671371184782142768621534374528773862557636788645514237652623267522446211586421641164888737252574428216852564518323363845727175136524276434544442668663822621381648166675736771627572564742532285263512742531682226334415557657331382265334151347142278645526821658433662247737333411445553845876531784167527456367162286577675437274352714518333611721265818248736223468421221471233856426417476788113622633376166358516316625482157431554487785586456245526135747641713722387454265551118663853637464615535177482116713671663512158581751154818671152488223178354824865561137185117317776782787375332788682467674564158335524313815155672488363678755475113431721182261418813367323467667877126636528551236424723768533882753433774616428227268542262461516526761831548227845868145377115734111261324743634222182371787431837644666756228317277326462714767383366828517337145543756834471811234582432352726142426676274362852122231122281584613161378773545714586688527675725188236762735475745462883457138217637464244783133261138371241731318616237373546561534267851883128171464257223866881867768765736612445531458712487575837574224554415567318258165771144817178435543188536222787443456517115825275452172684478824236856354826131342441618623612631435137575788581735783435353435265447216753312482537531663185378724341675525732554414177347872724854883452682756384467313611853315781215142237724262688168621657884875278488842337214117571322212585723468363466846854477428488228752285137434785152585323353361856636325755811525365754288272364547848522167728443618127513788851341368135824558735747284144645771563446118462124655142552633271844345625638787864245367287422275276648877557422435537447255364587863831683532645815641222658778573535362682535725355867241224643683821251313771176363153762315274564275373231334862843371117685723247632145677742612181117777155848478544127518438648421314761162168534812468423456187184532335413453424562418422121586125858255162411736574272384118422113588213143185421848764245774572841531714721132275658744128477548368321358363551136661778784357871768515512457246524682342663257211232683585328676113843661173574654423448837482713653131215153288547442332142877254267848322641281835735515684271564165587432446216458816245561337682857686517888631377883228858385586836653448172715562874546166282872317528236317551725838386825721142461473168483541133651122363374236335248757172782734733151154474267358244622517671631645647756271666586835276642675345867753237715252524242463611742118771864625736858468326557382512456341627887664212233548375235152476225812737254374488814424688813321422212686781231681138568121853152847117676466545555562144745617713363117745188622235148288751216444424368876547632243722684723233375422168621283473355382471651187235133565571577521711155672646265765232356324263854125554488122665855171728713714873538575144372863171228666853421462478681137772278867412214526368467816866451535273638521137351384654122453563282132184656582387621232163331616818725251716782364357552552632378867253841571716812734678758654522383686622668151818477128881448278514872114621617243844514644233741737117468286127378448761384267247627262752464352213751858842734315277351213518486662364338263288676268377517216741674266673811547835821651162425553535214261225664266782815643868723413838627772365644712163458347588547221684886452712115842873417323741716885637787658354117345276252882647827666518434412316781513487223114576837746886287746563718682163221521364661476731183444123278467128755828823366873373775711416778761128877324617646872237238724366448317118161811218428282641176476316277152642467261186831818356884668444378533146146335436358624272115533243246821241488282753367147667658171632423258147821216627585831785854665147552421182763377777566728252436877281881146165528372134525737436316816816374443467341383872724425725173722735238153783681868477558267515484877841721155747343218182528665233674366378533164372852764646831358772176148813446342478528827844583761432133343164872414315266522468272472372658144372672888327531157883782856561185334271618232237684868265422386776862548552741211213275384224768255325242172162748736356765822744133627522617573455757145687577152134443673536548725635255811776575631887327132814564688351387823582287628483651767743767584185314534882812746481264541151456656266263431264523511862736731215528286115183512833585668423233671366677286217161338863474487663558236153443746578235454883365572514876771754478488634673626242188256581574632631261547611884261182342468517648655678346316421186387115656526152681322623152136656566643852666813635414416378855317848844117458778136443162636854657323728362721721432717572367711332271764155684416547113845473473311484858235545811721611325554564671636356871572558386187621676211874521227865687387864436264455543152643536613232685135612756322376452362642835781411831126714583815713864267346473164242888158425186883471272571584527774678281751555888574682357426851325345836652747766213147576232361565265732622555845228663366264336513253831153627788664661186188741125125181427717435718815224288767168548352217152342388717887542445476812783564457353314281554668864632526433775312612222843476163416557217353888651747582536334544356743338524556241666531251524615451774383628438115757774412473178723753234664274456381347282288662156436563852113683486323443116327627342337147474434725261167665285188283613122464846258753585712372261437731646737141183842538634541668223277437838847238157732273715786712224527417887413153237128567815187255566433773275257826478871456737385684878866177831275268862525422541115887363755771156141263411535335482327581844821224812757861562721858478231573512768551827744823877882512361287335247348623775241618521653762362756557586874155225167618153371153777516882466878253831836324136322742237345111625125178462761268323533166544326878453181743851452672687123541218725622683645782535465366287327858136363537173883548636855654255654451764278238478423727171465647274331415138844755736512625788624123254453324468848368287676355336618752658285656253772626118547268744875814231825718137444887675566635222342384574554887474823475728882232858476532187533825338817467571473482642826361568752758286822646645426217844567443385815264344568721486882444758284645858358426384314111812387863147334236277774322438478624177473823833657116217457386835113842711214265846666217614357554825716776781162687115835166478842522266525338467268638743281245316238751174826484134874218334765274728886855585687786276228662276555524866415562447635147674858372783386516251412744455223375713853882547334332425537256252743115184825745345454687211785865846453514775811423852668628773174485616754443251523341817556762811247433564751567812568424167265848678643127644512757651767351744473146326787817678525368664415854834356512383167176271126557728868482652847754328543624876334322357488344136127578842115648261153762756256438384877675328713818742124411754341617273612652847533412853114138711537565331283142373565533116676716238463272143357375535813277528717724648621825723843241427266757588661638631863837247351664128465143275125718182876472545826561175153534712621578736647211554532737656787836174633886477588858687261758628873846315651468122887465456477376667167344346158725652717523421784561184188782473815186557751415727837187173277268744166513258411311271574863651232617468384242162158114587733423584116835126321185656723553765785212812274713878255733748283773864721137575543524116452147326373662462288351662148475348246562714847136668382315221425846383441581363716645463151253353852163123256286467122873118844348515414476166418776675846746877487615644426137113746432673436743564248276888481641374228137413648724342187147778876155568478624282535483313641514361824532583518632877325571346744413855771787662531157676367848151323481441374216228674812763468451466526314322618663764526751366423742463662443418653714558383884837772117822258782172584123477442826187571413173286116475423346435214663471675661372686835258512733366311875413521371863255175855342572336874315141616628273475661734637126413626654422111157534564616267578746322631782787646761217732278762283422412651282565346671814852167161327154748152656135622263131434132834827771113415843751121761273433734367148476561823635618686631878816722421174772144372221471577145734536245378581677786544658163612235555681616764324575117521552442657334814657141217665134276181356141247323127715343745861561386172783374683144367523225873623376136152487462788352233637158857631833172788667561374353158824446231515644327744763814226777222532358424525388473334752146837757643582121221755758712122661256627647845536673755745814771853222856347887635622253523587373362456687274844275417328645461416313672486557866273812835573674122378385857415738226178614632631735752123764856835541261531414474631733166567737142255828138144517256154777231145837526128184212836348726311411663585284261282354187846376824152416626134123255324228713112527337181361643634256344825386524354723446271451546271668768221522151812528331375513645223142761636333455448574112865284464312342664125651275643418625137365161237338852675718121682715638385128748315461127631658545724324826557487612663112167683231368732174888361584414677214426221188864354386823458884414713235242737321346117841818346387611281361783834581385143633367248727552611581548644858233231111853325445284355771373882874575631537243767854512316513751814144716672534426537458175421417423868547416427267823481133231678835481386545432281245814787752745462187418852732512161548835776173857788662521432348353323766135437364216167212382833855787512724242532334612842684176533381242562482322682543623727142347457275431622757817341277878271583411551672564334755771347823873228872841783285377533526127466354143244384521824663822684246743347267657675363716718137148783724516168446571822512265676535513624421331685676414322456118536867316181168384142164875286727414812567374861445548616323614141282827752748853164115484664635724523188841535848128228543626767835332335378541412431155324511164614743448183211123634323371487528568874778751732612784232247656524577535567322257347327312677416465287425846232553464785154584317483745448623575772866533558671185471121643566722514337348227883411267213556817168587433322761122735655862368165832741647775856745167564486362432662342221673834532354481787841167812121758247216382712571475152547356432823433138361535333415265167767538868872878618233264486163741361337733172652641637664471432268252641128782152774552556685778364244346885157333747513868524411535825314471813257877862523831173645276335323384182545714717872843431758157886163834464852418581823665337684281478436837738685454421628577817615655325257787148176157674544811546675361127572486267643156454268543166744583438125876278584616562534728847277758117382252622345257616586172756754253465533444625475715513384876182418568878842551247458678243548651514567533487478324758344685361337342265214628512586522551174773576711876147885624443285861148314651648413818477872877465578116442223124121867426621537643628434342244555627251587617478441343444565586757671681262678521622625672311873557587374147618637558134854623564433731842612645182164456577445854817187358284611567521738671862462732627343474481327312765758655815274564517857658545333575557658336651712564138551254417651435325656636781784628445443327357551623455782777828853117818712354483618877132523575753343183235345665231633885811555781781671321557771751745146252717576252353365744788541251766627463774871876557844568584647178432766865563888771237754228186546774561734273767857433712712232771344123182168731538821157842131221378588783445117186168723636625444361258154561166468322674126556874665362684471124123287368621378442575725751532641835652324428834287736128162843812544763815764883446154557723718833161467825461425276348281161131147744513628461545361271254164135518531862515561863872664667741352822577435152147413331714275367231375237638514111144774387582414243323753724784885378775311512882831316584673768867522142783152855843662135278166527788844841213384662442628633872457323724584734866116778427326528856818357617784162511458851568265855447885465847788812786423485542756252757358745482247858755111856267354756736343266828814272366684428562244848263554422841746412521567688744436683712856846387548366283746341675656742226842663368155348631317863354565736681837413687361311264488513285822162422752274822637147118884153321468354143244413324684271355587681276656571682122151545262736263352627453523472586327545325117444313127168467584726531161377172528781314341755344516674417226134174711245871572842678628587787365446527623461534483461176563368571332661826648275187763578813561551487445728484611483722418453567323127518215263378631441473611232481312838523511431574523848862721812662288458213352478334331178231167886783728724523555145751343321715255184175244458633828858851581273372656866373346334786677717525721686481287277417886362122561753837233723631147814331113828112851442733653466334656464463133285845185361374676128462865868855446625328147112473338286671365776447645611177326626345678616281515376813672221442243312168654465668436484573234417414317248686754466113232151462823418234258545873348663464522378321218375336884738752618237155174674618813688732664512531116312645726626642522468721671641177252431767433385232774748574372163813878783688322186241668183868851215745225113873514362741213285713457566234283548543734454733421625178368777688551534845437336167376223657227141188254657287764688371345264838818632157567354721728454646211262731835781235474426438418288715658653887871224663873523448431182534773672363436484616657566533482831268163125732883665122452611581567274472625811847446382537383421735873712883153417284843748241821477458655521866376477732326325163774348582355884338268112318812741341316233782732428125252713184638725218444237448857243424384633375785381721322726536846162145338877224265887145415211717628323711328716353737468155113562453643472357651514142527274532346512516748372343746665173483537874245476461674825372476484726322682846354387441678584341632124254145731765621455824327156328614615357815574676777376178421452438824475148266755358657518625554422561141637171225277115644786218153133266674382576377552837527431414787455552611435751141417827854133735471251361756537267638432541884438522348182444237887511762851861882723683534556123763826667662432511541884355556844885252185847165238725212663134478615575176553162644332465464873751118323667842222242857512851815183831854728831722876734686687786255847438378862238578848574864248431273167162755418454822164188143626134511685783747285163578144323176133262458433228582718524555723133421335265264624862823167526526565568783365446541687882424233585213182824548888558435366356573283162751375261726636721555874251566628556168242471152274437454266518451667647483465343753267375835542525848554487888741257876146311228673318445835775682451662467581435556161551718468372855212127731173658422453157675757367546888884361367221226852236851472161638252758667656142824576325487452464328373127687771318147356713816317833212867736554234531316384585478418353215437818462152787844443188685113355246143725184555811375845243437648823882517824124712413523436312283288445317328786686625167654441421331727558284831213315762272334156747563458513633864217835235581762635631682651123134434617357142764417143818826876485565357667725853336627275871271747831763555751188722546781825158558536857241758737652317116672234754428331475864646547115663553544856586385458688321721344551722377616133247114645676727874632821686156372752333562218616176868514321524666515552343311674467338422271526844488331236211317216245858871664271718733218248651141536532365483461413671311343847162472517114356314343831164438832668786386388185488683365777367435171368615615714441376864456216374487157685763826625317414783481586413837172371142338248325535385882772678874584674684325548164263152276744818347464783146821186417284767834558865352323871881331748283676618385486628527674666347837353583428667111158486721252121443613525578488452367628312413524881252416312853751577228155327363457584885156442166557154642275472817186568873756517423454648387148755272278265723622664747743627211637816528767118746237127141766845716168646414458772541444482282632115845373688373436447577654514712815514848766176482355782858388586646117674458718814554445345381635313771773763668285236642867131232518687545517586616441544344434373218163224643121652475566178227537412684758756788116361848561824462681673358115866313467322424567384462683261657157485884212355654117844832864668265354342533168266136578362618326728848613178163663381887764653114555533431413466666622215342512654316556356561333562752172282864482714516753853276332245855722336214524316658577372152624215188425747835662335151852284671871778138523158773454456446764867513475134448184848452786441536884312712725722225737113326336635132818157331528712218446241711173741425358867527335276562618777737778462138776328844666534572825718726828467216757884524167851181168331844431223863334616568568373313116421237535435882227245648866844655378738172241468743127172765782435475381424226267478846281768528226726824143428337732541274246135716168231462465747668487827381747524134142377538186815313238368221231614418852757427655164512573613661821715657488864437884153178153144282753313216321216372351353533643588826313845633361252277141472442341532813465358174253864663827617732522738152858175247575533111854773165637781715821644817878642138332585443584175727275763647521221176322531817276874252283814636731468323373817563154363364413645788687536623276453741774825278435485724173487713287742334448157657846154462252432822154455862747282714111222435224335442118248836723284763115284386736886527212751178266434528854387557825733868176658388428874461836334866261744211116627522658658377735238213324382864485367383217177351241578678773372425325242818442453261217683872721142262333174285511381758123715476681534538827245264241223581747474537676548151576186678684665273613172713418433633417846271617138144872288782155463734543523183614762887766148346336672111176453731678462765661188634512518212551278185868212717742887125116868177853221781147723672281712154868422644471244183361271826133535437667626642721124217811524564273151583234825623744514353425414766835818866248571811146355812188652813411221168221732227314571445645583374171163653544462536572123447665761747778734841781545323536451634774562222515355116545767223276554677711126323731251637458434656221616375127167173723534534611823851675356751535514566181521217213247464725847215558334876586124488843374848456623615168435747354754653226762111162545287768255646122884646427221845451344231481168865188412223824221252644671457451856567376347656773523156113444236853777123875334675577357363683187436845314743862286827725752766676876467527772661338177353435261757372181544311184612513756141283521376316746523884642186466576734463163724275564615721166775165528786737355478541628773562767385375537121667382861848212845775178583114277666564528285181535743758131214862624242627827147337361248351624785866218116472812438453475256583756466144642513745652665781216453786266517767143375413187628134411626346221124158651836767376726575378616665761483483148576228574663288835428258275458364155661646526521728642355861414868246766538871653584436178738283266851674548412462462161141568883344313436363571327282866838588773321234567875584814281481418387386171433727146447736662613318784583213272156687241426444672361471667586752187713451755231123152785321885655212453238627428782647268334561172283225157816573346134654211878168187563124367613472556835138686382135437464332236453743825842277251684447547762216277475631755631711822375132847236661331173556584345171558441833681488587528248661735751462451781436442283774446481855683717886616347236272523263237484645281561852632151313635625255585775842634566663418338881473518277648518525888285738624733683667442857711116885238616258127175485687145722177611362856568244384828484872251831627871346857383445372448524624372631664156555886422563185223222472527588344543243165464853344188812362316421712617322466612277267115282544374452243371657542358236453363682633824743878338562244755673123783244635684276248354788434635624515137214523333335422124457138271654271313233536644846153752441162256276166178654224521713126731616324882616333324766423435264244543648468283484567871328416477542413446365372437383372372631451387348843231361888233422385141246566561774777467157318588618373146618477833378255882512472121174652518853387228467685713622421745663667654142188465126158286247415642217673778482181765374678486131846464428367544271628743482184145773822758568687665218455351724863255446864538852573287633662258545655413452354568574326371563487653261166317432341778277744153725737745243672876522538823134175525461651125263585615663666271413126772788473432511246424787415426185841875288146231748875486847624817613282613372135621231431862353781218845373256424417456553385644352846442526755316623434461114248131641583838566887242584355678247278834887844232125741363436352748648238674714865226354284885141611681665655728132723743337813571226248722163675757242142583547568754713561837221882762131182815882148315158577247322585311482151852753158873686238345466573654418382254752182762316821268511112647763345144381427678313328121351116187518587336264612684583587655164872441371556137884344263615322371535528674154448761857738457685347561414518853816183572126753183841571617618661146884283847756222346827485132136682722263158771562833667261141676837642127552324417441364177123766346528134733363624416815473731162781654713111247588386485478552437464452732416855552262625231241844185237178462134716844264857143457142558183353314165588584468771574486312317588686223172185833157287714134464181318573452142126716546156261338366882246122328681324676288283186776862348167134635771286115174638475221724584857112121787362444843524363322764274483138735135236548665863741335462445334717431745678745736528233867487878787468887742484153745233857743382735782573633815878258424865211144533477326667752477371466883187126135864682274487783538235212574383578525631668258418187668786832841583233781723321735683343812285842864241888882874251544444331575647258225211867388424524554668833325317425572427128132554681574722323751327225834547768788846135236518281123672745528267168438822248258866215478687215678523574617374867555783728546715736172227656243565154133853641773242454338811867143543547777553876278217765827433457617153527762251767451823763617234146364622646381736725767115428888276627478727757246628521133627516867776354711521272211324373113616242476857575384574273317277525848184448763483747835833641252746422756343673634487176311186342573625351675654183466257357552715747178627243358565377761636563724522581174316333536121248466445867783486537227241522586513354412241288858447252218138378361627813527524224836626678524242888771112851842432111447161482281735745617412612478423178184821813254335232183721737136686774442436555148845733565478115441855687351524278357615841426832123243575614172624555646484177855361385753862713227683837416888485232667162212233668658468265765484352134815727754726664256434843465267635224681743118285835118315538483672222355562287442147647212827783125717334251854635581476538125323464886378362441181615427126525732837635232363448268377776588778847717181284244132638214734718363721526616631218842853143171177168737568237758758612675181158466426263773537228156235481586141442137812335653338127236373854188258656871122442813735528771371765782445254487586548682648464457614728144141566221281834567671247588158564337841635727742321432251656671713567346778364553212377153687767631255813745882278426727757514163275375326873661368552414264347356581788447621714661426513836438285764717376136584212763732262251337775271873318321563455443555678224642416684536358562215236662384625553883355577545726816644878117534521725178811553744525173178782851133231237243237276674542532783885725815688627436161235385235132671862412178783265877277751161217813721874434657845731516374114552733582135166767442568866863438373337432648185886624611314327245265177318724164746866664285626718464784443758311814362657826266213558618855672442535617566783471446373378413617661887622481618448236262177128773542124223883514177411578277163386257548545555864622748357231435252575236487654733863718287811273341534761635715113151845485521441563541371452837838583243464125137483176733835478435421753752134841827611853212712443284576641745784554621616477582512825651431561833452182616236473272624453511518515712652465663677828861322347358546612514172126775362111784671241867637813612158656854843177612356185673658765736283554523488385815233485448528817854476422351526116115325247244141157387588242527238631354635288811446755746517427351852285675362465657332552484876643763181583731812712666576662346688888627887156813236785258388555514166863445645157714828547518131244518743823187647116862478482266326267456766337718582341845253472717621157657247754857153634558736664661116536111485867232353836558685616155432462664454358553875745175357812118872486783727762416825252647728313218854715388481242453234665262283145235654271384116476741867273244654386424441551388141146461445512812644755727524237283415546717864715772331183562172883554331687767452655432677843243164454538873324248472556122486311415535423724248787821322437737775438647876462146418241851783241741311218723526337257841138324185736814585724447838434483112122584843317778384657656654654835651742163826843875411276528568744838216188471745876161378846727311886256611745833541344388572477134758428264757777418847783617212586515232264613254124561531347267474113881352633635752411212128467834323825758278351267388257111564553555216625327434331745523668782753444672324127241784456481361253556835726235518385711258753564721578632142578218758532426433822646578472548538114657765218267437156111235744624776538741454363768146235671152236558411253558833544235683464554811822634855545865177527552164552323273548288655361282553456713642625878765717235225341683441461233731474634444165211845756753874236862335441727414287471655621114556656382178778358763745177784811576875171664661244577252512682756144623486828644188572712561723134463413681635635288368233365374672182857181651778463182478513177777641148771757612611728441314288553537215277635883644378875384326378156475854423473877465663265588165764836337373336241716681748733216258553186131614752232276735743538485481261247374413531874455418324431246737626166185253368716384417522812643821625332367714544854413651784786457147742632643717344371328488642543136268431721525613744451835651151373883862183351514645718874878624824216476318435465156554127656117585241542142558251573872453134774164177857624516454321455734273275651126875816548777781843462356523634378571242776556321554758511448547516587463288727571835743586251111431374558232685657843268884662412215532422377753323348285232178281411622411253584775484674582577235287447221461827164248658817486825426848173144557678515213812611843233647818154877848165336254218238463838742711652357556873363773788678653543575762223871717882231768642583521154776244332627882147568334553337723136238161766631187687628112574754443441187751536882463344588664125421415842682357485485754427576288718483258355264314756815751468826855877778186274268836178173674341584873847256571234547426772275835481475211835628161772226344513722856143716464147175217718865357218764252557857336544884776168785743855717563416757223382115552225462658412428661452772658822184542376824762638654818862531738751857241273456132288272834867851615586525826331248124323471862813252473145675465843375628473573588747718143258643176326254523868511857758264627123751146554557465161713336787367228338685746554726817846576211533435485165486778536326655433473635835418648483446748511113121351551761742351662343788861268815136124785536653587443431227114377678724374628847388632753231327783665751227773622582433342444823256342831727246862215426621713287488382873484282468521353841835765361467424833137588673546248773821836747887351626672586326855844826386756573324178217541282486757274861525456822713354841288574183256868121473331356637647265672613411818127141773515466854433361626414376752548758163758868266884632261413556248123117682577766316528361586817578756325431727215866751778535874838556851842463856342886818214256722517668576578773677338355642124272615524878736612535236662863857734456441424284344534386154126868361624756233334386473154166758356337711283483737533738846327351873431156116475317642243765466422552537344678778612432478522334276411814368856674783831588788326837627122623877426621446135624376644253171375126455161748112411672253152288667473576362262163746833335152127722741464356564447616681215464853287845362885186436213388536187467858583357857517737256176482388682611842787247881413777236423887125725155746246854833623822871683832413147468734225273445533368353468764277251373486717131433355282735353148743188465765877863458548232215681165518256721217511264157837514261737624155775213231612185513181663515562118336658476355773153736144386417112773427144388664646422742547158716244625121853136765518431333723214363744511828352783433423612672114155412168183342274583738887768861122287287287375432674644471865136853758264183312461711817612275467713686283183381346137888674331167147634133332166665522258273358231878878273145478816283727621334482175571572788686175337115737244118363137216743446648251631234282787116874324365118122655374411571151425726841442411646761876135186745376671735542316848144746823386885554583756654848813354615112481823148372756256617618246347577348251158834516376757732533457743467541433551288861421364571864327668778644764467568386625327448873757682278322138654386537837536518347533454323888384116411331877822665676625165611267527341345116864118472174225838642276867547312612628434526225771815283623443272324833185673852727844716216585337671186534586468268346536355874351136658725551446477117413682784786433114665671124475335281466422754132285733434848162287882518472844661313543513568485751827865121283223244462628465522323166245355244564661711326767866831655757363488555613634877474774821182715715657874824413222466857534521152674148531867351466758572638644563573536588325132313232151884152125438684686385233523327477584452165532812387571783232138554881753176373168837627586681653217854243566841843362131716572758643736681444515542625785548485126311665661282312573623344841252758522248355185311673666662674828576782473888278344272854737281644121227313282773212353415221851433421842837216234821231458542354266357251131321613715446157284511843657637468441471582384214332822384137561524637487623714717816732315668682754668287578556423782188562431226351231177611122387586543753762267387862343315244814324381644866455248148471864131463512246588812473877826878173275445326676666864333632185184378888232785237772865845154651757323345182314158325516172224216687888587436417311557366188575242611537166426856513416712338511661783318827518831866527741467445584522211836831524332676471234653711627672161138228486735745211157226854752531453452732825583314676347481241383388262361588725381575134255854244167851811552746815277381842166138832883625781552168565356133435185354325862127785432524236176685882438626878635764686768573828527321358847561624253741458747688287223174817548152116752316132652564848315668335543228145655831154148546213713456375876428868644225778456346641844448171643527188543246576317813426381855323188653666332623428726443215443622343521811178136568871382432763887325116772651177575661411677643172658433268233886223331168431738612511824446613424424521263323273881172433764173224573386624618588564463641727131254483122272147811157483464744451818877216172447541378383473538575271156654568421427154152421145553635167424356168771343185755322342747551153351844145142586138858111536513548581664865174784356324176714657674321416825111213735218586138457885833385882123352448115317354613363512787666558463464111783263251572367784556413756753833728215831756243367815351833383365353425552773111516113263267585687118654588561227887774111556785565136346261777577436443264844181668482677453377781412427772886824521655287286865165714587474245314341736545847415586623557842268511358524714512236488452215133548545583568686721536267348527578513628643313182654336267631577414473126447657738833646526544852166367123877347136882621861136338166767233636281786638423535736733426386338148134716346556748423431736461165544172425647333872284864621784854423632762614517686781333177473882852718871186863328423426265334236417312872675673574526214446856284185774127282451863684634185712371458532841283358228358667815213725737583317514523127572448865826586455473818822384758881853254864375471767761658644331383624172266424562845872515145632683266884632158848516357827182332345644665876777787234873588672566147325418184743353451666545482273564715722265287481367883148823358631817684811721743643523512746771466345413175266216168421354112125745175484577857665573215612474668234571814481364477417845251326217252222367361318226612883125413277316244131167658426216575622131537347647432287115633182263432275811472324581312642146261173352428564313722423684488262866363224237567721668687146831724551438528465724581438831634373684447368863552867571574313642662123828513827262831654175425373454752373562158822583867225654865111847362444836773278857533688256851444377741425748415267484171735471515388112545476618525883536241287336383547755233754318362556635265784725587877253271764138462875235314844432213287765345772646365556856851766156841465628784277734225771554361554367435475551383312761576168732757317812157147475337156634313558175763147748257776552335332686385548723354371735482671873158455615287284638412526652441423137587724511573121873328531368242887576587622534687526478263186853467234585725785357862445422727724544554743422524811225427515477517834125454675672763113563177535487811413542118256267422485255715352363526624311836445585272657774177148377728778334748436368144423274728682356878831843368331748737221256847642284285222222885738321313586437617733352143387877411211468868311641143723742681517234247732732483266457438567378688223816145855262873326248767346325673886558673531838651537138427875842567212462264288728328221575266483711656771358836455146285673422468535818812552277777284632641556575166634771867315731314535281847225878833831337521611624248883724463865825637475426257243243421537881183625153662356777152164724563672621223271375651435317371627173844136342146678382578327188584754354655568234231178811626363358755782354174456254755584272523465655586884416232313552851713726482541246347836757211172258232741552472176746532148724838818251826152836622844845876376845521278441644372175566722246881128736642416414372444776886554325385838766474513353732427848372761864856361722753215354645668726571532868126288211415476121157725448646244834845875231442214846581151345747233482661724632236443225251714323232485477611521332543765715784227137542813652741565857285775367631474372324187252634244788375757763817131416138862383438336822465755334345154841746778623161317548173267363434577766414422527363347654252212531114455714625453446278682512732512544281523764775213177835278388251368487645724332618288764383378813647472654753873583568515883881234868741826324664577245615682774862723824243665231615276723611664846214337662844122341578856583174361764381585654877543584254228555688678444661127878717381712634853732472815827463351788746118452415348231683281473263143411125356842452536556265577452718471123767523443255472586118846885116341668113478184821221223517167368445313356826867186778136784386831138324113416266852521261261561441373351687372646485568356328154277123648246361616333755287263272648624644861642132876513378664448427442715876776875312631367618651152842516881255685538555133855561655576233355784143818162464826163326641635275388646551316755432461142715471628373535532877522424418375784732351361714687226358465811546678572518258385116718343741864388357165886586616446167433178525242517114521286412715627526247737878456515682412278727576761653212754275652552476457873568634625557166318464328835723776611777113766287114233786447423154738215283863648838217753451636666356773668611583224165862112375862328283224374313665333234837582621341538127154827351541643283435556278147553523447263213223435647336811453772183518486724757388772432274552621847576237311116674787623664816681454737367137783843465647118347371548363176553844877427828753657412118373535581554353254646678176886421771331882287463523772458648376155255751831647688143774447346648352414516331666331224638568814536646113484561781828382715715755581857817334111762687547138421835122573375443428655411373821624283441665778137164575224565534524767583141158636144262385545167151521885567231412838757478675587341316533846684756688216662381222827261562817483738741477326315256171714655414476427536865662774448588122562575834747244367252613223735848716116542355458364412723765851737217858185317335442531867261851741236212413212356276333156657682775413614634536254557521282861245486636666221513857478158355141646875353144752657452266668241815268482615741823435518872865825112152338411367212462326423115376282182817535426551443151127246732631487356887311852226328641383536373617466817188772561242777281587765223878448434341855248835645588726174128622126728881851235441323881388832633111111653672825614814611653435743813645573742118518545577432662837758427482212228763187711664537123825632553662515614162738242848842274435318431857164344237183884722355852785557364484777676543131822477636873676726282626177851848256831384362144433682866653454341141648273486781736128782684737738413181436176628187534713246686544853682366517217531817383553823367334536747654177877664611587584137446232864473766314661381241658154443611717672322455274215737711754284762381587613322488673434416585677727537114186836862711827536162858463248658858326113252811376138673166683587288486412368486266644826676813472232748666513771425523241827255445371347865741862121345116728138667658222616351262266463635335867644355585887824616111343463161782384414658421577277373336638475525135182113767273172121341378817111376547581115473245378424465273826242867167275581685343751845734555427275118338818531475276655626357143348233733453481617344872674278278268423355512638164238456562188662663618265185813122836582656234412462364561231148883642774217527652457522615465365686574184716348555113333467114241764361421624648246541574852176153456585567612323636752823121423435775418748647822654445733642674238746431315284138144234587653676626351456643115821118455877252424226728581752128788712388172383315654213354466843873671677476464515132357451652856134158714221272771616113278141641753781272818747865276262165711875235244411472768456164266724717182372422538323327624617141416326424653775424715534615411421257468885378581877282652818512334176636862722878617531332353272256831623752528455815145771758844343812757118525773456541623277362368454222764158354575646832725857583572637781623671312811773347283257381761588463484255311212576888784546386238545661367177745512147512317527542225827623254474675413333152726617868446628166235443663848287434322852384312171222575441338673262434553671557546452813835561586631152131173526223423673811856378452562461327811848776247748477174316511348711782778251844548353351162613543532666352412566188185263138383553486132833256563443658828548461421288153138672815367731475383131248122224658858546488443642855836544326787743314813526477633885255357633577725325236572314364755181854818751847562835133251545721816167813617552322885817838121227574375225667588744335685566675433827221656213774277443811665274274185131457336721254252274463871856421132861213237348444871335121331313258378567183644242244443276273568184621538581862755316234528765741723842517665742242762323715846138183341167322436328211156642152851842555156816215225281525727623467681285573218727816668821678633262742166356835383138536383733248131736533883527782344161154345747838348247451338231617611711374844737653187187627648276767713853335751266543122855564346633877827511376612128774141432761138627178264734616272372885242745774572185448875383437337817783836483353714362787226641286845848674811842374164843326813617882565133677572185441468768218885648848376645844174282665275732365267165411854168557324518678866451834564231247258551777352348851614131444264846763521145276647718222836141511355276371457738528547616122647431857545352232174614245743676226222143377161345616221362648152378544762377318878357355425177722736773112512166188524232431228458146113234131341268343573354268164334624777528515148356278686368663744273131557162167486423145863823312362837731143473671685858241246434336121171284463117381272782515835387863182285215132618758625377714362571688816578646283752355713281347174172386832656688732167477578186252482172723273735848757363267854658534626112384555411834747583668582651331136252667452732252525141826845625841726627462687526622773274716861847577434251622381238453881276872616218635363368373837274382176826537266414436334226112137383155365757484517236655125885625886284665425832452686385784123527736864472641876132357583685827417785318164253462666423773142757344464441826838215524853853717533875386478732348866158315372215118615323883736681182883227388516564165162344678655554763367727272556128243377818564627514486361223784675628221134212823167355173833467518526386416568543367443545477227231538377684348543156322556477367127612462564125382133774583888757324527775773322175361725784431768322265641648856481148687737565414271425478365662442411751617724238346475477622465613458281567187682431545317555782237123761646515455268611533667887318646371188231746424146324771576212741515488561878374172265283514754415125648436365344526245266542148327442372627258372883318543315346772176757631557723642565513146422376862715437276547615865245574313116244386772445823415671348661666857353632745113111678618546371635267512653734735418166881385328532478324366326467462137753145868774662618486843656458711212665243316476183676628324762573728111336872342526844573838274235633635431625443617762134628133313575285757488331213815477146176442621215622545333234747323837362431522748514783172163564426258168181735782747246128363715186184664457613576167665367525635412577884461428732558784615347475548418415457136353837365451885526566467671183775765362876574235758255131618884237662731287567753665837167664244111881878783575557252637211225683477435115434855747661181778144388112328831885266884661357333327238136178777152627275227517811481313572526123881768157525362812118454575357244387853661717114364826345561152156743771866344772343866281883117753632325121285378343662456633578542671852162565281436368832378231165261133286415527245144843532545762745761417638241322775648868543476553661441225254442673278213512264242852131225536484778318626444534635438427742187535123655385648272682313773182412621875122653561716516582756686465431147713265726543788844311627361334225188676181378841371418735835814274658458453154157758748118366775721453815371353247773484486165527351616315141331218255254856274676647147518312178611776748554682353234684572651226315586213572424786263376223242532756574712621686478467188178248185748276127786411447724623343342772461273867377422811148873264158366172864763514562563436453525222588673251427541454666828342568427156178182422257685484884127656553856733645861386783882451235846288578841483233572767613683873363381772787217136818671626512814834672557344246447413244712162551577731265651414812236526388415563113136612627618823542846786113174384825756633372243836673874377577875252481727118317636132468874642364114262668568448612824423877271352637512464165846738371574853175728565472755121781625643715164355278624566778524584224185673664772421844337281325637214367235628532623656532653383764217681238253122154623588574852847626516412418325656672541686887631272782848547178446677444243876681531482455734765243577867836262322462563245273664628422814236468663428711325352624333424544386324262112714345577611823167113782714175855456614462534532347387565643245542718353265225321755572743236457535236453672274756471355645171414827628176361456182234457623763761533587775827387176588452387574343353712461281667136138767586636138118725812667242514487326555827725677867213626764824312146338277625228188351614252288453683661413621588522357364541573522885182834181812714541685628172747414516616664544164641713777662463581331564125182226314352284117857171116275671563211212132282184783461747126661152643852777576132845886787162134715761825668148834183647244124212678446862845535812775661267357423166721874234734828275858774533518782858361423871785887563183313883677372333576326873345642843383267585435658182441672813186376568438667714778624357545755251426425148886844813817422164248287515771466132127375137814125812463116743443655251664434543114816217743754125282365377388665655433224151538228822418848575121364372685625636535746447382554381325352738882622752462887114218747364216113832623838735536826587481712178443521864854214765224134112821824773846187425752471543831232774868228435346788537648642632518115587517732561531165615777616563837658242165278742112566236784674526481384772466534451764418574642352182448372815121284214768284428234337865233334123434626585614224637224446776747287231576726345667151511754238128832557218538153768571532155136136858668238715257713466668373542316361858731415885832365284225325627613683381855248163682661783454235262112256461364318446233468857232342236761567184618332545211523624533726841325776376517177746777212378874512248574734613174738558347312352576212575123137111123556354481344624778152834731743685171488481532676672444527268444658665325847712545651712385818862847535636224365812858758448146747557731418842437381245671655135457347158513423343337513647727153853655366617618583451434775377544675223741311361375374762186837856464428146143762886443448788584317318821581866633476377857723821622318858123456781288182441447471311263775182677787464668678337324812386566344181583866414484225323522867568574234576734373652288217381857475884123486424781578586386447285452823258877354177544344555471636824816585486785326742716322481648218567164424153337414713147773661533218557623553368551432316343313571212131186381845584382125143161177252351556542717846115328623377713815632483331731112648217416374344874633133615775846553474118584658122181357835288752888316856872881788732684271735824812383582647427111276654743815165282252186748546331156246417614281476372663283825682863673241366374578755761238488683531445268714863727452265274741153216424162555743358563782862837225657622566131153188165257422814565817152734546722425112558418453153438663733275434884646677331582815763715221333622783437757816164627587761753782867876763221833164721663458437682156713732485787366333545274611576236218424584186676721335462521234451152527524353844134241482262226888746668182183555541645453672832812578255451673836552214278142233151663278213283858636221134343528372656276466757338811123144416811276582217871478371143454561762858315236672781674486688745738172678388567413172582837712182866784781647284488427212852757821681748811378785434325126382651426561227323862213534742532474126648462754126886856381221124436767712554635334126625414225558842478645167317666114645126348744188128536153781281622283827868164866585266523332311235584852727873537745566781682321868122264662884475187777517348442154247515471428537463324758651562675514612721378736224266718755631347318157155645827444734776845131567241855536687448578636837587322735777116675286225674474718632711158725574263474127253513273328831563237514557528182453367256255813385142464786713147141563258656643746151518788168544386662213577758231241785368373417145853327753673667413148847758633825823688134866617168634415148132521681558625383266738748454423272217761783137124684575286338654765328318578476543662286831855818542148616515866344161733774175118878748251654174446438317773353751712337168466427231267116113485232334732648186826113564364311481624764147544815515463568656716445832382746317455118852527865318468667558841685813467676473612557582346832162638562441745213837754855358253175548748434812212746713414831214465328358326516757238131531551687228722451176328232115768781855347836167665214124285442122674317716474326534133423637846624125582348342111564875858341877358525716441227875334525256225651268715421513186231378812583235852431142757657471265753828882453382365242824628415577541436273468665346244373773117852652475383256452643231515523118865178617681483567881617831236734812748325425742217838773715575645528527138371411311878768114667736758338756867667623516226341231576215287845327671117385631713467747364728816772552372724562517383785264662418552456218255413282276354437567284386616238365555431266375138857157375888533257412485623326367641267634584761311528287278713356861484823311387121638427185486773833374372127788558411726155611688687785813352314325366668226855822312568514432734151734326817261161826743876238642471778278863648646137435725441377435341814767422282831272785521333554325318241838181724654225815337768886867131118186558541737432214114317162263642154175767612478885183718673824736784347267126523722168637185135622755643222543732614364641324552644375383457416246661715843888264357757281616327685745136322314336222587357551486541711513311744522447331286343616684745745836847658583622115366645285648387878425475643544246427534217717313315553674618624433385663243138831473427877556868764412733686688433472241583858445876735115344254388473213487317566846513146232657665675822428345546857242555387261438586485321541246821766863388437354684333376457648783271426835462811341564871645382361178772435576316331727558285382811474673812233835874341226415366822441746651521715335436134351552763457271742538168562842477241176438747773642545463354162743742254234888823744351383755648881125216282754137264718245316312471651841225285172257243461111324446126238425523745328666364362463774454165227467516533856358266541183458162475845555542274281424528835487316851125667752777838342831571426663372555382575465461264888686451488554251828223728743812472224364876868151578752413783641828825411617571244721867226582341342848628434427816661482712843677733311351353158776485673547715355586377424635374124252465833257626345256526222321412528712627485186322641333262762184862714251731157823823215173373346586622461176864833223737123154674346243357651214225267141142521821345347218271688825478474385384187337247133153841575181528625135528338743228224848457466448127271164125117826361722628351833326381413513162658446628322362213812518865862717348111618735523873744382855735331317377827271447778328164354877518113565171232626627282626772543221576784567316147556685263383574338864487838538142621284238556588473583372835735164754247284758464523721811281764246631246287215554815613378426526371162686577131181327655565836352327284542315121243867282644475567486717617218731774514478726444858238866746438217538864543257213733438114756474886588821232123855367366627163423768761758121123541147375287511477321366377171412165814238855681522328853427234342583516467646665887558812325645565725233884361551465165754188555213676645263884882285471756428538867312875265334541146632438357852472331824146286852531474371272326257718363558345167213317885284515463856312816411881887686876414641535333433731731586465253463833874276525868648468112587514484758246515863744457168324142281333235555648681145712341415681431413854288267262428623432581281341283623638423352378332447267287327388658361662781688584422741638268682635382537666336635725556533218132667722354674157615357587577577655214188467878345547886752361242367767775234725378245526614484527411344567841444128377128157286816612254825668747666144621135785266878442678358186687258862512725424335113637516176768633544423132125532882352626118142156115317276341586388562772772147358556374114634353271154748114518155658751378375361476456434775671723784433432668663425657236361143383712144827454755132721246247577424388787211546245137112733657181531165572546237737248172456223845528776837322262585464325114488621684184586611536174225783818771521126576824167342734174375731882661375576541172335683781164168885134648861678717146176784766766145266764717358258567743876563833251884174811783345736125642612124123522662627152532318464514463744283321287153883673626653681844161863658432421655624378325421884172846881147713341645376425274573347133617275218344537341457873227687637446534225268153615584575824676587857348736433663888444546675212883636676828253252786327883214363343661332324518474226575883888321283386287514253565883258555254278268757318775718315282713327613321355152636217115684462761316238862146316137514143246383178713488561861631177477413712711757284722727572378184812882168712332664712668754464722171754435664511572624361713752821615725877317153835152618174846874252626557123372874754638734183214446267566715654236368348325646777454827567741231457188131255838445786654237227824638382424574425664431711332234264284185411552187537278378267674768265476437337757575211137752848525668863763344162388158412662574756751616637212317173831617836162644774254664762568522658252458681638251576668586525451343278625677364377652671887441244553174523155244826274764675468771258272283617218723116442177536642231141372668322627832216828548563564368136134753656563235151614136131641314488725268553767716866678641642776638346783245685873516537578754436121717672826114164725343277581813151427271886184273666885655413317327815584354367535382433144872773533287274311731156311674678736251135851857642747245218344236512325867533486547853448174463784632875647676117884718424762221381478828377754524185817451243867876545571355424878241846651824723266322427665131144118462243682517316256871273257634262375515462368672348334641163586472613856778717848832363131186715875862545526816551756261875626214766871488786523565882856224882847685415372144351456347836126371148356585688682416747642354548341845584261716826682232423447478463833126783255822641553514142848848221415721371212236286586472163854612354457468558747566822134336483587633446153846454152765864614863743753527573228384566664214287248431782341237236254827847137658583247433253865656728611223557514785687623675222563281318364781871421847312584656575376261358453164155546766738456182478424156468742113748128135412551562664811752168813822835233485412265533328273174443532755752462285728226734148158478555717845264422314877157663362334814315878322512566843721746576134264628656567485278537228873343655887768583132251814622276211446635578217417634321451347855118341887577125855854188633425683336373241618214756235784723473612411424575462554236426587813774172134248456217687448756326514678753766663181461361823545813131175368615662674422264485683815114211776124282681564174253448726247773574518445412871812846884317153172148684212158758841311736313617572546526728784455285745265243851621443721786883478653276487754422266427584851367833837664228532754266873877874744736561688523464876565761265318781226373814241335153385128551288222516516672472846235434456473161832547213147742422662717422687476532122286866778625783511731264887676883346882553618165725713288663132853628772753626858588725458723625654517778722526173635246725644216236122864623187456541822583664387155153282411344864656672845474251423333473364346773146342875157788188344347367146151754547814381881882475727683384448561421456222812628887636663174681638445136824182777222685863143772736816687774828742116663566822781186736511683373451726141533678787461787557553887546351161838877481238883627664437738835635571828148685836484716381241518237236617566261776837623344365377756526874667455715276567814212587326175217121381728245113421341767445653535525684267477486531314158372644286422748374133455272674273426512744634653633847155881425327647728377714773634216415214743216884888431764717775435646177887354721758484831418152583887457881162113652655763767686653485874587364681742128362841563572236383135552345247672763581825618234413628828434188272517286737347454426364326483877787324157483884346664263577835675216678584474877222335541133667385638678774347138368584514542337711734428414324821875812455558846881488418487786541642874588581275885413152512325486254523533337776187318536654861346617637551118425845715141513637355785656357818451641221841871673852477281547584524213357145723175321716462326338525722385774872124851216335145586248365723862148145255755126575355782441487583263455617218866153347257387724612646314684641123846768357136216377667114268277532814411868671124847428833426761637277875814522613525267478263345131524775346214533141458465466841613171662153212565522235767232288264787613884747466275422231426184474221315371273461818732841618644635433156643178641631571321272322555437212168114743452473262111335465252465146271426632658855557282727631334842581834115867223811748522342783652712823265877844638557482537764642513426172473846568114827764715156114762526877514211518476563774175527471177718321876875313576182214148724314783587383724738514485566548865155465281547832458887255468163664212687743616542417874532144117588467218248861677376686417815624227615331273131757276834371728812748868584856817436775222368861614612266528821623117331433426176523436257146728278828522568244585815221182361258726648812426876233322181324316777552412651355535866165787887563128266143634386753466626512168362844525888875651664345655738632526847513182536481712166326278487663523783853353318213534228258835843383384686686316656178862531135135451486135663138734486548658762164673456583715455454118642684787236268787745876533813574643278662355841675873633883841322386268865255214783753122813612537225727381821856838211187167232128216636784551843833881787226187817578824371462422472437746545142561157553351518317221814525786148655576713534462273743862541842876145782214247332676673714588777287363553667267435654611161615184437753286611111645616771547116551142821386314337814352813674446211313137734267635227125184114624752655114582824546325825836465846163271615517128421678277424665348364314862731333481874783851185138468532662715612486845382116511123673855685863128373813711522233582753428676544472773728768582527458667385641188344326861736577481436265431546232634126258425334836621863583326158457738772862164416451721212424138723757635738875621468446384787445487231471864513648254778338661316688436524841315831375217772567247686425418516685624814448566477854555783623372521816157675188571116373641548566267841424884543658846818643281864435477843167834887655586512318743156452727527514165684145243776673434216557424437676747462616175327435152511611574338772622488887447124761742566151834613812862422224567323175442414572477345276465782633547242348486211144558883443312333616812447268248385382316584437487157818323216243437664384616243628216745136316651224613178463734412272671182726535856831776736866252186155837656223566651113616173847554224585376284555566683462353725287223711431573215462768511577154875226165671162614542468233148484625328554661782343241168434841322521266548575718171787636732733651367627576234783867312881131185133585128618678533454228832817217436635355238153185126876876384126446163382267234645114757284615141624848762555875285332726376547226571254478547233663544247583172618432765431243286416582316312443175738468151168476285833334445741334832716821468247437761825486575878251517552275878452251468124577161721343451125562783731488426221367183417216634578837877778217211161872488232576241135774362177855818757367283816811255582366252428454877667654325132556483115826852426843615247457273827888482144855648627388614437476376822683188223782577557556185783172841356735225173415751531218174847633326585781711383446234718283155187436113271828321643123648845222664164143141633786717668631252437482886817872221787333816888287146736534822214351184141638248613183622271181226212365335326777774723882167776166881234622416741838825182566343643652783841385484143522775511862746826887623822333675833254847172442726574576626672241535536335261322166574852281812165627426832663446254316535226431567811664787747433521263782212758656483443724664525618555775637511211241233685624375841485667534324815128354826425566315773382433521222154523834476127366566715756765642281473487256183328616243836561476222166843257551226542411137742453266827248655744554315275851666188377752734315622227436872155334337114873171617481334888764364653264538586567474413563446543677111161121743271587841852376515116728727562756525876742866686864553212857718437885565463713468821317258836878634857561542487156253868733586136223141285842344838876735275557346247866227358727715188374736321145718221553414354531567557248341581563235546842184112863687328854112184644188884165753187576172552657682267155252734111857335476343278112876417382768721244482283112628717524141883732756762677188751747268361455788871337215811583534156574586735681774262632577517811665684167613372468512451311762784364461311315447417251841823763816351141767172728314385164411417113224857635524445845157588336117435472354763323577788618348141758117838176328344633681384218842752612318187522855832831457142284454272251618515685788581811278382316282258216473127647645431428356836757445158432883336861567411263448388864567756685443211826113347873731384638415626814565365361135115714274773855625142365788562748326411845247678843776133176861558216812532356722758162436628465456646465658441276288813374327831582827551481278558456754873475512663287844122166528384348584744176466856357125557143547417777882687841533445166467432842386742161562525761136441253343568753121263485548618143157153176867268856855525186151433835714281884878275687814575378378838348134433447174572818237262624657352781712271234384824487561115586474421617332466835164837884124458762517442274846251323168562686541482342166532844865843856635158258151256875738333583448127231213627638134676316226461138552248471354834382678417625425142252211713385482368868612251454541427517714413548234264886612153682527857465671418776842512774751868664211748478124627568527588642527645788744346777621363687253471354481444775121542665514436661656813816881263324182642642377424612663337115137513347218317228256433333243443364388626626488425235257142483778815773455764413885267863712151642376372765816762178873724135766654373238776133142886277357541266661584537312316463751573116121676712765353584711775711211528554834177374518886631821617328344634718547618364887656723525246375756381256671778615183415586722464283778227212763337465882374536816352773513476481833583437841647144232258467213763232261835756351648524462857285124317167543735885857162753333842142847357642717468765121351315425678112543334236171653457488837265235186138118727848275584254871454621438336825461475811326724456538332345833268274464466715851571514387767272718315728218682658476576163742837528781717467518224562244525375216683564367685324637552161514625484747845314843875747845565145644785576727878747127877444655226316534213686562848737642716835352874112866482555238863711464686545652726252367887575552668614168531473117315764678741164545627537675652458832181572648211662285138314218163373417262288736853123141552268463463286475455626628188145738673681616324538656488818861254778127675374743318128665238341335284663811342678251727146842661251684574365531156115418781136658478713141364366844454141213575584145346163416767273353364377834817112415322165741765762216651227587535167864527562148836363141818452838633141584767437234148136663865515478545588418772376856684577817443163622638226422727446863353763176448378386618876682155182847853566251156624318848724383277668833318124752248144883482466834573714322354567548614623731421537815847868383727355727711527537477677162167311745487774432855653537132844775555265548682884161173556756385557264315265131514227574825525762545645262442262273117286657885156572764577752878881366847747121347422578455211268816587148711744355528424642668325642446834177424665567633565584227338538136547572218548585652734634357227568436513236186338112542666455723633154464138752362583325652348577573526835877625831832414334352111263422176845115787648173267345458311265538111271124178885438642537425865845863564643518743473543145318783358323754714754783724738368215146174138477723868347327211772886662164122751756641278868117814562368746532614455268132613283628553437156884136218173814238162676835387156235745724722784717166335862644366847286277464554827552745675112763353877375636838454284763361226548546434614366812182534432454775615828176578236835758382114243623771784113183783137824231655573462526127886242545834127148657814135785284875188388687268134532115352471535115132167555468578771865124736447657831476178646572575253246552834476432736481728874268588842144278782672377451127445154155225334271154353267261171373357836536515626757134557236262463853265886125482314756666153766237454611222632568621474141236741352633442624531113246228382643368518444273636483313735632455783323357345324834252513762877554455757283421573668585763631553885261658867125187557214477213168553327824674773615436532127824748237526654118161678113714563623336257733843756572482367781663882527161152123732566464758825875244551333444677542348331387446156177222255683124318748434348642321212337584865386847787322743175266318225223727163827346582811223751433641883415457287747617671665775151218255651471332787626681768441132544275384883672544261256657762573611281341527768856877324187826246332466278135822265116573364675878285711464632758165328626772466355515648112357754483421665518214634888765161446452751536174154233373866434575731666625188565547876368623136526378827237271645213516564477716482454377683663354224867422267417624123488362657771766564451218161563477321556134177682846666564327236154278578586136271726561668483755248267134483117781223388215277388375754214224661773167658363618517271661688265811826753376224274653631786361761758285581823331766635462115152714721448412435477721454562733123282283213346551343158262355326533428748142457257223131835457627638521281316622541514666863342275283277378557472438755253174367477455354775528338375486412818613245446822134163152317155822473764827476581566868661263634868226325223462437772457262414587471717478683515844776681541685511551856585843516585855878545763875671841544755521766331855242531115781721866274322551656831274852237375878584126777853623432584323112315834383577458472732641677155785144244583314843123256832487843257572187187573582477731176741256671588458874333136821578263345573642644243535545383422117388757787153544716167356615715312257636218254511274671141587727113443754476434523876882621418878884361624357765654421273888744433761587888366818152745645625668113657427425726688773456585267738783644453635182858852327511454434615726275372247713112458515815845234712416337114164321367538283413778681323771387788523332751251235111718777824353822315286373485663753642281536837628235553768136818348257277461388778145377351657542564452214784448343477373144418653657847185288131178864738875827284644214624333417864454853415384364785766856317164216567827117445871163758288656734456227634578634611184668534814821532155578148278255527542618161731686214775484125244168838812644621412481186167678285655342526657788814621386755741116217355131816467785824566616764185431181776184548137254782538817247827883662626686217647551521142733538765114443153886448482216448418352533866253122456483671384832426666834345526762217546562635834512351382554312588113666515788258852151213648457858883653843725416572618638542447844266256218646814744724464568468453248555471177563511644212625637642284712771683624785813274326777854341287357381745836321428683578573612584131664237555686265281118175882185268552115532855564645258528738812737687252354576842134183662252415744636438584348158237481373434614737252711285767657564583515842123887674781874648266582743813775165848178173224186443387385574287347246722138217848368687852831632523884773664254257227678771843765162545572884478887656324875853465286754611128115547868336538546166417878551237482776778143156468671464188678527783431412476121157662766414453212125723162434115842625465517785186378343455463136318726164823278877518754212474111152335786625614235176584342428572424864343611684283523153262721868435565733782872211213188367834736171633878773684672681674474536182165831867244372457275383653423625724762383681515331868832844263454512387637685137684384547532763874228673233683562617728342588787876845837284211141478323533278567338727384625425154863125341317631277167448647351326328558546475113816657422217228841583554782467458182588727218783523467714641553233373861671537888232623155211483472364141263822715664176564323621427828832384244317473141577411553144814714274225634115128858524426574154248632711861443388356465634216387221117282215244141753186473718581357664755476747578788216273112214642124637178784643631845312283653462514417847423745445146335252164234335238567723134234834518323715335457112761633753846353882262765816767554587863134351558443578676424375315718612234756761727655117485186363211121512248727653361118378563553552378551143715212768713431485427545257258115575761356661618816631843738348867215246861846436261865324747432223436684674484772865466552382573483252216315783676374835735854283575482133572546862134517261281227354566781615118278641227713782324676135263361347378151442736638184663848273374772677783532385812437623342346625878438652858258358282233136715361878752627681235122212114482884652634862332321538718621265832186336374524326435326345838522638422748787338533762155658527556457233228618563545322887425831566185367817532473114761377731877283786356211844215387383275231628515336616617785332761157547618366466237564844544377473716344337841654176277687736535873324744218345343166516376116365386637125148274257817213821546633116777471184411866477775785238438666211276634481638573658362774742268887536165118156188873261625538577847615825487284653678712831878441212454518185462635473245384844832267235734447287735246446541133225185675771518458641384844644665242761125175677352381352776348531474275658837624558351518734454513527273243525867568628512654161123717272248443261138688551834143823382225255133212171634486457728155864148358336412231568172753434627188682624161254226785636148217177846165278855474733813563584152553231514411645184174317337743685674635746827123587678528853838557638323662278517364835732731746675274247356873571868428387178426135158852226564367378768544575355767453345818885671666282546732374271512657657836858378248733831448255132767656823522433412464275161361556888687118858768613722388136248547227177641583251512447356632585423777323162454414355141471538747183834717644142363744472412173783752212672156741224538471387544726617572744138117232131255621258731344528687515427582264785522262255374843468112536351781422235426555148153153723544681733626735571652357531512833368413444674243864216538676471473384334413734631217741718423237466551687166411237112658366678483617476241852574342227144477424655488714868724727611212528156423632521666617686566274315872321553474147778258812386634882621645653264842534522422742232813844218275341513632768114234372345462356872513562428428418817613845277533753726134536274244571465658413778737231584827888416254688645671533416132431838831553582132686726736441358352212824778152887561313553678621511461747624513436224278424142758715741377448457636245654767614581145644557281834447581164435551665316632247212243617765325741713184663546833754124517118273231241564584287268642188555573566386421471866671544421173587514841648673475144265377872332158253727655651234557245531461646352548172347352423713436171214738851537652257856344353151667252714466343224521345346643471312443856386518631752856637865683414761188726388462364116481137165422536268417122755326653765262661884616214626867288465617882767827854665143418285247375235313755351674855383822282638323721716137686258777146826176115156146646223517483353544853231636417743451612256443414851871854384165872113824637675231724878115273671752751373757861658114112638554346187126152448511282588637654775554432637878516285443822757213624256131785442761465364245626887471278738171366478575186368835333427181815887315853238756418812813328326573363558877531267637888821528876278435184743551371248737756741157167366326678477552232626357138886474123456414751148217511823877526685842342734435425234235124575812555381233263674366346827872273388784517532788783236888674517837474815354584241468227753223163527867211536651314376663151137355128536251575525612474346448242423442266322843214827443157648782745652188248521827728735368255388854658371333181842582637353778645777425515422463623785581575118384115556784112441636255873454178571612187488284233745418445453461142346283773315357757418814852632566342538526747584141822114776138331254112486224677471546632835534641622856645674528343866265327753432326157236654575542735434878838152423243578633254344576842531486335328547416428823877642481511844433186417756625128443558626462471781212574232483334351383136774821631785874123156583387252846318373127276684611425354271162663666565354673158187374767572727675487831168864758377332275837782112562267252516512834728423757137742564171217537687768471666235171837446123546475758776743263441511341623176672764642486471632478473445451778853336564728542386235547773561533765223262226852672815651824636674382328187488667764816667242718885234634271117541617375288146633325645751736382153787477172422643877564224813715751558163265446434346337785745321446141146546286387122567112344155451154675165751358266846237244476458587211346477383676151541885311238618344842446665437288254774766414437488248826136446332766824361764311784753255865268453125152218286273337521724332846715376556143422455377855455515886222746321633765163435661886453762825344117152637532115751216451622816124731658523338775882347375466768227874713733771836237655268853441335375555548331123775218181144237752387518538231588611566676186562767334247167787754427742222744677416877474361616724218427282668161737543666613145562224831764777556111844524828243424574262558162668764385454178471435833254651834772277423887435546748124585375733552381358118624315826836521211225322856564215516684454616476515786658115422142427433711525765322176584235416348188348186571213872541821322853558453163686764163783552674545712354326675133431485442626631327223542871573884538774113645474265231428143112433416477618147464154783317324536744253683584347413553781228348181215464431734542887836625341828837244374437452626471753444235285878114516353134748534765755335833488841546518688612745832565124164125148416845866217711553135247516671327112315576436473753876484142264662487123666112854327667147335388445847374872773225877483385422345816635783547858224138857286337587337564437288712274276653483722354667221845536712725452482634766844725476146476565281336161153414785134414153626883122787418721788151267663612411371558116148184716473246513323141253758221631216555536257485416272454146216787321761555164212888712822613887428566572787275162523412533587446483122886374557725753123843777424332577826142438774183476334263263421378844784462847743275368686845668334771726166552746163612363538561617681866628553266536331653566534153155484448753273822877814234541523762216758166124378631258371182377585272754456851524515243243142617282166478744783824435725811166486688316847116485548687847614458625322676476286626272676154268287331587343133364558427138522132835685421488625741788568222482684754463112141324384121838744814485417715678612212264864717385312522467833813778565668128525126865662534772656324586165626384672225368426643342367174252852426314517448771662817365686852761251617442171753124756436788145121757568567223525861311158551132724541483325346734562536288753642113128412135475437357643328354261478488358557167518833362257362828564561522888645318632557854143616223745134865515538372273357535344637787885552765461355672215385725314114335578776727475353782462562178268683362624557771131844181865678527824783747624476446556321778317261348538166415726272511645575152176115513321563376247228746343127487855887651878314182662353335765346733387453188464337534834272312154372684688283636446516874622827123752226733213456264562844283584765656141357618176434684623843176652425252872871631651737232281753154676434388462114276166875132834162622742757665244551245718617115143284448873457528331471346234435654257756662281271238731523165516628555738624433412485457331881258275435166416457654811631788472466815172783535152447277257712648386464653665847183562483831212181447771754147823371478471481555361747738831788123232765774536163755214284843455634577135278583864152542832843526642444863538783367173243447686161265368327763186514588583338582578726345782187425731778678648587545736325282133526652338264721544627425844117838681483476757878157451641227822447586544286641525452182723512725575835355678741143753132182231778878271618388254248448324247373741664315811726832843464874668854576686276135634578433536154656175744238532114533266135782863542173215138316435743142672574837624881513213445176386235371461812382427735778174371184387335432232863525151657752862361261364253351662847511386341443428226233554687543381188421434776457771633283653858838567572135362241824311262533225168537681833225713744737641158336885635385366754215387632434337823253442178435825442272124254123147383556511762112718172213564777313268886833631886584362687143574587283746776465281337284668886843368618357612381124581866856327344225221857676745815812483181725733122766541235322782637586345525886761184714116352234851384743118646725883364686726872616157165818347434762831678376127434316766452715357427446171653282288835332428645176812265347256173145368227143357825732133728223486624682216588151241443671283543322341537857854664667616733756174875835431376348776354517773267255525164252783432754314183118782843255562726761822143428436165231445618842225286488512451654346852227213132221646587383165468761553434444533386812612615713485421751862874321861842178636562274856823227518566356262714466675637338316137852277662442787223485235633435881125543687743332567777122334724582246512155187842788682724363317532248125674264444111758873813632656564683778881858144517786268832354681638334381851322761444147261518561253267254842737873376768721443438445342336525463667154813627166662212142381816871453741222575243138881136177535371553241457848822717872585316584326241283656648588457213481226518724748625446485812427364155712744735766827524224124757233428654244671178542831138412885746618778726585548647451367456832367223285554175528451276888657472863358412578236142756552177535738654562438848621513227413256488162285437188667424613213585315828747347224671478555773743441582562113774328137574768248154113256157412813476314476387314372316161527367323123152457354382588866874327755124488242846173382274443561353535861575745541438514657662763625868837267682735756838685537811284256574353383437726656826474464576244345262575854681188436744818578673716124271621635235527514458386474173512534353876235876888837532141886726723211581748447137557732437711582778514588413813467217141787444382258518228176373761565322756285167187826574328365188231313188385113561888187184384324152121846227141111618424524615216868631448751831682218662242338183655781372372417538513474223282457114733566726241766165183123335685245418747562215863473771671241461671652474565763166112148232764743515718836128336634518522365755172223216825827357414833661343521748731428871365773366513314555385767826462275453745466616728328515154312585137827555882361268175472728637212618435182828512521128816561452227267436578248317471866638435523146855524236763661354834863185486152324713476643445848812322727288437467426157162633228427268675637432271585368132424162778456876421517553758668562564718652148672618535511246211864115171274158885728165186473136516115181283753414817574827332873388467574751616157515164757613547585143578355132478152417768733658268287728472336788118853732717671668446855777564264168323588164132635332825432755728721776758752122324173523754116888634818752638852158827351631126851117884166667834532857881618412162757235517457772664434214711817783373781335673746251646626764521544584574858831525356827312634658727242636281323547286634866313782375545361863826333115458751748846257442545736236436648635316261553187823463145785226258476268832382671186861216635321828235784171255725222383563161733623882116282474883773715768747778138846525758825218251736377266265721472654226644628488784521884576274116437717241746425844113221735816546184518551712163431742582672413712251165753828163113353132847328212275456758335336528587688226147736463124157346665535184816376238463375756287854266643181438213726242386623477882652842671657548824124782111456338273352174717656265211171286485311386182477854537128733813552757887217155846161743433774618582471262863254821112815271222261425232887311618468656742863651752372161552582235162423566742827712878132252164347178333887275556752425511477528327857326614366627721342178532531835724185232858442455354874146615347754866133664728122111471241445381674857735374775885111784748164783255647233222627877557112624251275616228412348116563848611286811247756417332213858741472516854677434272612882743484442368855488313486554623587446757674371735523462284235542182447272611458612824734223447356456875225722688481861853367788145718822554438847632714782371772133131756865761381246636524618563463528723118615738288721846584517851512777358782717655451616767521561445871458516173377455237551674328873525545821257688373747565814752214665827844421424654212417853734817588354413441576814745516871161786738831772888356437847612315175664327812261786448711232462161324745513628588218641761823281787368481733678355331817866353148835771524857474116764337523523476631787844682658116538151328467636675341665842458272647445472752586721877438372288131474823767624415251164663758453461837815474881516271646688544456211112245242353676418777638741562532316536638556384272612376433552773216865732262656436665315336512822278738125847582854182684141238457817818213823778384124425547241811786373675524258622634275666663313147465637748671544637765187435718226786231667788868445555165526448724487262122675528232448887612541181517476544182675528225172316373181537257537713135553257455753158123887732367561733124521282514473462814612538318577145725872481683581131853481427787461624731556512565661616624213626375737473131857534362544651673426858414674461388376541523357688855882435438455154625443378117118285114517224731217623156537487124522143865845633264536888618227375251116267636854167454184575371882513838768234547841841415614453521528155165285158154751337364486457131386823474451585385138568771373373661825421141468848883471515483451528637642445141886244752412446465138761614275762552847747878386565513261357544786656437883888255763781782546685157457256426337575721416637363534861783514737352534371821356668263823263622147857486544576744437728612871252657466626235776838667348213225451284465245331878526847537556182862324588787473485756521465742188286316875631146223844887267347364165351588354176361436241644246514145664611218483246727572666426487862142227755675136752627856452827138821453837431775127578875237647518345544354143421747433656277847562283337717641684244515234538473362552132813868863321813162867881156858746781756184755167135775456753443128115661253335284343478254115464161217388228718813357764171586861882371818856456642135431541816152281857413245778688818131621185212356114128564211711661642347837751532811564555532367413333185477587457211232485587137838338543163767345868214434334236656576883736352728446788872462734483752212837778371835534441524131813788848626322115637167781858656532585434666834413775664336883553468113245438448734361468258271127175858461424156458216188566645141616353351366667655354277552133153377374416671515147136777651836362765713241352423883276153725148885473763588417317523387636847416622657817525445716213536237147711875443384715876366626348211677345585575832576823275866557523324461627286115756151347864383674117166555363515871125567516762842648365567428117165373143486671812548155564461874173386315668731671243481717553861865565638318343467614682227421114621854582485612248275386788515844116253863413376812411246617818378652154365351641787513343731634311565862284228765625526881568111136533418577464113364824572578342561527266874451376745313236622578636151625121747238625517368233753255336717573313332482387777763275765125862867757816683542134828563161367232817665142865165264681887182524612144218312678812371446346168585311787388526417342455246853763318145775387115531362856312547545456184283811223256322642766322433131221276215482281851814286145156147756567126885687477767173684368244857338688355781577483327455145132832512517774718324326163636246186357565441512583135447611182412246683815832672644384631711821711446434586762516633185243814575631141518842113432647833234473822533558244452365446811338634526776612632264151574764884433745281752634717321337425562621865271266188171567562321547315453577665432148753511412522852257223855158268714262278132373215687878285178568652548558347354834372317564531113357873774528628244141516836613135731678141627688664722212572472652731612473348875167355163826283463113211212281484285313565372385386527347234864148675112211145665384785375377673327828211712445641271428144772713362877565628281178186687145834851655272651345141128677558722775546134865816271278754366257185346851146314823687668616387217433785465885154831654632161541358337442136613783765388462423128648281313141128413688635546827488815846827838836715636341513442448144442742712277657452422423334287387278365474326158866767781226626245177682683155857515175714542356461781145141213133547735288475677765448848161174417277486381868413857748426431531328654181144675141422431671738437113518371655321138862646678338135145141722414124862742478118828431784772173282558318257157628538567626722216123824535317771488326278467554356328368861647486387613225676163461884777753567816534455188783611788877631586154664716125155425162151523347141176267766432531246143152172556355837422655828818611675454615887582314578667234264788414532232187288517272552175254265328512417286254532486282724887128866816386577817757544325412223776434754278178834445776133344328832124148814517113381811381428873275255226374254473271868572568844131623151563872866853526644335718442756571568635337381134264642583435753711443173577552664614531861512783544518566472225582625717728114837488845641562781858218557555827434427648666542314274248562261113425856883244372418574241154232561655421435433538387477271583356488581631753776713211627744278875714564628684364251233666281748388453881558843868157435621765412844313354828323788587761826253154445447848532816736624362687881115646411163752532358356522477187528338843827776863715536465241618283786255831327375787442636453473668142314344762842452581736262217778818113476367114831173616773331382382315618466558557884258578677464362832778432186453547283132875812265843553633144487824387142648765336672542725825623243556727615814633584675236468688615184832172555712235358686663383488877686542187762414474116836376332611452227614542158435228554254124235124782253457866588215286585518776256147344712436414533373511187728521421552311612264258471485777486114258851176861376871621367664375456437136723437175244877445841445777657316446224418814744315841525151587382861422117253678274713477243578745557665571525431577486862235661335718133144684413352145737465117647247522157518442312872738336252673235312252663513482671271766511821151232165385335181214352672473145267162561784418186583622455761344717634721727726535567618853146434257348332171431176424228484783278113183766521575334615351731155655632678436455545826227382866247677542271876441638111816168371727372481255768547248386513582543867274718356821732432647114738736314652656445275184768336778757478552487788864468523255743625521243172727324738781113376325543627522464216671236314638131272543815213328644467154427372111252227338337313745242651248125637718343866684537258184115616276126121114444713278257635786571243512372725753277118532227565555576622583245253531583762528641818346415786862335172338557183788424161321816218414514125474761468473511561357884822388847172127863831857643548612441481217161534733528881324844684331427284844387346845844187267616418287688787538724174574382727458147764443263254357775372151763366823857344265312148664461523731478665266284721125658713752734762418523342384366482172854286571487156377516814223172373383127757353156774234653651458488461322644628367781823245381736348167212361366625417778467257453156746671677428666224122834441653147712451388866574656541152687812448684321374518174415512642212155175224817138813354562616527638887175266166824328472553315644611427182315557851814266154387667776345133688185655237814333766311535245264171553662532524511382852443651237841227346588655442547452634616212371624141863217338765614145462361433533386667467845513877232337447467483151866667878847357587812418247252327652421114541856654864758475563838241256671363147442886514757127633325173776172582752222383165834756331367873613875783632884287338868665531811766443612562156471144512261327114618845183365863647215332121877348718125112665141451151837126427167176584422122665736421388531443717256565376521711422517162272232844312846367344386217122715877773228111646231636154723588257135827835565288858651113338842614314756824543145168145138534684882367136177162465348512462441581433336512327252655263425236356818188658582474545632641363885655265237154812323755181123173515732842757744543835284763141861554654581342785655332768178746762883158158738462514742356336873731735611681386434517381823377636311871526313625162862831864387137773542243221687542414111581814473444537556685228351657476564528531584115661253777521337752211733877877225311285654656232821613856623234735542774211531477445342173813145366545535245384738338213411414112723873517186466811571836864145376365532137744212758557312425814342461661422532327848761672863313148776887112241634377345248246427412681552345175221555735756157854131775187385516568753414611566148634383128676118875882368325676358647627652352321428342341578712743324156248142773474678613374268457533824737813822378728254637233556847837687141274656347761284551712614541144628752485233858472268315428271322284834524576181213111327336367247647786715424212563215138732356681275753361451677618318843145415128362368422578128856542522133312238466167233785756227166248565488413168458445671483866582227754411367173586162262228474565117254382656715228415377733255436228644471252468371414874868527231211658332565283714318685226131127748472518224285533153674384163427453623284311834836254351364676123354331462422514281676628754436627752884746887174643172636265747324128553858424784218362678333222231256247771238646578714637625835841262145158673347377727278433887121721483152153441373666611111477266375376458683472758531287846633827243877737766128662387278412414237473335618122844773657585435725361663734712886431482722362524756724114444618823858787882754788577644158178172843528378261521275841342821528378631635252314487582383575643242111834425353463237226262312675463253665812314284116471526742187421746113781328776185656112326225266463453481435215641156875387574227534461524281665342148375638717631167138148863417278773453433716861743434121327743431643846833526662614112714358588333524827746273343411656143667612633172465281481487123787162682752731876253267314226253635785676751845362257885163688523213676132123345452826121456118826871583462655157751233334635587783717752886283147766661231741285546428577314268622474416247766481788627515138581738345651144758537511421523542582273717528511453371123142186822238421737488442448447728525727187585648577187742483835887575372112643282651414451353823366552633456672444255357481773676138282284762173214731248374342524548438713671887147162868451223563225763232887312215367374182326344831314181831747875371678672316665755765825651255788433482527884431123374741556612644641762656261742161551373644774848876748235268175717842816352442311642552648653814455646338278476441653537481771825441254162618328454717226282271735721273851588485843754141865545283762763838845145171555227462857214182151515125631445536461366656223187155337756767131434426783112461773475757214874673235872778885761128362177376624134377466835568672267345261412561158512282427442268681874885658725462651418323548115281548724663271325153674817525781725414537726827284458828436526655863125813554464465336831687131676587775216311327556241875477423243626287585536377668627353762255123718268432135687661463411536685676668513372842415528851573822486758778624878126347281258117126383237711384766581128782318112717632522217684823672351287286346128237158725886351186212182625483176772331838222837515774523623621365268857541748361818436368542345853425376836864651254881821654346258747241784865872176138711312836562372262255758557331767817161427225448355786458247835385218211633864755315642636435135342233385647634335881654813575226838335751333756323878176812523222714351371353654828424124833212183527222257178562128487581862666875467658267282814541368165838684712677252661731772878775845512883721213368327113267115366523678851677872524172314125322661187852188444612761561148571443428815165628186233381815838531572543251388317886876673235758774738622441376635481155467621667647628454547227457534172558376251878681145536448313677518537218364734815265421447722372232843546681772465526652414338552423644123787614265887218337254182135533723671263468358848735744856211458424111424328114877527821336842881817118427127122734322422126862768531242848451614613844722477354374368231262818868834823237854188283175688851724714865274141225645123587271332323665754325333867165884728723611677328642742288563268647311266332653685545755422648661556271871126252626288437662245862556654635842763287137865656841765481858123371285665553287487565174737746734458125647526862785184546872525667546261623376265762775561433555128613361368882234423546376512214734167212766881488453176617874837185872658454253118164444738382112311476187411781487717887427688585511718321315115553442351671646356317348146656763213117176717444744335818561827215265678121731824447835552541126513267771431522622272636457566826811677386354226484554818635427615734264865474724241616348857424817182177583162155673427413715812611415834287311565826324565255383144616726324341788237582766363364644183425725565487826184481727258357686738476113784261266325641272616481818618554647662153586221378187185623267348162267586714643513177541737357835128734225645613561482464266631743486715141516468527452445278853782278683311557576178334822414654578117145262188383286647485537845726336741618245564385611823624865568828871412154151386378322614337738777587361645762218137718388772636546178744381216271566463446221534732714218236814551864277856828158846327826564536324747581758754728427818336688137267187178135264675566468144644561835414463578157512857427558863662323321678341172763622277145162261568286637785673141855735333258763683165525274155752132525512578824782453767243737647568228844584173738763587847477234223776846314684331556146542362553712212843177112736246852185217257174367543423316827363247638552138454124336656124747153883525627334733855587788333745215426554487731723472757751632317421275522875154857744525355183835528832135347344225546748328668731774557277127286652182183631511558524318777687331246856328846852421621385134537248811233773448381122257626771364254344228534461133824446232227331735843756868873734378887771511383744281474447432736485864835121412581615628558682411684683865563637458131675552462332667654222584131813862284141261116763284118428168433222325118115483477475484882515786124335716423351215414714564723472562153454686467114452825186485353434771826653151216464863368412455888651376647465162535538275321776747566212654327242384368711654818753544315417327223641282226626363583524731257871311421218547365384523665677545343355176847642232351536661535221456652826686871616626183252434445212363618183231462172153886846524621651356531574752664623823562844675411264888345267631522848721775483215365268485225874648576262411682334721355547232512131727855174723352886557337274454442784483444538635186881328722865155552415755488685452473135227331745683235444424658767767388778761438428864473448136521325354747851488453481613313551587774267831668372526456374541366142234126751487526323127548365545667236523628267516567478373536161544312644267827371675673883618334762686128772315141528618546578623873555411236482524151612335817283514625314744863178741543181475413834462846128127858628625643873366474545826825321258727352618843342712184455874615647478311361313453428764163418131575165787835246278725727737742555163258117388864825414877728662868851467883856848258653215248343788542887383177581436757138868328768168754758575537871343215287664346223285224644587232528237862885367684812176486715637547182251787537535733138476658471886123682522864524584283755564553334283121277345465774666873345237624623741372827165112681171511872114874112261663243128777518663564568146833186326327363123551514536432734633331668286565571217252865244224227282271533147768685787863452862486575284568146112257154118353117753872415418677883785882587485346514441157635485432577716353754524538382251768168734515346383711268718822667332324472813312582375355224481881133261437647484382734423528327487612612135872871161262424352781527677757443511327382544845624773521113814835153453516652231377518315563832434741216848651677237755128312522113624464418467757331837438387257486533833846433725775638234146785445417718217481678842734835675786436874784611637537467562185375825363658721751313721563373811467885831878664752114751285472288657258126551636814148665361448122814465281361621132667282216714565867286871113772847534654182555622546815863241115825356566478551462232427618426628322167416368165788187568176745376543871624271766436758356142536851858126145788583767661471314888654523834468828813341344471546412534533841542138423157563626834276541884817726458332757171373717538524875337671313487853681661474143487631285225232624883156765765275524631228432282671552835227713155538511528417533255458541427784343761572133585878474148777566656811858262137375284368744661833623678363262866256383774312114343672317233388172472466756137257275373853258736162764451233614421124121483365648426768882758811673152611184227261747614556454223285362137451364315772287843334241476675431234234778888658642746741415155748267625323754628568744552224718383234752137466138664638852188837212373553111368336676362267136527353677674772412148773655468286532866331478526481475311824743462325155713632341175665757747252154526183863156262638175455341545557336531546333464837471175735357782224764463516518327425565217646735828165372648671178346533414776145848146326845621654827837813424865778577378442476545484882833486875588877788846366566853223233776116185475345547355627181418457227783137232482287735245255257571336618428337223655276717371738537268727626248414638115514654226131572358168576628626264318626127175862744418241762485575254736641717157115128185812231442885526316167577176852223333873242751181464223137681862712161181336345172581461388846233318125117418163833676665261758756455832462448688653436651612356188287445575225682681463483388158874725841232617577371586535432886147533526454327616356118222167642212234571817738564732631586332457661675772224247327481516841682425283437551661582127735528554666886338145728435336728367271626422642325757411142623345734716215375517158511311442643136574885433148425472468223157351674264313574536661877786752554332427445764886568327163658575175823767124423646665143275141314486741243671621874457466546277687162183827658654261667388126752357234426272723211867384266522624536845334423714581886421663844154627352458741756525356481374357628525461412184326848347443577321873475225482733184125736242643336545754164344353332614385458688423665162166588782858157581236144112578785241688545556173683456834652517178757773834512777171438515425281265544513151714372382842574663656811832884871478214468223351282878643742746844562878517833522716762616857558665733681478411671134315652123886241221234261818628118335144431754832554147738786367312522632627627864444827864582187811178312748543657156518565342288816814158661835746157122322442418788764432433663378747148371171136823256166834337828373867873655354335682382371767716751325581772222442346474257114381322547536754515438147261631265714167582233388838814387852668355338274366353246284684248823515747653658472715282357643344552745366548273338658542325316633523641464883283734778571817242584857565152347381645613483317433885443654845375428875331322662126652583144277631387777818773542367184457576425145581351834755178488885618142326563517357443856515452583514733281216833464638485681521476536813833536531814713148782518268551818337672672238134173234727678461184868116821828326316477226738836828888381853842342176558247282488348375371332265131776366243372823716444144327537515718523417511552283363785358175366274535352116783131176617276713131574776646423386412638556237512235311834343672178353227547458277778468863732118135326647573117855563555848626376727273517824676343355826587276834428361168213836338822236155315756484261151141443432551826224618425447213824157187728872284631633773214585857537316384121241814757277514786528141676754868856843757377434275181224761356821664856642184518124784341866624382453777883154135211585587821358114143543755824131271615517681366442682643835315131162322157745178225155448841248226155736661778466863524275786777151548366354881357615683878534848663658382457453871451444154454322277774125431728731534636172261155743715157186648668733416331336866324426885526253213423742742234735844541768474412613884747157517782722718427554672176431343753538722667618162118314624417684554513366214716576217338766245361677522212647366174477155645362111468588721656332345257382728681414363812867267862574323562147178475466631214512766384322432346252468217828141233533154767687118256136574488168438481566345743665144683718726665364338623884336517864325883536154256238135235875368761865378152474656366585143376234826552126362317632371782785427566833142437665538637473238741517856861221654267116442455318156432225834188426786317411141623365277747724736212517858121783778314777366728286356727771855234735271624313823524815771546226216475257554446787755148284563783512223544177334221371311424618851747652266611277726823655135187162817772457233822273548742412324462111222544883171444425235154266837811261368577528637721422484287558533568326745674166274821448854527742664145373781164265276743881445578582188145623236722115382445184658735438811721463363718113378444323826474256268586443424652586584843382716111156762713235151328474718876387168745173115522553216257222557354845514721133284111786227448862463674132135111427266785218213446614764146243355172721847737238765843324535822235875636528313371742733383855734138513264785281244434334585638743664676766852145147577616846531766832525716172286621447732481247482628761537453134745228134218557486373315742221385777486867434863566567252831138614123461321424342688514364466114515553352358783568478572828588516268154378735248186612711421177751666655644838715266426235743628643425556856516131738123616568213142387854274854813815845562242453378242651726273534124277183218244164886868256568632656556746357432522374216723376237871224525468526315422151455677233255517741467257316223335564376663788271223688231828717454458723662671712242752521461716828881767115183864758667614755253113776287413461752438365747833383372152817321186845462623423722756133728312372863276157165314588782161687835688874375172313732316274748618865433757435363212418126267748785348282884236246454363641534461664273353662173487822256315413468487478456632876465581281731644571137871214463628375365114774243243741737364215233436587662253554835678413883263523763316528574833551467766773284447468187842845387315157433658864461866631884231531113546477431467262715762874843628841388132735553738875161134453156242125887428413357864636748151465637724366313317112462755737844113584831227248625438612852615676833482274685556711737528756324624823112266733261221863828516677136417235864872688756145656321833344136328777546522883435734773226588727753526845713622212271557873532127346682348312282326843446781818318175778716876725418358188756676384743721278856187188115641875614755614622373878478155571375716878558582628627623525741767427623547287431117461488868526425757218638138638543287641618121666244113523283617686467345216864554555574888361138343763374172216537783272274744677855851334155474353547335411844616713836448583178181783141235316156121722376645242212226385433188411542476247338528336835265544485221467648453314814563771345785414111572236134224561558683848155566272414723235558322347382267781215326484773815743837654842421117646873121422882854331771583318734437731732687773822551621526586848487477316151148364133684424165524168481162763688283168571647868433372857742212287412135168553586484651241352247887787364326243842114685787113567147771868588754652732426387542445771574583547511784612331781882361334644654222217337462556323541568684166248365257812733265428263288212875428835785668172524247127834282634333772245143362345727517883736865753164235538631813451728267724116168488642672642884662557441511226753784662713162235382212753541833213578435713625852232824875837346511121681832234347116281673214435543573675587587117627443451813224442475532152857485841253211283587412161866633573133757735851771321484571241565748134517768746578627173764521264144182437423276128583541518675758735178427613171586841617343777762846575325223373844672115481847117656387476715765334512751841422386872481276351854872256721833657122832645147114218324163735612278443214468378386285452635362176771117225641678865412674762156635482324747772478638784877653335762168114853761633318384161488543728436872237867887884417144168356881655437834774273671454467368135751314164442566432446581183165646634731754661121232556562867138762352816474272862737474346226664885755511585582662576521888645182277517557714677785424221674354477237654282256116328682366617715685566655877648161836764111782127562736182856453224756757843655468628137788435424788545116467572424323163122334628641841357113324343628816831862513684638216487838711662464527467335614384534377265843155266664515142462574128416861845462735855458363532681516364867212182686318843253873841346734322436383573564551827278724554885735521778213364356741723777744123665654345332656117771637528532885531631754186456242715336278474814536323478174468558272466362532872674522481534458144871677531435654173882652267742241868437567711718264146321715178673223148876864451862364414868516835211787442757521753254357768532742787318555876158145241834747638764215226325177583216886441211657277451287356226213583284874841765261356188461276136125413764542165251448383462762441677665286181623736462774558713472324744153122484612778142883237838464476757685725671274461671248785334578424513261787832866681568768224636776768828428576742858542221663428782653354222763135685577552563248371316485373346772431886228138637635474878811554767463645625657122235383871812448785757836552331453652146616841786162562224326337513464734425214777631548842271611627281318736874624478434257387431755846536225386711744756673276767423165757884364424581324533776627882246146133275581223444632151551664444627633252841875124721862816126577357543716512213385848748411265161482743288811316482372883525273832765145143633178764854872511758536217318642548226688647814556421786584427378367533567858311627617334746374767637155712428177815424757473565415311757658267635276632241484114582346778763236721471384181567586688176858843284837134144286555875783154148137137832445422243432871783353866671241172283414346484261215558233826872211211541851147154311388277875166774717581614118516285224628285541881456477585223713184253168333172726532841257417617233416315314453612816523463341621661366784818278136785688683752724552716284277752236615644536768282162457743677487165311468213282885712276424852434155717685174861242466677738872484632212675732856668314687655562684812675228121476474753224446226367433825423567866312231665456783633584713256823351474417824388533857847121673617422868337454476368138582665883345282181446774517277136861556847456236176661787215125413434778582875271846183723272488332626335423841832316555531768312141761822276846743518133116613527554243466632125433315373548881626732645475273733733127173148721458231367886735275544858323782416486224878253447682184575852612426138183125131485651178332418217871456765137144316474167218786574381143553136154717365283632376473246268567874352757434316212521734252774568662456851386667525268372238386231376162667414763458185267283515541824772582675631635722642658883872356275121288828412342217186452244767131245237145878186513224188475354178653234433118656647147853278653525588637147674347741215221655674343826676224314758748137214462762151484676724388341853433766614875832161347674368331661827375364823788424388425827172743262615164443385481338532118378686464846177324523353362172616635148413716514156147375543421141344255235786367663486128851164658272355812217664611172866861145621756813181556874182278533544263857515524536834388227247187275466387426761551551578153738654812686237522344361135882844571866685478337468865664264127465268538176666574146623141143556133673552735553567388661341312875841386446568832437155151671847233858363121571721623777854524137832754733581338812256612761234633878368687422477214444327342674168666582814613231364463213172255278448685766786781836257525437826766336873668847817628442142533278778467411185682421461345485718487112427534658712717833173521565136264186253218351224227441163676861438752168654646654268863317514644235417334568242337331252827148167674427564145268662783552825738686114466872565132267238132575112772735533448858746365367283663542734343377878833556748665582853632136125528463487668316756622871168462888886742678326853331478455188377344635754485157171128634841848461833178534641448527282373346841684818533684645366143746141712862168183153484826322513326157324277254458317661417358556268681728685146647221721623248735682464411564317626765536811783138373473411517178635875276823833766115153713522251318836278162325136317375617428556418686211213663163887527836577275724211826254136426744317822416877455447238342141331461338261765362773366886162762824647621714381245142637114352458821382437567548753182818184748717744147862336812877267647228718648251817716464353146516388875551533383661476418773131631337878683882856884245188153183135871726716182352643848824721288474235766443664547538582648357353762458663618161581518438364266224326283223236785823455458576357486175387367853245467614337664213771476724271282414245375143561544352814182227165488624385217853354552851743215651387427848632666788852835823457276885476326271558444214465661475774138721545257287628753328137363445324144558348277758152151554788837337651684373747621576532627361681536213618573154218433671416363386617175813225336766214721215544325788386377776264572533354825314454181678446223267481432528721866132216121483476286888652618715165883664311655844584566433361647316268311433883158575825358371111433431261138445363555186522582382644657757763868325472741868768631762354282487188334578572268788775127533343157682226644556216185364677128184731628353475286555758224635532672443345573163434611533852272141272272411674626274714118886287273862222851473787347615314621516811182783582476262112348712568226275862837162758531451432345236845218817672557271235875711333674762462316568377871535125615164421563464226612418323781452564166681643734112328846726823175248878554813111842433224464672816765687747728764623882148473671133267643571267385585411318373342338218267282672346756547173173316736411335184735571115528723724413253843523812236236375824286343525526867735617422726377687133452573365725385714183621256151852171114353773168547466588385857765733765221134647582811745111784137181618362642557658338811645628134254277857874615515286231413822483578142735366526213483533431641687583672377516826266578438553228145814217658446731448157614633617265355737348122633548476556873311785468718662544565574838574825552218755628448813261528274535652778421553267168472182628238415381388351377651358235316826566113783385471855887561111383151436766712311366532378458555526558833578426423636862773338571313883221728461731227865365221816286574656218853842634861458146736182236454441341474847658251844241438772226846882846472367437458253231323614168362565413715656672655784624227724847477765832665832166118572368453262614217131581456164133738732727678166561588332647227581444685261767182122645711327267278328535378177358434671313231628517461687563158868846174453235775538384721223271172455782774323563218541357645313548184278372615522136763533734275682875423641262465658678853142586475826857834742113847731615734267666138533873771734674644887824757231771144837822355776873671726215871155248846748177775118777578767848454124615514147558244152585188185486534264368721611763533237247357677164281768718576545528341762348253548626314338571742645328554265481332657647563343476725431424123622587123845761277435168721378232476888744437413855568146645657763558143443883285412313176258183145856262231146656454423744724725417182874155377633245536678157365242145141648427443655423135433127822433567411824286438412153334726651826724423512352212164366757224722151462438525442617115476265243458163313834465385763312624247553161366651766356538831613134545857654186161356628663611528544216143247515542878516733585525836311374245666421162725261333582328324445662121236868256345214183635145523425484287628411582157136232758267317474252758827682454274155142768374486643232116723346353824267715242865888266558741572564647427848143318823375731754671641578148121841842866455416764515361264235336381273534645487548142258242772467283212675722645255432856282147424635588247113385838131411672223253628313213238627212328473255277521547837857787627448153345863422146836482266888411322345813852255425154842617548241474642546758382866161237553474178354427751756124621481853267246267576162624425454554345638453765381586438866222537838563467455844111443836644514366873281133286666317562883348645141468268478722548865125151185285342855561152363265647748818134638582144251873888433824565444864523337713417783716755727433588817841771687263521755144844783351251785535343661356821115472427488575238361686738171287485534144168543275225555161285835255356463374363851276683417167254481113847462326335664812465382336383384716838532788886114348243443778328812832722367178178184347323724715665743678444342356341248487565182243516221552343175765475837417337545757578774757382818488318638243735578436518137288735626685511553177521342212681661812537155711268537627417576311386221185263346715347175823344148657436641845682826632383274374826668442412532724554683676115284762462362535327433768636483618282418533486184734777651866844861162615541258488567381186787745828688851542241284534581836721873448111151375182421571343825678621231236835532343467482451627576618788278317413448845782751375653682316744654884575755116112676816734177443518834516627188226523753362625165638281737646238577861257335818273687772223815551127741564634623588133855225447548871844476515464377663754115826515565873334742865648682787358116551128147582375525275324228726247321781341544616321723835574285786776517233618837121471647264643182418222252252161678644237662177237656732654721585561871616515885756111172434573635381322168367414225228132471421158771654587418537715628533375351838681226837581837565138426622612247851623437132447156168432357542334162315764128481264213845761661166363456828468282563834521346858356367128633247462665683787151172327776458664521644821265161648847426257172443264336853526682375636818727837842344638657436522681152813682256356736483732554388115865812223748287816286318418375472662771132641447723551287186544411648327473583875831616423136244275717553572878448211547827383371852377515481184522343632522451543471287416213332566535657713737263858618171421636376558345687215456383382814163462626647276186288837327274252584732583371556375735536152436386666585874646331714464735878617842611865138658618653183371257628576364766418361842822251832661338153436746761561423244837262214616626811347352411384774386574622373848161516313343436455278247362336883141441445354186374817612544244215258851185465683278616761272668774766746373557443214771565612376631164478632275553147712142866615323451488324548713371474242717411342357876341881875833446284111735137433123223221621622217277252422764273452473221258848727611423615674131735244836726418838847717446526218471463125633372866624568876217745858356586484677441766432222883157641186615771622754217325265246672447288466444526184532127248863727546474785743223563744334832314737533572263455428781223322518172585753546852118678367615833431671833786242327853488725477337486255434255144831245737335765622816546532733385311578473668287887618363253442673317342565554141771774685131864714535782324478566314351751517887147684525864786274218282823612276152414667613122513588481637846247385422883312437457814166431245641283378366171825725288712573247763266664463162311888546415676563456288636518736783446174323846887317241782462221455738762756422343666723566448574637622584715811863224541285141218132257638785873215358434547635635426248715183364565218538282322831522282766711727434857467316558272367254881673425767625123335353151862132188187672211673526217421267166352852488516334686116725813326618754861581231381687446514815363255652361154281766361537177324516647865172152144661438815633744427825478555458783513268612176485886212167661355363288128335642236547452287881427433445135668783524856245135153482413126553137451423237737888825226185412321235877286535433371563362813142134332711132661868135823271242355754582415548543522624683726818152527658814754273451521457755431382134624666771275214841683345131241528675861148268651486377572665333367852856571222852685544667862214158322641652724688243367254872156184258871763733723721533687884261655244387676558842662537484811845266263541353826778813357616461674362532364556832782737368813161264886778235785845284626223481223567356861525176365337826336154172773576238713481681188683857153242218787345672411428354251656147365744657823134165552173758154846437463332534581753632813525561211654846166236872345182143661457228574876568753186266468442247855773837555232531824332762176748127472386726145737761824238563472328115486167617171243255118326255126533835455261345567245177483152374644771417333785361744588552658771367175717754146122276288334878115514152583886666441251658256657365376133137752165282236248821317416711128852168675557848786836746134133687564438855445335125461773853287144274748384586265618656657576482476852846316523281626382711545683485241867288465247733624674841856561324144652262525476552156757472514668631557661228662774255853771347721863448432155233244717785871367462612325231711735373667236854716844243462143233322375117714842313487634818828121748456813367265414844415117818181513881386618326417818416866533588888577854846373164872567822857813462753327543846315567137273848375162413264228828173842651524553225163155477131134827254313424316813268773275258347163251463888251544172416882526481426423478485125224354631852682438747246783864573675257723148787462846223478544728414756722366224127736745416545452816378123714723363144351615857627413124352513438388782552224585386564616726736366813265146485685143518857336831332544244751138334242244564337351222283648757742863743218618215323213567128584357533821571487586866874355322444216167223731575273862114385248536344755234783381674444761882844645126381776122746851484283454437116686464643886588688225222364262512248321625145874563274322714555648347328878177214428842687241623326145684567378731683552143262413214664631535478314536331647747725352332142588586518243363624216642671475312221872512788732358581727532268452248366253716537584546816783735856554865246416332686154343373847561156547286778735186531565751426478744338577251661488216788486715656778644561314813834561476756483166617134751352351774482264723776517371363468381848447352618657315784716214733834447764812867364542812372662622126511666834337773838767834263164682467152251848813775645732135165312274868131526565115648548155543457725477446281386532272184327631212621221518215865173848367111226444136277717152536521247827545841424217674281328871182553873574626617563188681674451516514528152428836242171748341462627741725554547237115176627624583167628772833616216372648472716261533586478626134363534268115733483428156687181584423548441771188146812672276886847288213877857462228156261521811431327316162815786612175246717847661586714152287837786377157422387814681663588372167465277881626276543378547443346271467323182671182331871484425734876468764832112211788517156546614846824484381461526267631352872176465774818826147752374371577453781144435136646273867416131546822626131344524388385283766831278442725858817114843558715265874785174238786587877811751263652617373612282521825766732444766647542463687718516272434374457138543781656417167443555583688518433713464172784638852521571417141487345451518168535756512322233833633867134687652234582484613653835288687266683813838237285231421616543321188146146521436558366237757251836411812563266738435145587323166626713536844234266347587316361542788252843866341672282637125176865751611184387132252871678857541275823623128532743542476367133727168338211254317368266411371368135668558462763385713253382484387531485188875265453677674483578343158327323418152828454883852552736456347288264853517864336172831343837454436433371773263747642742745381784536534228246486337172355781541151311482423637421234121666431116244773181354265745357172785515775264278872884348772286435575663356434332537622386175677743128142674784613464384118237672183684738824375588635213125851631685238727325445425686865236381368548527328551767437685727544337282611517151214647574635285626415373883515585155561144268487288333688548664376511314687346126156825735413516326344463213525376574737368335137633246166487675341723326851558488313878674243443485634485141645546811448854785234464763344175638881811856842132578533534512162736787841212425548212152422284166723367385186521231113241341743234422827427241261831852675421638272143872666448423214372821654678558447674825826737342231215331875836454752414754577567554757543613348781582177113755372733277225458887124322683844278332626237641316628217877843166866217477353844322283187452454752437376167843162282267873225362111838513416464588723571687284815185116323156173162388825744845521128421473281463558551142212753535134673157612767683464574436778878457324752844364671788242876571473862827728342676355846734447263521773351272121623816576687514753512434513361142333852321242384244484714642742142813235826645761866327478251134234414665335722575216615237236211526684284772688321842161571312834681178163333324125782846676766832511426616648716486642418653313558317847318288845266416878278215143816684621361787218854478486617884334665788845365827356862548835435782142683235426328566481181533178358125817446235152412411231117684615255616186513743551644342271247434564874541772744467518687727552877165536514455712558577851723871477642358451847768727378357325354724626253323761618136133751453442524716214271257162642637434775133174684773585388233466221385755763348777746373816313582326763321341378233567724245214843686187133137611153815481566167143642524436867161136535283861475646867177434737431254771246744125668543876336271882471452216317843456741474112682815616787524168374858154435312167518884612715443788465825115818636325653544274532477645226416145777123177283656462385426137418176454763678811357447885365775641483578423371413753528746431685412651368317425611137123322157684526354275184254237586588611138382123242311733313138788328338827726212848627555738467356856758387817763334155315257674336172571467324244321541135581681357525338721832363327181326375127831238711884136125782523322823473455146235515824563632851713647153557836254652628647523681132733255548365681868741512536248188864538155235378858875618184888885418121644747681648325374371238446148268254181265653342475568221824447433438245627523461884515564665477437313542311544313661883451668428321264181125246278278235358811717474571653744453142161216184741558114766751266271873663168458224785878554377655348625673688326686874718213865211247416733355181385633324372717577428788185362486861368487274632544571456683483755553488326686552666672117356217754714683138481254783681473713688631766131568671131115124355671554236888856472552557765382726572562357228557324541333828612336273815686643551615484756674876584482132683527677234316845383828265337217456335714344884134482478512488742461852442432512642845413342286843115748158811162836563784663366363857438176751853265222685682125477786664141113386527654228122355612377543358548786633651633455636732676517533228542786858762141634467635557435376566827562766885842775311743147712163836173333834267318448322757155128673825828116843444445537434535254423121521864225328532442414126138317468254542733784887245223826526358844365548535882365784255567711715817223665234167326618355713578641452735128222813364765143457483145387756464535553818221533833333732317822861533484173185185328662558811717737266672852252661283458821887471217632786668515532536435185738836358515872783145315615324464454158616381441455642378726823365641321816152163337266114416631865813614116274577181462817347335575552868357673153785655476378587641846847472776666388543242782533633887415674426616527812776511768237638213312672811761615136121618563153174247115173841423222743785167465585166562533574852146123581344551766131273237584414213233837351333615331628235275652872365761718231461212725343765764866144781774481512341474737115468763241384634451375331473371586461452471824865154384312545352887514748712884561585886752443218161245182847364871571332136457462442622412315414438252435776581414536474614222254146371434254281354888126417321734438532157136768827421236868618257172843426681658211272547528232818261212877541461248314733345533226236485826828641642721124365353863373531233716846725886121255528546711421671465754343122136345388148688736561625146144327658245225782334187668344525144465471562717141116578463531645152356421311265843587414467588764511328856141335375186548868843114683387168662286785146841584752717134816563653812212866823188778358658463445615435623471346232767681337247718352583537533856288638638143881783652162485781166831563474464428675857287746521373836334767878854128886646887173175675733521263664654887654228483621213252877242374463715837763235825847135526641245235334767172541735537755131715385524162861781863483838547235434883311263743746256511432822455824822838814384576334846644751317515657555642718483454734278871631866488153214711756235554513542348675582578638612135646117832262781456362244725124288455835642887113331421853422746458142523473241273832126838671125826745273167253246315165613612811575161444858268466633784762832176388114186173686451411473575454641322727485425156164612135642713744173788182214561847227442328513678537534654177777558314283141178847452723787365187634724225838584335477434352461811182463663623643361774215828118617525558721152177636743444312343781415884861265617878328456651836646233435428658257241782457217462755285414368354165645651177784666253481834721186537181714553626113358447781888323788745351338885832742587544246223156653373842532325564415578212164748744137872128643743418478286646321673277376321383613227136462681738746342843178816837647152722761444665731717718218838545684471572655738821362277141182231677386522112663686472385162255228625364145812847575772177281427171573157244138764417515185143847562836647747434734582752165125777162313266816158275461234435821474525837388584277671414747116254676736655372381238365621231755871563715433353445168611624465654676666375527533688526355482855183656172514423483825622257158528672846216325632631882676488426345446164486625857844712227655358564246653835526171457348615347384378145814226722564387365468354483163261672134376423216623328455462674427531658156444772224766363417448368412827222311578852558488814537448636428355461163278284685218153583315736474546765745821412364333554646452466228364756584782721246317821764145173534873338171284522174137538246156442441357174236342424767648125638564565163483737831223884513145162125633647127572213268626822187866515868447286376683322124724226777134165882388838852268547631324184367523643642347431182725523633728362646577417222376165586566825443364587338756645327867331872533421876678262832143886626474314656312148666736836885535871111446677542415774444784426521522622858614554788218678672413252373575226338615386265241341363152275764287765354177287288885217376554133416823121516373873558887328633661132881646145448355852384326351153223284818221245447663165457551573467838511582735558563178484528756526267786166223765144851112144476651448715434667378444552423751285246776336414818743785187371161371858352667657638675245871646664736658585161731755171544528242335557466661438265764735376752181225158486418336864123511284863181356383681638886184445232537413588835785734734284635244464821231733118552632141171315613781874834831846726627415533763648714816116262453772327877224285146213721586312551478873665245425636127234862786415483765151583735424887841131741348383788515775186575871688634465184448886432541355723588532665764774761274344431877846511733816882445451781884552446763413784281444856882182153365542882747367868131731615717714355525415388653666616466823781886455552272754271726424622662722163538423365671722534513745627731753782734312441364321264735574666615485882733825854172424643276747156325214553227322464535824555832663771312674223155225766288672428484111138426323812475151887736776783886587336286432517566156685171335582122632144355122484233387182541452682415832211855435464238454415345582755633614847442565271337833158332415745215621534153782342556256313544134312855121466382454231566822382322474186783127331323366658554772631185375357177128426258714873146726451845351167175461312786717451682486683385261614515682468875825721588425613648181335448433884176233132687567247276482381681787276151781644565858667487533261877384373124137588425862774217266513616515867436448642771817774215465732388738561134388178864442877137356846554564668647331345581113485256712735888733326151561336376782448483848887828522345867686842785782752322213762555158835521766156283434314546418115665334362174364573664135445413666315683566881837382364725135113618365583878172566614783353863843566283187862728558634831786286214581816611772413366421516775513633473248784131836678388177215277426417874157247775472448736454863218565161452245441585248744832827872445151742176212676331731528167378544635713228354887636788763251614774324333368437212856583725456531663783286131526317137165571344317374663162181437841617366456454288525528488488378151443758582571543762711328847821864848468624648623461482183545582683648317742364511226433756826773123648483326746565875231532316278441455457148463167581343541837568572237638345218134655676668226742834454357547411576144777686847231273567387718553867122747443333846364614254126461772656567466652458576517676374452324142457224435841261634432747636136372611614265352832442685155438233181267252774136877113625858732742524848123476771372628312255185846347228234818147865813187264458771567281652653126613172567118684352277223175854584868635283138554468757753128448535565671864878183568312624264737342516661667636651282123146528128241517571411745551753733172671665635281881542216248283286465238653847687458568851848755267476323524154781354346811746863712541563567124658641441475277237172285253621282756716515781513177886568441526482148766145163471776514144266713626254565133147723243547664422648135487162845424637853436444618518724677442671244816858663131657531155768647723771475142122776545317765786565523362743625484624352735462687221543484455565847148838135212734757766218755826381351263481534165452243725476623717475721851127563746625831387547486645316365137163422614681155861334532867446322358585625731836136248342773581626242714477447741265685574788732252333767373137741326561621568474677832526731321113666737552486855435376631657426688843487614311528116768482843678563428881386147848382812766184627131825824685256672872755235516366838287236722486252414526764166721646268411416237338781264271858688365223853565465314127442237163181372673618823513625455675272252288833351852263534646374858265852412716488675515676361436411682513654411167325758276336576623774251261234753817836356822344688114786571836837426728566711861747824563335687146734652382185738526841844411822355631531715378737582656714763158287857687385765532456733388552271173422247385854161351648565481554416676223674741475446164213835475621133357732778183761252242758136281236866251136464258171256635445257455137246854871844621481814227153336657114517268642446447855637622853661777282235866626163313762134161145534614812538213214287361764448188231526466484775784631464724473815834361165223613732538877186484683188753175442384345213623122456635312616821126242632181312216846256184645656347221178176814355866566631863666484153652342444632485637422658155461433645578823758323732666363878633653761663614313276348676832561483661424444774758251225425637477742788244487561486517646271124488645348675283332557128747421866532252785374264121888733375342552444578176514613752615648731683436785763288366513468584276313546882144154876616541561584375316886761363432188411566536722852622864661813778636673113352443672478845513572542278276223864382445311566834748834723234287527328858572364745438881271388216548512168363544145841627424382653673456473413817568241173173255488744453463761677568367373515741681216158182236153171525445126283813525432624371658416821123487678616726847443277634375454481335756234815321535184533244384373868258648741864468783614238337321245776766724837766723813735237828214571338372138421611151661133153527241248153881667333186268472783524317811755828422337845571431458575146133622234456321546685341385881263182325336858674143543363828612622511633488133416437754723358522437467774387614147783732766785535443831331281351111174236565135631823655632364434538852225787357421472622555887152114832562163772526447613763674442441667465733542386123416431545686768214756721846325355555611771523541873252826514146383531327836351118432523841424111133152555351122664483344442828633647761852134286245246272443813333718565668255845158747542847231427165348725318471135485248133771346767758146682784841154137112685478834418767844415117571857236442432863451822432548416263542385287442684485518364261674547636223657516843253286223877383263554886646137454334622116746768135274757567161418562633474631681218381624281747782632546118778766353135424215652425275846721467153363471561733844168654813148825718753871661834187861867377731171634128172144244637684287147153725724688863146526353462865437625257633588411257554786151383632356676186546638574531813843825616472777413763676711582873741412728863713756682442216412675383435487445482657863683438654281213428253682837324551518565652643674586866836657721731784125851327454142411166524567623682877621552636866671838485834164263141653725273512212121321777811262816285478781521683482238626411582876225254723552561654323853128766574151248414257784825277256133347754835743855414713127833683637428578133435876136345744164137446385377377836538838114576651181787885723366536288286252877683748547176124373883513834283652533546852324647144865264683528747113465586657433771113138282636513548168442351338815328335487728271757317233234731152671287675354348746356348322437353163737464454118345868817727343546571483435516536631377238528543212826831476741468214876415461487278832577322335842381642248384118663536368253643873514738337415338383835512776731287647247677877817266437573855642462386161565325712442818354528336566848813414672536684678737642185381356266335585234283763616513147633358173638223248426454115168748274752225683126838264642748333217683462641828663361732666515536155813274875813748577642312832334785718263724618227678775148867327585422754331842327765465832764378732674116767155743876575432556511377645127784135433657317224875818444856415815427471826748886154188451711862563878871621626182182614781786614688583335163632847718747883663713668888212145348276162562747878812567574687387866544782842445186744667114581476217387158868568851876756816842332157558155168551544888341532634638152853261673744313837887231584288452777456687287277876468585574276455866246136542318852567185223825113785217423541515438227335687855315422353214335438841771115812217341542533155368831124782142867763774146848333735784873677861416485758551274456116551535388448255741363176433611123776312723747878175871688821638666387276431335281487163135665532228633373172262361174176313863784337323537652575354667188153417431833883737643377351731743643583585582744378514415488238484341518235825453161471578413412413564144345856724823671387344555867878471635124276114744264676834313316331517825583677761335588125826646316288454683268258424433684457685465116576458875487837266518244682282546272776485885413131645214384554738124734428136888161548164185378857436445417117612765343728444118543354884452338423826885846346716282272327526128476676337823518388223422763572171757277846767763382334277533412476815786444731231421447367527663451615111483572284348266834461763711411446455371415422672734862852852166428127168377223882387454648526865737512248551741645581833572847128548631572336887547387323416818731483527657153874424242552248783848881463247532843154218181148814718843736686551856864541244285272243236855311453725731751861254455664465583316577252717862587138266563738255724316584842711271286721613338877825341615472268275537565587256825248278374512526745352727634182213221758325147687824183835114235414285684385734325782155252344452742226516185224654538642776838273482253437646263532256442742465665856755531344566682113844671324715252721745258584464465744435524118871131323238646671821364583813587561388672645871862665135185442215814742113366864217521128334212612255133356651141712561518521647533736738582563523468186657683122165444361176337642316878324335532663265264517837258526454746486261254761327627581142483837347162756231837786513627533826347721885325877754175424866225551317367585143535813241234526177778572342556565163156177531717383851254366534737133417257238637828132238772832611652173863746347822184878738868535738186436767528727773356213263343822235827661322751782423581482781123362115236178658866886533622478713574184462437832321874822256784153538875777377428474565352137111453827166882718443766413362672674172875244474836318125813776655128874415544613841752428386157331378325835316351442354288555487176625215422247282274218225652248561677338424311227585216748561476352142783273862481522853528534258131216585582387458245586121242725846555712617543544154435146837527774132283854814378373886286117783885172146416732558725232713357344557653453713855546721161853486847711625616563183762544311558311147178356678187162886324478166142421452781688263452681218613367526237417444167313248358835833355868725331616514427131871264518763344834811331348242811134155832862365434533366287457251633886171876536541566282817481264428237236548268733218471825543585564444185572262578586275718664331462432886773647584218771356746551783558247217626244273724268772431576466863635126435674781448587643151316476878637765242883722353555355184357287161382577731635687224771726315728825131521553227811155214445674565748717751247818611882412861187378828612375243724828625878875374362713647832371337211457454152148381362164883826713758362676587586224386473641882874872626175732221541885226375251348272786168387422177558755461561278364172667115373185771837542661353636584812218276624713337564281533358456233852538866811726843855157588823317156821622451752127373147831336738286335162753154753654556548878767352738521873458484756227263125852781653756258688264453768248614573518551366386721326611381231275516152855545833165383827111728448622816161551536132121881878573151342524376345625737573342286112283155454775444883321345261742137488814178382641878674286361161518561678664738584552841676454412124288626281758265461414715723132241178668452378522228318587851162771757453581118182532286843125314355752276854754627483287181687788163751546888426766655565211641347581641811713576752474561632723372816113654678362118532315544842238488761234261877717144258548458368756846133227614475861485248165627173685677545858416253566441673277456535146512423745188411538547358613214534646627286746761672226274162435558287827388745723632116421338875464333667342781758656368817856211584531854714755537235732627135151464266654711424813185333783868126241872323152113422822852358227547283384316477626577673565157517187334751268137682131154661127886325777484117734144658275274843272728538135425586837845431575813671614316825162764555767826473347128425767472227664221628126422731747135433654477511248251581448224826465487845456477863128733742241486683576183417384563256536612726286412727737657775716158786535854655543836682446627328865338724858461464141854672124672314253257765812172177126334418386373554342518666835347847185124443668768126853646847313227676237164652521315245888338341215785662733585573113652385335113683228158127343223556475815523772768442444874286512248411628864627362566651146617588518237285267861287458234862326863856443858422181546565623755148482716167516476532754423754165572732137855613163727368225577243335145812138142324226238356767161341831611622544862641246571384187177828681745217148263782887387162824578561752655638624473363645517656621755587722471737234168638215843828255837176656546123553373767726432182858232783552476714757235748554711334278484548888164777133685135135248158271165643237611166266751832816832515271188831836321152155255515645821836828578321873278461887232434427676542233887273221876611548672216847156146845224812642316371212555337138383575843267117313478335557427833377462755262682811814266665167152766622334481367158145462874456614375168275372284118343211642363456633657885164272272182753155367842876662848164342152134316534384583735136113484316516516355355412451561361371377147667851555713818663616384138731356143715145116861887536685675611472338734144416586345675248676424623266577627343634882573222761887375643462775745835751233125165864135438576766356448533431117364473876414176763274247476487871827326156132775284377123738276378727221838627314732383343232521518827876825445735822845864176784383151722453686285851453832311741122713615164351743757221357138121887368776822663147731523436814184537472648525771364483615115565525138314222711584644875542268387781727748186756236382745133557417251812577251473272863532454355167738573868864852745117321716823465171373371366552237628661358362871625118243715577456173725653536357765751786455756535714147316143585147736568622175325436237588428783563386737136235474274134642522565761453823246685278553527466374436562561542227415231457712281543266128734133743156652528738771766245138282475741426477851825557378742767815185217712315456528426382244885114621262417811252268488373763343472288885486413385312238273177122381881536234163688873882865376423367827632627673541586484828336554425355126772215865612613633468477163365121737484623788738235673576814165755564116883875857235581247254746182562862766323833252246668213521666821714415355662555827888821874365112428654277311568455316185488688832483877475412144644451851428178875874478138844315516663622385274773727681672777438186134254742826864633667456356865235357612561856326354215711467677323151877868562816324761876352251222721313236123615758527748135714155642662868311852413284266444716172818613541385443442834367725128361247218285716151843466827526554237144831272786747752448882513133414567676852213887213118866738771346774266357354132888755515288731577681475817126273637875464443161836845286654373626212654758765525276615862166437618441826718252436116351563865443377146783414347824251814251484688111641681223564685673618748878585661688577435581238416452858575147287745275635715453267831577153572323546171362774161534677454417311265843666752837182156867366764851155423764857436337882475168464248477335787241531185241457361755488273467248813562256387731865112681833447444687874273553616876145115451781836675168232182676152368764521621358435444224178655477335784555556218311732836467823756113537651166164724517822623168435757324386614275513111263545185631558558336342563768586817124657363825827348486441316156565811614613354177684138161633176663413468685161518123828652861344544877855233283285454888146766732321273685524681783272756543333132721156274343478616483114183416344328647177126847383361748156477771544322221872317314375851367226267388277362158888824576523184372227635237844783452816537434532724286661461425762523342682145386312138742488146814737154265461117827462372282542132537524752738371133752676832114824676728617586386672456616426515648122577447734558661482748461511513667517151416878188261177715755683421325833322237212288638212441383181653875765383472824512646473377414478635252258357477242856882713746321812727411247168834628751714246716177538221123566834577637148438784224735733281451828347723752412733813476762574565568352334534376364678132371646781485284346642178154156354377634371868818644512223585226312245361367364817338247116687125318713536138526328834741165874212752272775633434886331144613628882268353486786885675481821758745538231578228524753417158742486845767526585126283488215856116467121867287685122122818282762275576544428858466365426813186864438158182144651173682172357114243225784615142116175241172743836815485553256834332513527353545816542766178442772638146772713311625512366826784864435128858186135272478641426511651232137134384828254787548266838842751231638622214374134621113884678717432468556674173215223518643571138866782565544852243118163482464457617532273248424632344651514111877441355578277352182234284652321131753376715686483375711836738712554873521786413611847187462328274637651735445623476243181233626181822515218447652166465254436712454621817548874282435112221786688161726562531545455166287736516461252815738451186688374257475722716655834458558738436718357818176422872436443483132722654214128637586741542851753112246354436465235576242486178446336663213416116655348145453467712464482783113745361844481417874687246476484637352346755513881436251555811343768561256463768513284851116112478812634341387315282643354165861461611142136537644868314376561514365845758562443786326655127238633287678336247476116458631541118288866586716525883544466277288815768277555274473414856365254742384278632158454414588273715876176264244318855462522241526771585772852353854151328114752431245638735152843325156154118848864214276353444446157431741733385475754485416542744686466516713311883812522233127443676484645163733188817782288614668375558653113322873753848718866465821853863262458312385243286534683488675662514145231451641381368315741176836437522624757474476174557533336166484366618427553236573246435718148572813724366258824888243738414357528467555242731271765614651673584247183367256242227358424458728818677612127747825752468825586444822473682232884546373341886381682846772182251314848861128655674545833288375122273268237763312465635141648251344667352217235148322473546538263385277167847113841258411633326252431344687518411575173722154375288328688218145253362314475521138636565573157631636854812253334763581714121551524811367461781866282863474138282678313158614657447334568643668583284155133215121744817873325732221226481427188661266552453112321113458216175653636188241122318121363751554278128724344155253752545521542551532264514616882343484643666737842754274322117742251272445787558432726847748588761588433878415347585271662582468384234232262363272416468378283632215534727645833161673622337511772142483854446421258186826774533336576447453782877586375834477326132345281277145781275648754382182286765881684834618274738767164358636382337421472466741384711212765455657185248156487237524382574731853663854838548868686726841428223458442782426813473262433544553764415355486256212424227462674531132356713177414613784542466736815742478784314764151575428758156631845481822855261274483368241711564118767864446265512584278231856124881774234512237887416386172674743532512162245644541771255371755724175747163213357413127226313771744438283124415246224846363527318713788217218784122276811833768618655535143833881225576566548471122545641138878616254572233147741164518267736383178513426486347345455843733253437157411645448861172376328532775352188634337832846261583253417633518472572865735427575586814366686235453546738847765882677172441761865711441181847146862671772854548235875555641224812765454218461854447683364375436371873864827813124774776322732255214412458256227513682128762676354314541242734352571477332485722827448453343767885631538348836175738735765148517667481324813372831574162343254536146644182131871137411312526546351624281464157137565666785241772541656763738313756488737323882723755447482433325634564485352584441652481611547272337444876783346113828881621585388238386676177775646543261121558442142726224858133456641643485318314152663225138461715841776474124421386565877482577733427133434533568885171821644524556866378633658527723874848111536821544577551262151847413871133482256572183221175265123171154151375611471768866174342551335347435863626413351134155377811241871247125733254726833236127143716822331673814356626648347722188452652321266362643316817788868521646867553388561567858645512253284857414334356164858721351263282646557177178486772432266258477658411778387346882734856332241675373461315738187278641141355883222455162642652245666477511661678575182862114737265828366484462321436224485474382543465775222114723442846184588611527215633581673133777584618678632222351321447446385252272146176757853682715216844225333214778454351336166387657171671681278132236336888238164448426246352735854343533523131544273714586648782835355367677312436313733456115265466114532123262468743155356674781516836738722168111825527276232878342822581766367166325111474678513462627764167562381771825874712755837661776641736874643337677451648166252522382851121141777381354357573484522776588288347666762767382632784143358775718353886643273453318463618357715437483237252154374332368354712155412774585787733336558142223488615771888248138462786487576835585671641362244777833368187751161345876123714278632835881665748431138687674118663535625778138878142622458835888722171258667632536415551228465857726748425244467228341427135626488178626712325236166668572741451134583374515635487662385466222285354552661243348725145658367556677743618784187566261413841666311772758437716361547644847622812156333266523818861335786357125832524517731272734767413785517757876133816631414856467344882446735514815235345342177877364478763124471161654887613151854463348327362447111551126183187282433134461664171236215515771311431684641717726836226474623621733768843821717257471284653635668125621177137841775564681853236118361345747612456163448514527234267862553384235733774614656276568353577424433173157177453767474126334773285218561478831863622621431815284324847186545633662841873634221613714618863586564727773753364115355323366533376337726687882482586725748267566218657824728835754213474382228535251651132132673714747347156628385152162831768248221114526258775152737887164157676347766577163537617216674145518341687116828243671511268241712413577448686322558616438124151712735568216737154882331382617454537151766451856822142741167423563447182736578777158233881712668171488637156544415385385336511117223653528378471176216441751767656832384877826684412155637475846516412718652837165341521355526376524662616565373813624356877512831187265582238176418521768685577687172341421134435373161818554174588623431444877276478541265664621557582632686564728741456673152726646416675382471121263741726655478135361465321483166426575742481851276233461576773235843434334885814284542285844253424523126115663783244161625717758267548246414473764777841272854571135825633177124512363882246562362431163177751817712716877335438573548514451147537618467787387322245214618374144862574158785587712128156174168236374371336855335514116662277611385334134671724131586864243511318848148564555665384157532583581254754377644866483518432377286272324653283578188341753677484782624255175311318311185151766755123118416513543443247421487743822338735176447452363224821685756655538217427253181372731516153327867545357773278274137275551872445886482266342761848637783747173248877771465257817762656511176111855338445557447382134485263763535667662334645545728254362624537214847732882555287173526378723538674466553477184483425251632654623665888336743358311773753627246174373863254441161255112378751538563851245656354165643431423535188454444678315628843283814224434368371717748467823248238622754247873864724422724714624555637723367662623225114481538885234676524347525737115142254751348414252286814254134335522684487347721846316638232635384161411214645415145477318232737742877867848541215443348763116581645443833857138261564247528764518141841342725348353476385758818873574575756476123336623818788656612268324132431431263553138862348523455737667412488611614312412454658748675283133568611236147248675366715121421377324837637423451644324533564668161561311723224887331474647712427461262723115484886112165713652455567351622237234511727165431276681532354245854125213511223836563333528633285617774212288273811338572242232687246667456462463155674765577744537752316824766178614781827788822717535386361674315642643238131861788825328373723847123433312115745734855752138134512522853728314574836323433812163322274456456411814285114312367361474838532743838328531636764381318487427513583215728788245572377224635553718238417854767185231122455611857576477868353262452428334565566175683276123485337146878486558327486412773173313773477476617311125433611628526485738247875415574176447275186442872813361521737246857632712252421377575534316787271623514671522616264487785575461438785333882733526155542286343473138522877767278745868275778784283225123786361255322835471868175366567824347333532724138723682234881348461274233375454136383282546372885173183482616228525734158754658856866373441758622882467113145131684132146273254151266537543143272582715131415716531383244127346562413522563721263267248552152378528772545826531826442854258486848886756318563325825722237243787483137555477415567151861674831478658212328256714378363387451415136124255736574512235422267874284555847532855476385717571478457811264834786434154284153266668468273676222754835452554447725732446771153748312553768871667212123651433624214166413187165653762787431767258655366373258325667514354831713465863386568216448781382684442778143867385276571561288365478623327522447835341156776428837481488316222571715722586734786213757748451375466655461254531821315771683431137468875181121762788146123832135477136582473451316211567862232478878518446657478668435383472578274684544878474357211436341568243528638786735857637477777845455777617686138322152768324218342885356276458178781144665283677476177453268777356167535641178733141583861414241513353487513145416265128136551277571531441321852534713326847536451418421142734156537766556121632463464448338784214687311628742654157163113572618268566644575651726633684858725712335586624286847522571543582148862282764351644463332353662746748638813848663621148745122366516578531782458717417443652544715551273868612343188814848181561786714787734165362823326873818878325712245322818187135424614368282447558251441121728421557674254388751675436287276788824478815114851835334854743237181237275675762831254626112371781773662836574344456528835133228716744184347443758222172374663321112162116847333712821155282324381457637832622113362344768687686743266866885616618484876516342176113416656333583543886654147326526524358583727738735167532834252521816555413356846528333533527766836588736733434242165184116881544868513883315425688765375531355327378565765864518276672344436568186621253751771718277867172745424186612154218371764337745585236615873775865851517637412862555225471738432134755527465338475664223366716678152374277471437852141836214842424647126865564138334324645185847327781544611718738831382457653241138751281877827471516438264275275751841117451387425655647655341833637487243878372624777522855828378724315358354425761383575276671358455872513122367417625281537364265434372658775622254743483371313856374221117346558583648167615856562173774377538488723325682287555738767816366323254156336522143535573861216534716372622861274484723171762421582281132725718128486764542653418575377236626684231827167211241765381164642161584553166553564341776743774151716132818651566887173334672154742515712336884672285427845727282452582771278327414852423655445246462316125124855827735111622745443343142313765854637844665856257187112238275462812312768132347146527431425862228851284163384664336776577172351355862147334468887573231137834835228381788835423371558631223313882481448138672876642665376324563678633336861238488636852378646714644844246131561513817133166444574545536385453461451838216547565625374574235143175735755466288367563132215728183346727132411447364544754343818243584166217348143216553653844535751857364688361586852236587516252246631216714754425645154722536427772768541883844564141277442241625762725562462885118127838713462857218433566435833822474322368462348872315545215216341348575138754718516766357764155281127327363341862257548435512177288687475476541765235237485363277727365471145772312572431856832723516754834218116254367138423511532216265376373868463763415733585666188684133136663121367522766344528258653165418712515356234735753778455337764455262617177236323661513745283634822258867441278145215446165844436352225638346357745458156311622143265487338655245652663354236331324724326381464141213228588873621113285532538648636148664653524382667831144525584367712367375725543832116167374626286481727458574474345622158577767513555452278586138282366822767235582216822842311235333581737551776853352512343332822271333155733285531648878872764558288561624633243123861738662727743466437567583782745834462353714251561124763728811268576623653275732588876865435447465133168454544354327812224354211371477174134466458356537564671475423872382414251653466838857782341618418258332417315564561818231862862484134342133385328318883686444381783833116186634535285261775724751243251851271613828243371767854145121122716447448458654317181461863641571332162666338438345357452672411548323458778632335562463617748551452386375825724172784752615327433558357425687183872463211442374341233644814321565473481434638758543776866415232678675638752634675833338646251124672322887761285755178618435484533761821383178334818561578628143875164664678518818523561438113112365642718426326268183243723721844278136677416281681622863842513132835368218537667636473464535844714831812562437856365223673243574646784851151543376467433616832115475841623477362177827257522622866522383587131838427213651883785244334353653725454234116255232642245236213544776818318685814145338428238154282788485155252336828531441123443377286413884733475147658752682571451116855145454657531275821278722522224424131183526531233211782841638771341321678842632627356227281135855857676547422258185716335314781153881355784675585142662883447424771525662738485588765152313725854812178263867437121686584575161237143868823666265315834172255837742118686834347765334718524224857238785555548134234514433544146838475636252752274212655861172635343813677761175215336884858287333338557124728486536326478867762182627438626326878377123871466643715227256875243772441788442615153575156311835828631611242172683517213414587756728446536645564532328651726312544288722543788843144861658345216533274847374265571847628223738482461761315723147112461852835842778436263612615463375341144585671584866744112315533234337354533657645435483524744223356252512546117527236485561853874556474517815723516822568331534646352677468627164635878468232383187755668341114446632648557344643238413134184518877648261115231511146426725843582462388458572588311522354525864176313218633558581657741882448757544732465332346817753427653315638778625235151357281442177315848537416688861883473483617235631641151336733888337277227832461282287337827766786571313782518337444364632518745414514578631353264362641757433871311464434235243568411585838334835632172454165138668677776426776841154858132514167886475723561255736281783113526126631218536618783572557538547345528636658878567482624266182423174824545113166522744867534475641617663841346617558845365311634365217113214464825766163611361717377785165422511784467437252217613277655364284761376186428248668874746144428814688488616686264722363663225765235142518344167458256223532777482655423347414328314536546634531415617118756777478532783535575373844325751435844786573885228747118111345366851148616853275221886816532235781585532837343724573341613522172281453613444675711235265274387477228271481538728818433541846784273212227367718461111331125762381511387724562227235737846523718435265813451368252345215756787411124221533356262172582144481841613684746138353221441342352452277456537882833325328141243854262676426713613684736347133337612861377168136356746176871268641817615572272777228536822817558526477813722668256211587356212763566137425253655435472864582665683486785121373735141847383431165812552153857217417462387627375873747828865655283841736687282651831638626857146447121756265441184233765157862572181135658853168153431643481354224237768622625631541522821553135154516248472812665784646717162273613424852723588748213751624447768771363425462355873865816357282175718152318414688643233535324273661633763461735418778733834443325488743778431676535318582683682317853281232788438858564441611812683512675552214166834167185755525845271433541647316618278761188574752485721784535363881443542566813253644321544647833676617852553745778827838184753777258844656611285143545512557836647312774245831415655866232575756646432813285885537735415463545371638778715315528167378722743361138877525222461346764453536531538287145666512515853484424763783722286728566687881718851434463652861523266886455433337147275456341162175672176321638134842154457461665718117641363373437311646188226713414345362676621441115621613843381424122858521521332768816767213225574478817631764527267855343624843387854626618757542144367516687633428551331874688818383643123875284241248384363328218151458644733844538237562588277673785655118161524147585422135711758872558255877457724135745325167155827881488732673676356788155467155825554413541524811555152314176538781712236757328134546334717537413554444131537132242573563333231586511628342122335271417446721736283225255166756172273636315158364656742415781484678643478551454528311221356116544515411165171548236757571281412527238333411235217781314331146718688628831643354718411818814455134863835116187168625675443778872477346416116671252786431627625421824665143662486366878857778186188322732768817633381883637386113515447531237667816663845435213458554176116873631116316841121133188467745588833543371142724726733736221331384545543544776268557482778728547568133154533218622247325767778343225237642838562675213758287788171318264863728656744278765344223723417784753725588577254755363225352112484435852528833117212583625826733265337578248446866123154646188873515831825436223522783354623521468137626738546418274578842363126678256418421257643212715618871218781246747722656836624871835836562275851748865237816811681253468674871122615237178645612426661318713564632252628541771128353383348586131812171144733782737664888525377878176657246226456383457328547335811376161478783472726628368112358183716525581428687128556533438347375146213224778542514753712616234415625144177143854816376523746876555726235115162262756277553827331823513671376413355543485456266857875723747254258613158285577341738321262887413373345262438351434823641748546461765482212713846418468443167322367763681561831242177678653272324662616651454567653221786614713338111446577142466655732118558748756512726676534368528635687343284842633462122225767412861751678244323356234113658585653388164157258572761377228777311616221335241765518217626584132263452574255818258141513363375558414553635885717477518433631842883825358447184448358817262836282474678221588141846436351254763677215635474445548748575586641625486638367373783474432577327878535218783231171137437373114872532222687871677457281838716384526645564337116513338172868218327657265365262872774371234151683424242777382441687725448752587431854188574788734513724411658267254343217677321377638176717335212345332168552686435414642571162753486568325172781181152221323218415647631245174284881177626634335715367458857143233812668447742882535161833434623613476487863733155258822852383664618127872755221443335237136461537436784178557362562652454811821631118423165862725881716284855187185647122517541116286873368577154628286354168771168753251685511148557351463322427861343128545218732337871322221674678772682283763185753882718567122555425514582717144111852725373447176317733661275253347136532566142778232258263488683283425678384137127743666673512522561138634114516387335888321247185165834115552777611766765478375588153263674838666443688234862422173411334787731165342831327535341646376436811174214367416821121755554286574272511116554212221885521646152271147625172483372472613463148327138512215125158266134376352273683328441528122148448843667456733755656427181362823714231876325687834572482288876337347415644173766722131811715587128431112118442634483284774481263225873178684833373482776823118137685511561553866816255424725484253471436258123728134576124254645174184461142321233657826233586761238346342268258284685368235817882535825618685322357875464655522374536214744163217153278642254487457748224622847314232283178278831414433465325123242132435844514655764227345557742152885256527871236317148665525482577684425771781522182868271778844478727885175184714161675634374422164758337584841856622251355787182144176483587541823714741426873686252461725371343221664473231116728865627353173115148486761572231186358751168466572186764478582262884561646541867176758867783121816334384628616274456158437728516711811477428636768171134873588371361877728458136641718817253252275843632334326577565252644131715118448343634173416138311613644251855756728387238738456413767768825211778477217757454111444237288368124157445881643743876316272125686687513682465616815313876775324844461346578751226747745531157523551384828864685441222361443382223343341384653863844777872817188424355171426411664242611857667376723887145446428711167724251185636635135641877868142771816615248462642265861634317253343828531173247135528352658464458626666345666446685282154866423875328144226831387876783271787746374848366631766254834718587378676177565347181313466846463357726284157552136757212463718285874313365182864646266368246236382628153533488434156444468252571358822242472134286747842426342473135358464644753113787541861177477561223646183183448364857165561487126477256163114881153761184683214758234532537814611154623683611252645284827415842116245425472464644734335743343514824536672577822482534625625146135588733177771681818177548113473517582488344328861837678351254525444588228522524577123818532174337344353374133257151321844148242563617886166477371872632616627544714381616315718786556787268828461566634825282177541221816585547285827321411674434423473633856773365764561238642241547827274557552617755875748631755314282254126286833236627357333564854776874668433345674518418763727812566834546842211537275222461856224876317182878533356844672444262556887467225165177332466512635851546478712478656475333654526162233567448654225434123484413218822345276622731348457454784775644567753484344168621425812346571844478735838386855866254157673666274754313813688756268242615848537718711212231123381821682373215552583323436214414163212836827448618837837325453538728678366712437387781573124167825573271866611218875613872174566282521263841852526776144752325635456171464236855534387374275725131744747861353725812611735373475228664567363222618878553651165376324437755777825863575457234658451754446821472835884285518661675432462751858628367357825778826228865757811478366717286642583812475652258383281476883533783751117574485375362378678143128481161825164558786185863544445852157227624746733182555568821215477861687663125372216664322318517184124857265414372154176376386183285252844252588485711584734214531625526133252786344164543834153134353153834121725232246516513575781153353764813583426736484753132117113376544753782135772354364544114148488742227332578673625145226521256747821328434118347843461183774555814845578656681542457534472583784244718445621645787311428577526642278721372422667164216731383626515173267871243628236768585836377482767266856237747575242614138465513286483175535874255825187142368578774157311475882181618171316821418825713856426232388216883275335874232227736428344232827246445611124882475186537651818683883253342631878274426888845711661156186231385711322611552713845622126611438175127884621767652324522363826822581875456141715614233421627118727823428788776157532533265163552118451141634345255878815568481212227388852853248746644852462588772266158825245631451743685412348135747711825584311852726467368262453313162236624328167721216634876274271811632131646484515358444638126214774157622462578271625785616477532147765628566145223317744558323273831217125486615812486842741237422517425535882453688348234226165773635244444675512446468572854243562653286332852113625461236521564611636338224182333836156367132553632835813112722215571774686448772162532743684862425263588843827782814655684772881276216187156885143224684678748533243523135774158867484763753365686637537275371874784272233421656826778654878177427513622131755554312867336311722262241828115667157842445675626511434233234466243114247613845216228637657185425676111842335453274614278155313841247312115357332368684385785678752573558652244371856875532218752871733415528127768467637717483552211227375344681387266624423435322414842533862112485753261224753651144814882253868545763582136111165232626513516452118157232587512785837377334871156823442312138317452775328714728172133228132828462321847425863572471662371548185224867321727262816844777883862251547141127414383153132886244438278873552412517713713883377381314867831266126766744211138767455523415473271734277287387242657328536734648788277613233124351643362845121655641121441418714565463637215262413115225756413456114366176361261577611255586743541846225552678334212386843284247218882256172622247367128818331746716827626477588483885783385366653451378537264118368444443846223224353373685766758361624668186328721648675362547562623141651158886162686724874412568441573278767542467151525825768424548466341782687411222624867866181843246383153563685524827375584674817317661837853222661217366785753688536528875214141257851681873753762434127628181715562632386673531668767616265345552432237886225882735663188521666515438224516183343578878411574735474813421736132476144875618183237334646726515311124218371348368613243585842443554132865151554532456775166322563645818212337471583871254472318541781427541445415761475528741464424255876522738465421542523566667751118462652258467432384326171535645378122234171781628156332185228444455265541388357731553732344788881227638368854643718178164428125234667581253237567243246257761348715235252271814435616823755588466151343251346488826575562621364141271415281836535254667548573777463573783553263357422265784748372511571532717613222335862853472687752462328771112842288151365145876734822881661461346843871572648428472642468572323117812627782438154727632278461636237458718148644183565678633365145752442813564544511668317532745187783153817333473426843466547743633815153786612813314651175766745715462717175846874325124261452147345586161655828311828113757858481528736867431162838738774331271838872265174681751438327752545235173111265642426436165426367756465763441624853356638361614458155337653381656677851854122253138663284131265511313157365177451424384713738141141323748454218817343384643647352151335876184654448477852783237184236632136412826465227164486815825454557365564816285113122618817243665183316653473641848778646567884211236713717242833712473718558665478225113877646127823383837415818572288277557368162157341186387846736612166881563368211278867458148368543833551574264243246653356888824714238874311482373847244531578568157616243777126426312422266131516466657113575223821723886616366161446723262381387368338856583851112473666816532334157121378645422257581342511734836618336867268484728844664744847665667865488318352343778731331754382758184824551681838528617754843137684286642377441187538464758767316723454352262762634362624312717571483737614887266351182538368275834314675762354841121848466255657745371564688251323826861645717278476431815472574472665718146762728138225464573681864144128683541554435167233452227538681336581345758132545757668282662684121254486868223365132611474653722734841586165182561432275511558618763778286683451288374532677324212248265735276783781354478862182723738883416283548231548515312184444443658178488313444854275484445548714778324322355621115322455816856132833365556785515287441637323683875278445724371651414164753132421617528157282827127132217471688358227783518612561143231578357283772221567447352334346362386663626737882613288132453755174427381564468681128688542486152284123646188638717437177236533428727753438412148852351231558481478754166814778764615678431341457131113761758713763117647773787382312348412347522483354138325742847773428344253112317462413554658516557578865362268815713167541461725671243361543541221114825132124358163416432753732542644744126147655852612446781821774864333114778165813224584252341333766144582255416385744756157677161445861742473672223318171458226337534218414472314682268321318643453578481517734714187628421471373542556516151336415234766874673146758281565688136658736481828788365251326456168611672131288647662757841382818545324424211174727164738455622246767726837833172877831843165388845484276646152828628468776363866526612875647441472125113711763582753556777637345255722668446785541563252622525747821256782437688755732818132366235751581441821852245383862217482873633444432437647747635826465238383537677876627562141633868252277112565364883628533683556462341252818512652884456473637372273357555112337427533872725321244461385583736645268254815244257613412152311635342264635848362782148311412574718883125571223368271116227833411168148386814812875586364764762775441871367764523247472825352316742815533325435658283452857777468321561467112543268514766641257258713851731555872848472643765341237524353328826717326587731454244862884336385633164378763765851146226346145568742871454417863164455281751177632775532877644646158664421484756115365128854834341813315854446726441843515817412288531182236724227773741346157877436215475134553112172116778363113428637881343523321587845762748177511481432458682447232777653526177227836772716552372551423344153742212875726573426633632563168121841215477212151773726571874755556336762288151117171447433778144637162856763464368123723712672745228314842884387216247535653537748676247337464341862724851321784453246548483427564723827515584736117363872888623755646567113273574477742532263517178486766282525533464336421362755755243537676318326645157182333578118123486277218744455731824363778742186762278234235377441846722615561317433213583231165125767844267858668676645824637881576147424311847423176348477267873673115232876434618483887724318537817137283533118115185744764784372742262535485482167343786845468314487621766126274124184674877878835756543341636617214347683241641382815316465115433526156462243762168358663234443715216714525767672677341634177425535373632787626571374147422854423542772831472137735336767854152424567632376358642264512313415324667211137654634722838768767488722648343275344683585468155452824877778686886136342548221656557842631266852354855111682624461862111726472517663261831162476263343122626874421444234211145632652554785251583513536816677321483344684816653573843533812634448364714854531778778183471323334357647684223887442342356355377611542822183358661815636422556134248346243447124162241843718517683584817228131287328474431847726746236655637444842751788884633126381663385686177333118564637815542325514774158783754421771347513732353436833778132264728753621513415347117173855243324766217834864415265572747452641737524827115243731484577171724814323422382423412426775343332473572721121763713815658771721128163755824816744245377836674656358645814352146436662524283337851532727254428162444583178112557321488821423381231686114865227558365253365515287357834182361132664357674812421826376485688313445862615755114255581211468165128673428615362374643634347841458186885862158884454486536327131135385572754351685241584375787756486651883128185275334328815352787163222571178364716348886112346141858666442168456256716423247812664517843746788174762513584381537674437428658656648756726253365618223621686223586543332823846426417661748137374618588651142673424857817521115575115671645421438574332258251415175341175223363221324438122763831562231652175317188428127314284816231266135662247758652457534832622617421574467343215126861831262348641765312633124333176641726626587375465645625647843626355536356244386532283663264182427847678854184744834751733313542113532533648678138524264515525483646566836455168887415532681331365632371636731438746151338438456528323155346475166668662362877546175476622135338553486634782342528734463362551426556786335156375857112435371483125484787111617764372572116246134564653158176863811725823584766231355666362835282864122362658348874417732684278365447562413487882112753822148543143516356663153261125177248718774232453186158372854557143523562542384363868783155221125334351512611636684241525134812415741587727757224348367572137267422577326763355785323256821716545461382545761111548824525283527264251121664465486878111686855472764473518843552756654484255683531674881485416688155171285631181624713828168784756865871254838812148141124513148713882176576443347258351376577237487383621331655566458557773612422841218812166221833848336514722525313253431748512753486223252328558573875558121863312578815214265723167584262858255121176657641328383118235187518221375142475414133344323732388217115566615825338568682644833551327574222613813568485365428441568877365443414756763861217143768754351562723885538835513474667321625463624511264623344683766655686338282352334613647777152484853346266358583523886762234143435751443778717156355618538833843425231528255652454634253253146454164735617264116476582874787481567146377164243751216461745355478771215877163344132367428822251785823172577578842275627675461256617126232571275413662115523335815713276345363471414521773225676833342543245281842363127335764266457328584721761863865488143138662263223262257812367714615627252348322345421817745526657328141345866611318361144663847666247342535213831833817132432885678178333521721461731344443648266775765787448583576367328651536822255784547264577825726647612168385465886423447245776122887762751414554253216527286567634221416213638124331653568736661188788226278142241175338322757754721432255736522321731757613285236246328588357277231773643127647152454474126841321317278252822784636174543746866866452166738167437145261512865537374577762635235511233871676816731255632872254625415463447788578661234187214376524161171561477854144154844447611113727744853454428831334438365135114787853785316711888143535138616776378634255545512515435648675454787331713364524442854235163665642244235237541672844167241577158334453545418264138583817155436331432683243736348887385187231531263148461623856746342746236151174157682623824365558711238834518114538482358786348888813856426383453453278264558454454726168364366612831523868462823155767364782567632473675383572787431266353128843787632361378465868855252538231461748145234676331783125238752856641642825888373438431124115862515336438585521563426138286771846261868737841864866645262441214827512551412114567713178338326417765886637715853713122642341872735384653511215256267488333427282487461482428111327733755667254181744784583213314687131613488584675731271117387556851526535452571268347454254618462134474681858545568865452428133335441725567432555552754666278478673362885638581125887325143587556571348878437511715547212237548384888876886447487648436648111186576145482286645266118443841148764165324484164272858763754437472475826153268354116153848388786815166743625352738485488885732582615388322754636543773377832642523257741136166586865711653537681662446226438277862157784244573346157478688613256338227382726611326151681556878678561116877548246528678315618634651421615536151418447867245275216328481518224834737232153331757458458128817186241164836256847454458852522826637484587861531165461133244146475285352147767862425237523173337826548424881674585125846752751342866515665341781468524815151172845313768111175783725723377152756474436344128585877158353758644358388681282152615177818352826328827884813724545743211282473682683142413771342423333328557433552563724763483684835736448882224172451786742112262624158844763371283278753131847228282756343247356232173155251548268345835856457732811323735578582133586758484277477171138574484314538314244248877442144118228648662683764357322654538115123547525442435727348572545415674137551612754116737453623734112412327887278551813348577851851717881381214736726222778542237324774721412671368152881521744242628766776542665647547268241364412144733256131655425883523545555451818275584636244484656166533845545251778747532667213761211581115237275766678553464427217756824447335412246213216254135726228561158611572367278411864123784426238785424641455862667146385484276153614135877445617273727337745227274357722655876782673473826118724846687568624864137142334114653656886748317714877688837118535761266711447285673158522422442628486146777267682664535474327445185681134857387334657212381144643878883147857677744534733744865264268241833416357316351684672367352865635573367168781736214887483258472846368172652385172177577713427323518276418614773176715283214883251247585225663568328415422872717782327418135188586237646835675232424754434633358168433283631853785747881368385252112481734538865156745477414886217327281241786168624837465435255156433224761563284556181614726487732628786723138254561631118427257488465126131615268787515544238865578142721572754644561132515213436447571344471554877152368748788283122642251223321282878764528418371145332121847826725768777728656467151832523475263746474266718452834177848387411451188376666577462846642331642684761788125473381175726841121751843888782145145758182673351416186156113323577168667733735842247654834223572847825364644817138882375464782556344541672168572236462675154818618731587462385118722678751857785567274121846557115331826628167671218571373837345848682458366714825464287552883553123334267427868226213158824878282274567425873881372384756344238113231672235522528415771421511411784467372711837577156618758766816853777167132778672122864542283555443346728564218312567138725232376666848562872728136431377851187652123168267125128458167851138512423678363744442885712256331746874828543736837126564456158748117388241488272854377324888448458775386415378575668282257252713471126634753471813578414281167423271813155311867336366456463872216357354854851371824621364322247761386342414243241673316627533175222553483714787852753431841858141853212258538182277186752844724821242136156556741358831735876465255837383155618482884144312615237631221233758717864164185865145777816638573528175143558122636822662112125867745441613274323614737645447132485136757175276546671221755535671853535111577818367188132354487474443118167537423777382574583112552433185844456685232156475786812722121212624144354465173357125886158746127483525837516537131578382266745384213416336548448467114787542147258516285441252657265521161844357874554215781856778841113717348136258531128615354824523813683363777782718441643734883288235462646576333876621851158334144586466775477362133785781314568884247875421826227266643441786455576364773574854661111145185416654372436684745228788862562677341445547714258477433438243872772726341727811755217511532538616555258832488465655423236388825677863833732755827256541275775113416458418644846768423217472853811342782726376533445453367134481122112351575347352564857662776757154748414885781644736563747133837173128425164738717435471278478876858812567147584437865651388254755412268131478533486622647331375826248628737376382854685584273642123681533162386558628744853386165814156331256872711451553743256656728157241787575382346681573727588162872822546165366585321673137615888757818573768436667786615572632613214232468428653312563686838681176186844552587724677846641376374761452427667426774645166614818145242481854355841161247714864875268178164561632415428766364358846854767872122852461457744276732426568134885272437448334428183212535287587123856467366417414382254464821682686831636466777377168216315334488782832668153557855873313433878837721854528562367432723663626571158724235778873433565517771285387261354548446746614362725842132855541882723256837822283456551352813663711136726327487313658652547872852532371867714314676323474832184854642747275615134465468721678141525355771316571533766718477152118384567568337186168621367664441431584142631118613645742314634467186587352468418362722648673225634151876238636361432382361557227333382661341864874713135657536366265333166731837318678754667362877272484737736667283247511116855671435578163685222436757834621757867435137867546678432735255811767316475368783267762122313784541867376721768772655536654111254317736125167116838482724274288381761138543423616623414833323827682715735164211873283372521572346287646851332126315333552215311126452243346415745345356167684363117238228731412615831647114241522181128612418541284835345736788688461316544214274644277451285632268885528631255388666217884226443838461434226645278488355467117112127167278711125842536164442127328782366756825411663146252354642627824511852511246226832727782121423838835753733255527756245127756756625261421783854337127328712154622384145275466511477211777678722842312526733581338125711375356126827141634671474353533537161748231814163217255252422464877122544234617675562287818143511311524644772351816183583114324152174217283474162772136844446748133414838867475621581384634888787217262735271418468457477876433218133875513244187683142881333354364533778251335185116265868785877111885872862271747435888564138811186254321235325228387242322373442664665477116385281622524742156833386545123342831667838374256758755461667817657734224722836567128536383151536365454735834347251221446722761267623113263616278262712451347422784781127144468342238345145747686163142546688384513414627258137385666787153843483611772564466813438627421785132858144751864354555233132711173845716352845461533142315553557542782477678226175145346768734554633577126815568764488645684146276244853313761743848424578654363877141861354815881812156133238583167662754824471161863643856563865338575864472155258183474632887327243436744656237146172525622241134464227378568441245467615436511827485784446182163521141681342411711488511318126444145711845753734571411532241455535173237428668727837147858812221788163524156148487353748416625764642558652363822617183611873425758625672827275156423454447781376845473362658332571525668418213817426451673375143162237875766754356557586522172857172565222783825572111457536683567432513758747882283835758234452784815856731231416486132542156842313515257377884281554725572243174181575161435855122258714687562172718413156523771813441861734112772428774513471542772778423773637578464575734844673867576535587353755324813866415418237876133857241443831283544271763227822374765828718788743337321433282128186654335381262265566516585654364185528645462675232558274541844123665311743617386243146552356627882227768236555366347153874326212884476351626318644446635256534781747531567758423534316778213673753223838775334387624153173327251577532568613712578175854875661675445253281261137683385343526545758371268244353723718343382825457156778484735214152175111262474341527257516774858124234317255648687571811685272251573613185558236144144728114778714662161386375576552181661155685162345861367723544314162743323781682278812553774225323487785675354548141286232653282217847212727862832857342573513328764282433225128372175784211248233248882271782476554741732525435416313282346275887847682743253611341321452778836686565721736684784526533416416643416847632367447786438666163746147418277375228586248785188471754585273876588228714643858463557674287285512423311334386234555823183777438372577322416237273741741687517435351277187612285436512266137541763777546424213445153876658111786142585214684818322268812863548323468585132283121747744682823445758375877187165116556123725256417335571356758161726287468652388187346443188185244453316863752662512313222172363417784481463681427315633812684842472786533811622143625863713266421211834831853767115388541736268255847337484661246366336878653247742342177424217812332175157362123843752561656247446245716581462463615552374687418688866386314526556218184451857786481121717738581817577821176753217278256541258356162534532774181718482725737433216458468314373431846124314256147748455376675634488161581513373637661815374424853758874642841313745846261572576561154534777475451121334152371633645665213622364845144446334816337864475457542135215611344641461327433864437588728181172255867866411666766685544248757834427185782455748468683764755658667566715627788712642637161235163736264482772658673723378318526865243258436278244275174111638332516532432258663177385663486336586716651735718727654376686436142432284777137126587573323662846758647123735343887456758782153637282651841265132844386863247266683838671787817768817312685118775237755735283671547478347755411883668358548524667276117581781886764756322748215174384228218887661123445238126624751242752646214872376415177326488468354275765851278435144575734448364458835232246786367672832165868124824236427683486264134241744315416836338164124617771214845375533873613271677125583573636832281488426644718572147462315188815125566342378344224527757136624373745268817417721868625424786822755338335736375178841558618356438663612345574677677611361865578256273365533517833768715588257748157185514554854212252412184767431218356778871361546654553635468551273456312144267414768138643364142874375476854414456136881884357253681815362318754266833677124746273873466317258263462681288374158143451172466174336366352381462163367443558854453776172377185282435848885781713242456452221741651224711355116476338565787737561578568662342581371846123863421147112636452276865865376631132143511443776814587754378652622586524557833581626452576527351566737874474688432176812254155213555353387734446521811733717385642773728353614135123762243852476361552576524826585473684885714436168274645614434163848885565875372267512268627775646642768437655573341227185534215435613325141317333412271641756366814835446246176827236761523356826376527342518867381644385327175474782526744412246811311548313811181318581841735423523374772143747438885155237371313386375555781544241615388184724111448511241265385366785465743824655312386461511783548785338382753151288586633318634228628357211415432877321557472588432164574574886682474245853768723525161488757274133413115153831758453463324843842353321726175262226154455415416318632473187365456768762173331151871787753671276768456534464565541228185463242585446781846351572618578722243153216873644861687758726485376543833387652655634578257564287528713713665542771345822364453315883873226447322423864612244235384278267812341542787865756236665773416266867122862465846231716452383865363242884782382175162464513566768141748328124122275423748713471355486837441847766865321256262313413156516267111414535327644731772257474712367318638867738772866147465645463361213256518586371155462133375518288375842781235882145818243451376364467614433177788471151116132738745376635684578486288388868748683837561636752661175614567247277261826656342477246624747552441256845627328533144475735587488274575713634256537862224748388267232713133254566164253636636344733118373215632435521751583734716274713788358268321156163155113421887776463455373188466638348377444222565761365661377647242266571153716388186538336687428616361166357653657877511846784755257362566487434227145638328762374761833333165254867417448323231514263586514726728338163763175642268477248226468482415773187232145651534143756316246382657271354528573644581377562311236842847166171825141738575463286577663175744415878123561767276431867242773734437188323118574287872765611184113518432313357446742127358465745285235136852666151358185637278367857251454321585322387466155887644258364613362881781346812281632147845162118368324444614581351565136243441434836842422847674731133624664374737137266231817147647771214312671584477157624428381667685175851175174541322731421487833242684662368331122812814123726736563881184636485373473875734213768226885364661218456712885412655347137251337415451731116246473526876468412818245285885266874732231863873741462142516734422861281744212243388551622864322265374865352264513227756848151867453556152875383365256452436221633874651554754172317821231547222478812637213322447845627671257312863235516834678248472815522358555545285558174567213153625527448613283717673731651563714133766714738161547827844657844156311672664647412268651186557153654777622685482378242826372147478434886133362511184874517773376838485287435352331428745634522322831546858572471487142672644542735455157663711526432558431484634778181864222864566633665672652218614766375468785265518737618778356744237642382827464424375321856316676252341432875183526728814242568352476211165264584372233323176112826336888423633667847748757435386626815824857321765256218648247815213765256155713435725776312158365622714571756161642286524788383552413831515328153248816343863835135427148377273267237528826265677886752486272217177531427615831435262866584722388118117477647676881787224382421187158414367625462252861361518327773631124555268472275372882731267346325762157156272768867717784335656311422727512655217178835157581722533622238364855453823578447586345673483488542177175344754364617266573822576745221414855183453846315254377133241282347823738281826113447211235211312681174663622322333254833141242126782257276478377563656866142758517731355154558475441147422214265614446818154812546317121836151581682482367634654372753856358377457584387731285384576832254278574311431278388587552312436542416514327135122847383334434787684455886356554457357371422761546158344541266627213147776164684451382726718242862863422134183518635766226141816781233812422732762828537812182437147445383436323415134734681413824728845387686113273226383883384436137524173454637751455645642285514336615641774656652316562756317416246311454521286176644538326664347675481853547246527531253835331287447588758674182745567561168748381641683631636572217551334378817578618833663837128562612188578143171631657852458126243112861572548623478334146144338636833656722748783326782253686236726252514445324653217174444666455241487432641676883452883335642262861672542678345381276126642768833712553431335532311827673836488665587437236476616668224467726652871721544887525353762327686138236815126162834528516684231534453728427175374686323848162274336527336134332767488354366475575344636346766653557283271535743466441771234718622547835587163476687443155513245385155614277223867462674834357774158536622144186733662262386742344764285316375665833728858243133526186334832584184436388818282218718118287326483785281178867777736413823711445785825681556442881216417775586136634711732266132642487836575888538776431624826252187852571766435464726484875367474268187145384887831375761117722218715575774831784428163268611786474518246346425567435627575335668236122345153616211377116385763473252355432787268713573813558514526623865611584464638621566283642814786464273688733684357666182288375878466686468615746561161756351858453282445113343161174721455516258138343521842358333465427547821833737786552643542778832742341341684241785626861228277133854674723287843475148757646515561835414481275573653538468626231838536675651775146461863512835585524278445538613416264584753813464588513153883841257373657728633788648612112156278616648581234418374824121333517545316725537645548531643762731544741423673214767431564447687423786515571862824754811122582383348881255313114558546518754684627574368866264378348661223672711535163628842141172617436654531284656638281484268838768435458364611161858688275775623333747362712515572247635311443636671124255426141852631327368313861648255363847648718617414431684427311744218668326276836131715247578633123686578314863346124635253123885351578116473477278227634142132533642258813321635257121281481221545361337628488121428518345154118213345767623374434444837541847438668316764263312616611251224157511582275352378421771713731183453263157573417358814174834181413738735251281183583157257337865328868184111878734811673275668311883712873861551117646164232137724261457352163743627871111764653638635236841384366632732815146311341463264854457131273834235765451414771363418278253226331726433278637435763351876267812171483327872784867264258545445312817818714554646431756477122318166767425842113455417715514412418283644317165311856434655112843737288385683333885634781361262121886526185125124543633626448241311627337816117538817741582475273244144414122565423316123236444735888341512455566767276261725755414445165817452218633816184376727823485875427615335635815438211888718414626183623245746855876633578286557737765176622174567842761748562422717173622521834434571332875776134437768526571128544346214678147181844452226887818314824147523488271586625471832562531514453463177637166214367221461131543858254637515223355163771771481455147518338422443516871635342486667525427831731182486556171286653121628277752832161472181776413471227136822165848577773567277126117517365242436371138342256664144412387423652146156651536288651116815754635581815566621886562543838275524264361487755525278118388326545863155164526277482882887711251624528733875254868225125853544566635677662384352334842284414842212665283487728623663448541814724857264263822678523566522217651746238646118864735253521632566347531582853746385822763813738238683427574755445613846344274217764613561623237414488284272658245326561312622162267284372517132651174165887261187823847268862713827181571867634276177811767525516375431283666145454241876444815388813628655358562885571885472522572511476628365431655754853212838771888326712152286448834825128113768751542354434274647236417824382846157278388367742231762668765855322626342378134756511334322713115267418684586647168783221867367552158537844675442122841114717663535484876121635534635436776641654868357665687347672332578321443738433888465861748637756487133462475662327715585435311618227462318446564422667771367447156553471184356464582475523326778414718414518253623551267216742482433171432123485317184812355584717612754636172573877148374488561112283356131748746657543852525626745277441535116568384656717461722885748568776434138184745558332431172638576286218225381553542385268338247567757735464285141346753453446261555148546655866657311346371167138684624876241415715811235333712762718357147158336836146546476624462454757633366526327642386125232377431361586855557178714426181785547661686883524878561127477467632154284878717886823822451263113717386652633588776248371164465623258584464373757543176244377811782612154442734355563884882778435616777323263388825762261125658285773372684134572268353164631241714633868137486361866273525336876426364263673471473182323543316524852335311628356633431455343615216111347368362582515652853223411126747542234881221372264456487115576811124271257855778374884364828521388313188755448344331736885543542178445422535526756781478831854168673222442663344524538538231387232254154272576848183823412547332253228644882253768126866727521443665318685527782663436765637638812233768336223856388643312645326536413113784778485156377558781118621626855114643718514856833833862518312562533583244645335278543383388413366535546561268687322247433144476686856574317347638558463474473258751578618548813465463416855837773517478488186311846754526771525576421331335135186461582261828446188722722184681113163885647553237711688787834835342346712326348228875732634284327428285837368271775868187276515156546711633242386558538353674275846286858371271713656552878814555245547443552237514226874562184678731674118728648727125278158474166112262151571223831225121665168448656437273815384415574641824767781213882387474884258571373355612622677426335681716734523844475656485234536785843582654814423875384574816373547457628111223467116132483227547874455323432648146428637856462336667711741175576728753314857772117856641725831628254255256682712367848677871818732726138618756141544272165766311587387367721184158243821586287854653476825834116622124168768251525538832485815364565578225612768878842277344572814238226776531588583467763327274383225561323343787112557588367384675832854247235512657223716225571278832425837155882628686327543357251353813478664446462761684625417543781717665775488365481457118828765843366855154886286248658347285476623468542841337622684325114348877375736881634212131458168261154443636383433411614451323811612226185421634131112117116116744866545774856821176354765243827111735123475763747374636341618118778347385448434328482172722733427128724138562668517373545474423724653235153826774378683241378636713132517586244237217478224147627637857364154177887483412725657227818416777276142572788876512124772428786675886112871474215413552418378124311871168724344552567315341822343311474862466727664552183774815815523626823261833278158333311752121142633658623687681371221316224228157321852826453551678476187276778676372441783115778726283671858786522432216277425364571848842581828657844632561787722823777183774326122554417244836734277557783825684728825646111371757521168867233575143327187285867486463856446485568817623512785532337281745272327818677617873413685225355742663564138518353378548636358813161376486344241134178852344211527526853344734546822513317428576317661612644217568676126535573821446476242557121658837681717215746544768182488565454283871351812263658225165127231525628645516631855543158327132154635386856375877183415337211376416843514833286186143543323121452153463726645412715235467741576457662121381532618877534465221766333214743883761668587635847881581511855852837862481331525311438176242637737374281883844141244757562413782581616665556662755741354585771818566814265748675235852472825175613481477157623212717552613827577884182415764155315656587586352711371276661243643825335181783871524243575681834373513672752618737847216432432535475621583633473764642885785554263441511748747631255321861133518421466212255534641743588617558261214832616855486471436856428115123175855247757462264767275676845253454165511326434566454688384718752224762463223341543622647174651477832275254477223454325174551284657545252516124138231738751446823346768686818378882142674437286422714443131537434318236276185417555181188153563163546864641376642327826538853258271776711738568761263833487471388373654614362318133186313741541134416547162353763267567748863574184424322416484376284664632675151152574382117245822358772525727734658775855666824126585426685445521185651337586157624835381712453168685734243545474746163713845828888432723774182533848371672344238148837772281424425314878763753426375764888116348736734767653185383868835545368723513546323677724777472112235276247252888734676261578675888574367641511271527782848523178634221652712571547436382244452182421246333572226856345566578477586511814328541713487651364323637468558572282877287638366758738665671245154248634557281875435312831552123244777381628664127554416538342632218618666324725267624147147762858628354885436621157568833771675545261335475615621534434472418131524346582258311431441875285788522513362144144774517585164321337175477288654788248814272478173581218124851448334782326425183358438842417117181278816325734765378341171551361148616137572655888588584241843627277742686533678334374685756134442836763532468183426854138412826226454324222221168425838446434723438666178267844883543256481832254127472865768864285211846141832111748113288243537254848611483313344724131644677258653574371211112454836862116428474617783814622866321176877335234211151457588643172658424724437428284836652376352434863424734546236326857773477321624526616261574873337213421848166488761183237325248138837632385845573588572471685564257887726176345262228137184321713263644128743868257752236555682588751852883388871726548862212461352324214411114246716461581433455356777734782826363121645778732334112452811113731787463111581638711842613523455212847845612642622376554765727838283577745878227325636174352752642686267733454242465144236323553428143486787223156531141643667516566726585173375644415548763333876638858253552623261681377567533386252677183865888537653526178315882268545812161523155877673528778882526114876648154353277118176853265543542223684825714511528811887441464583468551232258311867657218215334676548338125813118762287278313732252772653754721614781317347587463657473734216346633634154521437458714176267782231553565137731566253522847434223868333515475243424743644246564762464635833414323767637223466824156281471787728266545456461253235854588537321883256468715877711166123145444141463725316852622427736182316411124482838372123834713278368116677734883577686878131457855723581831188453823577571683277338275358158561852726675414688482117213715362336225843471441358236157837152384622266214328122544215867471666684872268661263123414867422547874473516534551558867834646887486511566371612754417261314881316156118733464616744531252627357621386766273644885347461318114563562855643667263657212337218262277371724171464738326246827511728354312366124466265778247858612633721657466771253641332224154884866542345621616167711578185255523273176345375148481557524136655563546862275741788442868461715328244732648381868574367372352541564157778467462488533331433377144445814747352261728128732231535846233374178313175654544636476542764258237254133685621158487257811186118582115131512377283565465534845861761834181827314661863586687744837181285257674121214224873644733512337823377686467786345375658626845446735311645131765853588167758818653743527137712867326833465363814256527136564661468767762164454571287666134412128682447552166222811667336777855725126543658146237362714548841482651475647252842367417861424561346474515437572724235788742284818214565714238362585764655432633543566627741744584762813523472613656487777552177462232271237464681311774616515318412376316143577377856486244462472618341821847663338547868373421342845544687244464127822428661755151322647262374783645786651443627418354167815175428687331862343652676781251755863833432538621682738265281733131424336576128785847852231374287386331144456412615266371468584174724588832332468872328433178287546185554774632588686388314374245712166212364178827327255683763324176783886184653485821246423722738165455135387516118721223214343351863245365235812453435353474776531744472852127351364618554813356347772547428842157525236586832222886221638631435843556286545457513335188837177262584764537138781284488158726641565153163745421518625327261482554725733166225372813531454214825484663841353457554567324781773187465735527464238646274251315225137366828765244678117231257748852375147524288634214626318283155881554822417832358422658334348715826328526178275624565488821416658486115613687736273728472487754751162688655247736765728838412876853688332446335563754716454518265314837177661884268326558168853254343657584373766487221684351665118175731738215452131111435218668334524587177331233381823431463166474514322742431751457767514577276643744675738822656511437575151334665743386854236554556864571561634717224411888544166664777415245523144585541414567211347188218452665171345352415285328785372227382581681735633353752432528747377584233212475767724863785465318128112423637325756258287312838781711628583372566858767457347214344116162166273565437834455262556664137332521534176848872267431186261861227772285858524331768846633338112786576747451871664657387332338274718283117786431716385234854462827744754681133173428883485818662525517166146454452457467824751873543846621852164871623263557626676842213865767226384312537161444148356221483325555143764662315425117381311683154228512638735347745642772722123241167237617312783336161343122185212872433258317317514615124723431385447451351851612773352333663658218122127713834718614546771743734442624481454482338471737523866116364371475782685533516464321627312746572132881424442184586355776631475557446455581368784138574754812433864628735853533813831126413325613231724478631126371452718146616686465773455124758555686316844321127665517781342887537855551687661236655231234438783244461445812532866151261274238154552582258178265776564578682663638585666674557746563587254372354718843626743574382221642131236313217246821375762584324537221547734357121647774841333472263824364716617648236327826835628611247375153786465784253816277155275674278234761116538831348155231767252665727528378842163145265243637511652524122613828874511782124462446357638516858556874628871137247574123673438882656627576346766682683161161658884254672126361135215577384356826417773641877681277483272324113424887223327173761316635433811752317721628533771522874424475566457336117857315333482541154327853456654556844177486257333452224521775887583116456763362316475516555242861837678333328456862432173367431224177871323865353452361556116187183852683645246273378812313863748145861215735511717417535588563144537327457165225825475614237237567188844327831583717367447867684481141273172187367661225812741781485571575444272128247348574331175314357753377278254184523656351871173767763581522577118171313462261424882221847713564147275488213825872164767314527633422626517816255333415715837787711868381256562165113353545131861564461175712618775111155265322175182165645563452638732127216175581366587245257122852158571378514211566442566464231843861165582628475126843577661662165632852738646824518624472157821164156245171362737481788662131746243523282788848774532558467548231243557447812756828132577438457563488831421365564246314757658273582252281874241551272453788313632447533322632346432564853481724665487426348471734871343387146418657465181648627776576473886587558866276326755534878587786256868866371873324747843863622134321373817653585131731676657437851885845777144346376352627236823577168327232525844345574886678546421442231353824845563857583256484445328154415416623515332516854364866872123331182148378411283531686354523556323576212253347562246572611835354273583765686521314658585687381464631677844665653738487154558316736414265337564723363735872867322557844264581163115387753646237381152235684662667864428371181588662582157584637224625551336376821168875611773562633857177426714772666846621147227273672481166224152612861642433847212152135746817748546666421471212473642283484367838556815853668426742632871174866488186552725467228472548344611146525376438662584182313844364165617232841427633148861361667762442835188732665675343336463851162835414174822445871814627813676861476475876672348346364165118586284843116765668381687252337377864155862628245742416333133857315717114343767412358158122873724452358444336647571543412218556113784718238814432273181222147414481777461457461675585663456887133182534541173622376414728218618177732252831288133644726614373277167754146733632116275526151348142533816271228331615264435561145885242531548542328435758113173268483643367383281184678386264572436487782322236346462156673737147473332454336867314426254247117756145381381656484536327642218554268455182266873486624558345312484131245368623833315627323858157157272475356621846228142883858464258186587828524312872742614542623232542413162168236412277313432351525353326233143458373213116313461663564376252414447754732252265282457873318528561413885112324714558127344366833861228436655786252264665252741716785437761346833755878485246384643373155756458442638635751486551754636813637667417467813658312356481287421844384186557824722823467487835871328487144833872644171835328867666516271262265311678467165628176724183771553284337762647816872563637825672187181864185572741863736635853768244812377483676743733582657182622218816453626461453368545125243464334668517322453751722881215427821874544465227554542441427161422525578673312727777187741216258176635311316458744613274264481867637824852386342372586614128726275547113838634752676847128186375736316681253388434828632287825168611438222457161458188717566731477477181815673485454432757547382211866834267226633133228648175352155328485224646821748661348841643341271467733234325858884444528848834661544463552213718723371732784256117422473664842728727816746833631243387654628567528875661354277713233854133551412181523328736324516558668835635582221252113532552364337286426846735751657177233136121816545218588144726571854333834682816237653554185628615715185334185715271243642761741182267786265456841665885773734514332216724456721874443637861181433343682744476265271518313868182873843233632144368378765763642831711123456227645541527161182842532641155474348464483768668733886157233371762425824266711674643116788783841687376451241865335316845532875624158455235333553183457626872444626263775377311526733382688814433658884233633771233268485455488634324743626862675612527253368842343324372544723341168874776767562513182853311385113857446774542617164756286385413414315573644414876363847347585435833472422768757581555448764814584713642787774231372783338731856344267324762872818785188142737138552884461538626365432315375688524411854666535337572473117364285346812167687887755653858656263654854751586146782156351282567481783365181615355251553277414844131326733811216623477313248534684636178445556787213643563583853182616621273833414665182141814213171613437771732884564335233524527365318154746513628652262273285137558135566783154686421317524727548528666125187427736766327786556268113674871432775552781368572315316271348378266373532525274174572885121825737263476318784712851158627421568473687128568828222273724653378323353121164566477363554726124542874775853411625452374752223577443887283281763364217551763787617557364273356251677288242421842666581877861386321736651868654436753712317114746576328175857167643184282612273411238736388285661846126386462783562452751731314187416183411655513724818643443758386866217833188447715461725766753421116581711411351787745823687631411256313841165752582263138578521333523574541733548735245783621321563586847687553535126283562513636556817776512455634453361586821345835671432344426837365871643367457685786522861333125324147442777623863525478462373571875485671123418637842748574532686815571277588158724688523173721511728743658362323488841824385153232675657555653683554255652853365481663477623678535826283874377527641858381455325517283278516365788772671426157665281568436638215773122244725343858813523875563157157742833536528271418456614176773336436346667673781336684762426441748274741324558558825382541774535444425553515231233433344338473136178681622322332644667682616525834551678521651874826773624335835846625564348384682136484837276372113366686275322422162551868663534866212821243355467374376854727861581478554576683582585372368723747572517653388348417815737326561128348112411432332687862461183212136613453253385235128765762753132683615132136548711684877263136815373845645368851181175767242748143484655253747413127315625865471778822436662222584421588756412451812242475613833832152583341145212876735382351611773542835146227486761366217838174347517763482811584271566461135158771324263321448765472778882484148641254285388873481678234441555488512872211215444267272626647877434673411521622247156775428317636285233254333126878263475473755232752264266245833425764162423646737615187472132378835838132486666514611258453256228418173377852363644456363654133143557786658556826368866817112316637224548414663156154314211847261178531247574581382333424514832116858861788257254454353473873174646341421813474735832265254537683887185786135274773561286528445441221481161345331676613134555685776533315381583537865266382736172641667866173835722145635527275426288873651844283413146285173385512511745816836234544351735725363531271332131344314731561252375515323455227848141438286867113633222153345786682621648183813832324286421616376444577256454414615125464484732433747364675786256435678178552361425223356836228568233287151756885277518863281656636556327463732156467434348424744416615222452464117421842771824432688221135338441372142286378482268151761153814538733622447353576452187714784254114166367613837638418281366748748352545316365288146165787142884575448176371781461644721681558517123676425162667743232857874845453322733836163554846738537872223253335235813864328653622178858362562684342237635362284317881587641781771811433168875876643787331318156126256523217416667824716743347158474183274824387656117652173485481511884853173524334186865821521677334738133185277654841448261835757731621176584138121732657742884664442228748818622482266117816341385423466134155755878386143437563621134313718154323217478433778257821822368761888371675627816577845146764456256141678227164333736316654756467767516184762362242542373457115548486616273471661722521565433574284761575584226358577234447683712257813537541273782512145472658545133375718834828661832146277233342566257717768733533436125818743115477225812582411644443813577457183475665781632712856213552366763671254413566454515836358253548775511841364516837486783327647375735436251512862622162361134522285448751877775114821146126277164677251858633344332313672185752321716757432425445645528687364263748284834245471842261248636658644354454744373154262255778452182527551531138812424211484811115337748568538238147558284681317881342888823512516432842466514454257314863724172624515423268262556155242534512738886418473318532847422642187842837347276427141331143816773567726652248772352855128126484727216838653617481685786765271533158713374651161148325663272311225264162584511372261733757558636351626546813637424587561382252646665828376348156476831558451674812514512233735543715468161137538756777511841164444686564564434111747514368375426553318346748356842363788783835671167812356878534461325884357533388251185471411746448645237671526583282736436577823453646415233872717647382628567774154452544712678423258186841478451883147537483315636535878124868628138778384525274416162661736788487443372744828435712848632327856357656546815748188344214815787284161321171532141665753324581361443262261881764547628141486414547554647414471832313264324834145482563313422222312535636238384548483683185814215165618137137178687864844542632835465865744328288675676712141834436634775316322251435213876168161713881177776162712388656828633661625434272848726525557758427742414124432386335587748511458883241643653887282741223168774644667718775132751634443326312646624261244327563533674126744877641666447878436756634232566861615347688557281436115277432638756881466487266726236322755184641316141348236475287786178378743543214347321667274653331225686121842362764881417841841633218861661467621771727373466238528123746883462548282136373563572281444114116257247846642518556433576853154346221525351576413156411766137563755814218754554436146728488326387788361753865828583872881582227164682443331783757642712851748555182235234224285531726873657521276386471512177542231887354772481286734752655271468468852311446265725361133657465462854184718423874161271556168516418874455184357655444566763681446844446852154785436573736716712112246718614153365171461712472358573263281263418626421581615542468482467275486154773438261682547253115824538745873333741578348724122378483476145134428464817576758886546771254454715418768335112857322566553688145373238863461223821767588437448546866823755544715778317252183826211588742815476562452866773134425242173273777211326213887866315528487712751636667158445712512251668551613466111815526286326538316328158383668667238545346586573325722427675658142683286553277518757888364785616563452714682427484743476733158723638816173734633674628362277225588156651533163131488186724333782457188751656151766445137157313218877554536338873326778381132442811765885578443662321858127738136678877536147125327318877452152685681223524435624454128864666516143752273233485787818753886647227214373312517787554246446677181816182827278857471884284867666434133232121522138178117581864377687677841518712478878738583131515344214232177225724664624687645366346436634526755237366735268663117721471518872465883543151184814443157728413626223233148125422556567456354335853836248721338271446377574874238528843874577482543837483481873445416454723338578432347584242582787134582525131871764388314531426221658566146144786283234376374814648282866546526845324342676244517124871532353553675271145728276648643466587824358866547221614448818225572463457322676455133533421113531763668262418754134376375484646388656641752343445744278727748577151485567362623384378231522536842851274521788678764657428563324171768226853831424858681354553662747331683176184276116748764237878672352656835141722452417527326241155822271471522434345787585826882281877133175878418178418617157374872774657323764738441166763362665511576274437561222227563818642353327585117865653741317284237454352122523115242425222842131736852133852868254863284355257246713616668535541816823157564174745663146888228868362566378355738165366562444142164826325341788385588852266271886378176512347777114188263871675371877615488374754258746182755183182522267786272264244424311715272443325282476363354716236727412543535211325112847474284445385115465873674245246854361622711122327473741235445717884632727586678236116281312582342415284118477861277857657574774625741722725528343115572185474515186774826275268178614413127477654837186721387813564871873671252325725463568131473472565714585784365578533485244277842583848288582718458618328617287354624334758141685533252283623444575165452353828242564751722133577774188872371714837423484354373127236624828886188781115218636515377851117167663513321522442717336282718615147468418551464241144651512448653586243155663774887131176282623668388655332226516318173768842818744771414325143371247231285376757245846465538564258577686321866681872587627335641217644473238864651765346266611487363366678343717445876351836676468463617432667418616343343116421837317641514835886386381517811811611135773275742161781547137685725735874318443528658468278648337511165283244415147875563537136744522247453868261835278512862656277888712167742441138875773515283688367454885135247685861337426455471885884484177846241231677334648337737876344745251841827727872712355118411554247738736377142828251427868131214577237753336285171828676655646262672434726443122614678811245722655785236546828175228176711358285461854225866573654668421243732865152248716551736868571585447341823646686328163655524631855676578758475776774641317347433567825417425881347723411244644612454611118367313271122715746317121551331267664642651711181777388321143256583167734771558647443144748222772147487576518244554857432421258431871335676561535127467315432444187732386853625877622253713813173755682853381577157273258426724661736822321335812635517525383431528217111711451528751273667622768756357334871888534322555137771753477867432187157271485515453285418763616576177886883258465774822818835583882747144431436524663833723432337463874373876644722114155388238645818837336157518376743178658534771771228575883831525878752614651487476445645185156315352478624664222733183318771211413221171216224167174164857868678881615685474582316364758643371271157224732872277724251732621444418837362561354216383862114744255744347582233613842215476751846187533142862388588728127668451261578854651871416175186521562348314381635488241855431773716637537624657813576568672726764244863445867334673116674536224387685145313145573551227661157474824285625686214255276621433242341728357824235327743214846337167221725574617736576717388638433322483611166551314154471128658151766137715236224571635716478442577857648752541568618741284745164751671253173231166142637717114186131756732245727473353113814111671435224838111738752162437538254317478668571338812178887711336723342214222752452631375156251418738825437371432464183685177627611362712316326533513548646428356173861762411621141184838372263732734862767548521526678617522864624211354118752473252287511684236244848426382226233347218875158774877726224135657553433486811748713372164464136782612641417488148174351417717547427588318225125824118245833457286555273764333582112536786133513234428612715165235184761543581423452372253638223427512526843574536732157886877726377246486725274554635135773332158461626488676148263775321253458183135472346626544572674718222727272321421773413732686277755537443374383167427411367155586151554788877284883548363667774588512171848367434647632818474838481658621346785361184364718263212374825146326558635622718685566461832286735186138362448477835377432641834448218745175581451577482525615638311882165385386455751163381433461226334868118714886154841183336128642738745626772587573583573354838118678827216422371315261456855456882853461123827817232867233735481386384812384652534327117882116236735823227271411833413258868688142341223142647682647624522551252445567537663543323245513438451362888348126132838253371321335157326742728178273757753584584758587842121688523455822262337613328623581628347574275182872627841818734816831658636713682723623361854312681635385655122713742745587187864817234668832678168351421286174544854486851128633325163753556871863822613475325314726282147685488756527833251652134448654484611645364766648475655618362726756572628252485144278746474522366625783365585751877538264585778242687632357733472832727743132112842422646485714664723387516487583434515822468536677817335144468773831282147157386654174654617645535525425882371652161136266832582223622866615472545625132635481367216184765118764382785138344862758267642712784734124574277565422344715145734274372411727652754684251655735323652552532166228278361385575174325272432217488474811816255333665873183761328253353121736438413867836821842434735747737261767134785176137877432816456268846421888163446332744142376164155366423831361814277247343155122654856348875133126532466338816742247768756136347182814315786461654247171483186583648748328663648738517544523247273754686333384736776317655541437411776478417872636354786441153464527262173577441743377878685637651564772618441231457726773813777742278425161754786674138328317177263725483277264518162511511816483762372355672748616554374442171434668455133814745167412525621634766713372678131244152713172224311547566745424547814152168256344817755286344754552626783417733238674381524181422681868371758768636723845142154773776471265248677451622825177163127356471881835642428661838442443378523378463816654672472876721244663682634885537766811767451132367547627263416873531217641424547113841437777462475563144186222838883836461873227345656233544417386355683351668564715277438868365562237163216128111527438823845213385787118471457426838427672118317547425861665274436175721626643187511653636844357152243275816323638415777278574841252278431637812843287615533636418284137711666552741512761613141661243871646458244364117255236888823867538335755258331722434684575548388273765381381843272322778138838857282437226272466688463173136632128352131655562812455768163785614535438174687587638273278138656168378256323143512286474184535313237253672845863773427586556276261852826772344328627276513226814551758136832458382116736644415537563472772877816774236717827166724723186785555812124355226638321488668145566726825457548868761526558251623185457861331287274715221633664162314681681471284344553636163248868335461277314687751188653676248773486115812467324883835281424487483714314227816115167543584611446624715874445155528873318465416747335421762343585251481133641335757867651854321436442522546665226674248284623762175316552825143777782427757782818311636727138176753614556386484422284733313216573828172362676188715375365583827218764511778444135331767386284175123471227762352775558355571175344252242828714657814838254868184475311567128182882352837422387346846581462872261162265674863684157714422675853556541127464411726454712671235157623621237346137661627875885262843872151574774526387172347764638673748516142113717313537381758337373243526634612332542472234236852246187531617736652881678187474667874687455735561751475484338365751388245335742833662211681584771721711841584676651777527344623462147848557186458243865485836771155545162766272153158518658443218331736671384561763478852765873413455724511536378227121266451416623361472415238742628343584642478315421661741435657278244675423451652687478423554143524152581442567317742751722286545641861671737338721815174313534655723771531464843814278566585862444487252855825366474311636283146443357241617845271677421118111721626287264828244278571357857686765184717368844132886632487857335744382174678243117677586352245335635514877853824757514748134254783344447211212244855146115232227523854445452643118218871281313732737368462435615383341156254147326721656766144333527484111271813241276551331653172582682618466487475747762813377546663411146472238714686774778588835275351585724762732276331351244767484231617655815688133224848885712725543477575745445337628627857716357263631365516148522448835423718535584687248518557612383784762684741815381847714341565735713832186244474175735256871223718661868344778886445632428441377151127548584544757431638243877444445316752376353712435456424365618815588726158136246477181226654315861413674574867563443452773324466517442566651417412354418531844612225173747755256188218158223281477672865417588888716323314231838684851256526516244776663263825772244725246884275554827714285441322661384651667381358636243383175848548161727314348823687883862533274677758358771677117464457371587636428854838664534876488226243175424178277144467563818882373671888386312726338646613512341564354253871127416447118136336853475511554563473727688387887683611757561536832273848575164711136727335384674712766371875162664433255444878355283831625282456555746182248272712662441138862527663467683367225142283352725637412458384222143544433425676241558614383423273247656688334648464312486437656847413278762733648731661321742246587565528418643333151657783124363286448385238267431115555853456466762316885468872183545716213828583434678383881288111682368361281588534233428237715842748662741416131213525145523176356784838775455276485615837233534314316272784812357784446736188581537325255552484763267551336852172473618822256544837381171375251318368767874644787383352381522622245228184154514138325252878112835214213575116225227411587567332553161385516375563313428742661585488287455278346643575235868128637224168244275418733846213212642251537518684344224268486766547423572818878813471814444687442783727128166664873638244228131226287161544811357532222243245326813461424514516126737158343662337665474842152761524126821773175723162422537464486584346131318881854286425833178614788488438187281571778462475316475885715715372318887735143363878267457135334452151711364387386778635285485581612672478875762158122312547157737863712415853137186883754521383158441286758262167367648212237411112136422387262887668655465775786866375424231487762686281678835387126564654454731865385431883232134346472837317814511741748223182226835724252653271854815537713622164216637784777731882541881363465586231125151813512753823116821561288756463524572734726274775583227284826738874137518774332572718375666426175584412186478334272671354665344418516773121121185364855323557615366814223372187675647361385763385576677663778624777585222717684358836453447365614563782632417414114321651254735747784157865775873422144138418681548851344587782733885367374851865551352661156335375523327413516628654472283736434873775523541712646282161451683257215334647335581875773888554541356588823456863531215115157272727436428731187321132612774588461374523263332138743171837157112738757775118873764777842747257837874762868455412486341435227716565152825556167313637747168746564635586148753343523156861441767237786152113134353337135138223586362157755727351284153563244411647513885467851176142485676776822468437642234312515422556214852715627282362617428637573718365223644158856173882534858236734342326328121675635578144134717713631868561615348514127272637478612615653484677235317733885438361511743147216636327617856186133648724787515845337787551261538414453432858321723383757741861512523763647366427614686241287845117482632267415846322136725211672286351446874278876276757445223338135645114228276554286511228217167347827136842566673143732312278511452855657474723223283333211262824218642288241153478778116723612188138244767871788436813572548427822812145838177527877346517518117714168368246685554355525433144481817782425152314711362462743783878438567743871431424347372561435165833714663712524838626541373881453414761727166235167432456715857867823684467772478787841382844411382267674232336825375412565826613438364376586347473123346587735278665711438624567441731181548257682362161143485336861675418432711816714877784474147723364866154251712385774383367141433731513524665465158545772682382272812251634241443813542376116881181814643136262167473212888277386154428772265467326314453377764548156585712325214434771774557872576846587485616121284742214163887578887316863544252642838316382128866416161125247877262262486555353581266865456854646854668135621666653156558844325876124533254887324335842836168533884324516665287531785875542162166588821257676236265361775652464271763858326636324526562617552148123177571851348361124384748828787283522523344261848338611357317283545674517182772725382427828648184522148447326465181318782455321378244685574831481471155216388236217577785275384333815225822731542465755144563653528132331414535348881284222276238118832173183636585622213826336817717165872345112348438737251757238815214435583426361813625461381257477576113342178636587242867554387716527548723346816436674445742323144485344667868627373433677828271481681637534253651581864623327426143113835417663438133455483234538841213411247277146453512722372233823833816432745542418381474564766728771528361624462356115533175353342861866635177874682724778822315267732284678563682741237121327435875185258173423387376258847352558234656635543833361646512334281661242565735278462243851654748716486621888423851271233268243781246577567115412285815387823317828366783564222187355785384574143876655173251136753118634153137132666831826826363378218372655154231584382154387575213741166548868678727873127746434414527732785664512116128588213344452242471654672843542261287478435325431283367552573611775231243332544364661483347627356875666658774317662472416264161425687354847168516644571216278372451376346251111342485473781788842631164756733567664272237316766111624758418452278664486224561847666153663515414431461157462265138715667688245248883167512787167127282157648234731186744681257838447321241264343812353338444214755386161284274145372312225346783327525311425838234135256756285187726847686246751253635127487683274848614128611623656834364643167422182581136255431278326647651163267884616373733521548774515312585482823622812323134527547266185642784735522624674136556462161382442724143321377457163471554378524363667155164515478437253551223345673155622678887837628135153174513524776622516317778643827323743652248517658455738764165714744171264721553255648633731876127435528561683628251773163636138778282157777156842826883763545533412274663264538687357332585715623631176814454883787277316583134385483688781288235654472731283687287163853167652823331111726656536343315278824713715713572357817213588727678231511757716817465373213272856548355832718178822241552546633856873163221737485611333556825271465478361854358821658864253442555788686777824775447484527762684238218454342681834341483346122485413858353383353476583525283113621523427744748674433475563863215753115555818774277583758146134626136271776434848368624615128471148464117721812448417548241144717612272854712123664487417472758381417461447611864823333266113812558462213844612161488375173134856464572555123718415313577587144471418562731171626257476842615151287755815623345167776231417613681543713362616711357871677545521545785223458616633236854665734878437616647577351261435888573146588866532455742855618865888254528212732546221123684247746423762642532655377176426517372173156282142376721685437677472581563877188827515344844623227144781157834525343473867415387282578544116457658616161767317774112823833645272142415282883637137881288521217868721435531564377763458411271674535565234272675158414321135788322577757842118382718211811256278413878363542246426316114181417415654387647433164752158547578136562182433365577624836471318812564744573411634183156712712388246571617825545152166614454378383827574146612273476727763717684676212626356245471222565543382456276318844338574553428141348472666466137261727741178573663272455162474312448823122556524712647224468585611312661435274234316737832777418245363472686111321881378244852562688816773451577337863876152267444812378232255178466732133851351741868588674157863315418481183277342756482486388521731477276412282847677787137156188743252688774675413388667248718453775622281637278264147552543445524155362834727385461836177137671655843142271121637421187417343177367243451538562811161527327585123843258818735685713551358727181345361327817477154871176665561565718582182536388457165487555628358875174834534568843583344522127815211562624647333257253562773344552674743826346368154327556581543772726265816331245246153317468716585323764154144567834362678621176667822127132554155247425374157725273455764188285625566762267626245476564638658727441726881452745341164146118587482568848142325721574877658274821147137633725266234638262158357337232662153261851171613578414846726583655678444528675134844884663838365548454512436136481456524574576636372333433133642456275248556871625744787167448384667783754413274434511376777474441371332643856168226221618413754883525758152427448157227735121571437824475637237734523156665673426375381863443325674681123687136425855827852281435562264243113652844116563457586224337752623687848426664525432753743587736782256257533584187378551528368518731426868385614282624764466337812651423143578687538166123726213175177152368235177655453485673186563367265287464748141476545712237463888475828863566612132673416322276772173846384532435654611118736575681784271514446173114774464173322367475586647322373461813177366261127344828326555582247543141767736362628251872132353776187745585222151853611824715154451314554146818114442543521275327357711772273171284317366354456387734722836812831337725427553258632724674365225224115254616682532721774377711183453675723478342578267683444443458734815821722661386754268521465315462653685827854336614253218415142364348787354673124445663278478316711446362311313624857275634663413117742162761732286862541723154835625578436426315813737716218382731145188636126626565155666583442546122555357875343754482727667571252414648187378235671433251117111822342857756771815154138617277278371275837562362736717767586111518536725543465645136774618371437851313836271642342831857855684456287472788731664734788372711823632168325858822414451177225877241454142637226434561544153322142744327287671321446167571522682576868484358457412828344312542788183643775672417486321427672727486437312846656213812613467225135364715816333858855626134453155283664831254226162348142156328514741731822834641475445356658511154743415567638743847271742763737818348766345221561177168223265653647335528746461567132121836587723322434425632784366237237774366564717725478234626831753387632347428211425834186786548575457558162878681881461216567422824476353156176672725416653551453787233414213441388746222437268528338378756167887752568363688622325748435232627418335351538467388874536621758316238422572187824778237586542132432174287867756711621265786161818614783688132622451467123428211247537486111348151214875827715528363778486277684421764453723165668846553342172128216323564866241115457357556335723444412464277258352256668383841285333168554145677753121856812117231515566541217653122277575645465276411664752324335414868481613212712577121842342588643288231246414257651612635752426642635358688122556534487148782432665252787756812362412263758868235427216542813745853776233628618711321842733715311655447315743473512366511587185222335123613142868253521345244626555637167138836523471514175524871558326731523262128846155377632453455144753766855518311435867611155226362645316567455264652283384473128841241884336823386575412521837583316365415187484622368522272111837634762472876357545554677457552821467513456188623238283118554352457385282817468752337618552684516485624472335766116566488364675335454512781867367832638635181688744212141217845444364337424444424815116727577782815435766372331771857631185842632334877316115174775618464557717637775676873582535113611163553183767315654171733111461147468737612517264232372387382112728452838148563152871166866664825762652236778155848116663137438176827247723487858851386381111178371782248575141813838355366434833118738744355455328242774484876746436412516247741364248575141684134641561272135733847772173112272523668464567721212581454665578412648375718381112336363625741741625228411488181828526544185258827441877186866555576737814478467368364233438255718157558113626443346721661655783418232137168621622481234781431367881161876555226133215681784417284887155467886615586153288248638135431133433768427734124634217761321884316371233162141213531176165762263552571457367378318326681867171386242756374177118641878163441276752146462771652672476141355168725581137373857783681362416571533157752341543177347175883346355332123817167836762636725655472174783274856441183826515141575453517733785285215166424887523754612554511121646724252521142124285317457431252544866784858736246444281618725648132377464816637842332118657222782188733733253854756534488312471358287271286458532384643531345161851464574888558648768288733446282748363633374328816775765776586666361644848171131328565248485648465588551464547365228414411861727434151786322144323363311367125425731716288368712237155757558282671737557244184864456532484161844686428831321564528272177454145512824414522268526442321622733441513654165387851561788431324565685852837234878545472372124466845287387766364885283887286541814121826364816456863762371812187116257452843655812285384151256833615251442316864788388484276778721483117815252636533572681345833138848686722672115333588333583885756436274823231653683522572737173433146218422264533752675538336365246856468575635877725367867582766437272718368537315513118824217452868148853866464635835577667511686387851324531888253617264574521856743542884153665815378744866562223276333317362838164145483651843256851851687571253654263445188172644738515834558822884314521238184447155655671348148538687711476537314535181734617227786644453712618652832112442721678111255245473357446344154816841512534748156377783474886346637788512183587373752715262556881635386415461358532373855222717441161671834658278416313882637473546675467781327835663622785611634383585335864434861848287325357783643343581611116757666215611246426426646427484131714281322133675184768216846126766243374157473582868788258557284525741325154123376733644386776237728542124422421813744374658443884844616755166637862115277178364427788242445275573443666165817441886421322838153357324682788688748586387457851886675754541475456873663267161155384538181647851654871217612674278333383864431183452272118766351284574546171785112235486371565681128271548224735644254558526653734448413182264445727873832566828153861848663213485273233388846828866552134425431828848844418261254861771388433481882886447134755313857647686636736883333685161352354137516331611465365534212347261544462755523536754426834727212323428615754276862813363642232161373848135518253351676626741643772742754812827753587238523354338424651747811683642435443374417426552283853132363212316324763364581626622171827284485124256571641372814212311175585763785512565568761757675353863258235755818136671456334736734115625761457137715841341723163443612287811423263634458216274237255342743751234163525485223332144348431675485813251461158178851475134263427167351317471848814858463548787681226823461465426417422376835315484676138143374682284833623851158224836511715832152554473735741663625463253443557768824287648463744872864274416873534621254112145541444527637383625777564572446612412531383228441685512535771416254316116134846625833185364475786384185684787431123888526534111441848478835464435435476631717852813557111353656361464244885677548551167651135758466586146372612364431813815247655311772111347262564354625886662713871156751564381786835224782148834618474212517687151563657722722283187564425351625732714385264444358176225626478168828854267672624622314575334787656242665213364713614658373467783524357867812448468845861763323365761564154765712366821164486331527531813155283131632487787187255565336647827332361266143553837585235456347767684671172184487843225767482845612148723633167832244477384277648831712774157842732776575653537171137813478868623587332786716321184872888476455425717553344675781755825863365717355722126571626718411563511287583232348554686444371186457263138112743715345678173153717374374255145183526172651863328647864348458725164748114617188143736827468442658183881267837732781573421432253163133245138573467483735545651134346237742786784343533776321123425247138767427548782266567566524718667552163526164882557171413848466887181428726225847422257423168655135243222511255563378776178722385478457624781843341738514276475583245876136627142135656262465835825261873545146221782115843512664877145186587388135242613653875871344852277823576667847268267433557628437285523771541157841471686164114781312386321126876125155362467724815741442351514376848266878767238468471613364767233246544277511153652783136271814387518176744416773152142328476763333237778121617871271318847585825784642244222618473274245812253648274165453321738253367534726786662767873312364775278643625111733821615813148224713737671876851848676236516538116851737426767568436726477281757553645254441384814385113783875712232457767664655171687666632222412344181537888267884767231313258474841658128112512847656457448384445461373884144315641483837836366714523867378468511648117782177535684551457152122183553218874487154128134536788664681617655615567565275345184827186263586766878613837458827126736218237712256187471383865663435743635223438215524621616274286636681827722417851882852646652884621323712142587587488621875271313324311462322147573245211474422724241856285868777188376325763154145142426623352767685187565736831512348177314186823522145537887647778476874483775714818237827688246152551856842222678352251586472787113715411637563588362131745624131112657687244451167246721353453563335261585687661174433537464682622818854121856652181423331468547688274383357621486534537564374124613738134513512862324146232624174124836146367452558661151232316314763477772327454177753843663111447782378527831817471634677874688148264775674375728858327772326326214288726852141685685171812638421438177761665615875188648813511524232875148268334548424462323442454323773366311724463766118828264383271574324453588446244615627747163781878174342255566517166511474338127826146862474744627367176278172843227812626212338236132628326472468821783578613625185226245551317365145318841378587276552217714331745333837536475888625432772815685385378242756855876186371562741148664558434186351651184217377888553677586756187734748821328224146822441276473363326365317825188757587525832754256471171738444171431257751813177733441574184552583378264831247672882646625777114313226266857733583424276451232322611484671538784286512724813745673322786718485864582374741224452681545226233628735163124283337264227446638517282765776256476118272873656324148875468275484664678877211512823712424433647125283246534575446634435845711328714728477833476618723374625354335664327662175713472488757483523151448223131367316425216812363335446838237835652861171447641664375867457321443311424258834182275343185883634864573188677154838464478838818362781118564146231173222762357251438211654735457133412278322714726733456548142554751678267117488148152712466587541614332138565248251437362881444474817676514137621721344443444782178444165545127761752812346385288711327533712574231321212717334815116821786624113785523684583184511768545216683663831261386686614751412838257222411587236882268624622724486225123243553822645514646887834323784717231423376524877643236664824184873672821367336786221743384311488726815517432621388363363713847571267635265333162165818355225764457881424644837231737323812545581458267538622114744673661775341176613433462662756781654712343122677637844117841538315646537845614247113428321444131662834488836156827738467577542368468864436648417342885618254471184572182753363214383568455781858423222455652648147182136222317726235147274157132737812328526187628283822823435365135264725522158868336185447562275462511667864836426126322755863576336311283256867646165241644652884382327633188738136622685227377426325155855534447261345624522838352856122562172518511232354447443345813631818665385365211642156176647622663315745173613434541325148512674665321734151111462453837577323781173132237834847173146711613177786668878438834318611856126482832514213713665783663335146343533653268141373553486438813646551832718778574881246486477327144733621567222662456215721352132265443566384232467145386822785117253568764387541825515317273674566423481831342443884582818344451118115284878633128247484188134782712377466348327742342716621711871775582233721562485366185145781465835725786721161253558134363421178551736275257273588217515543527244824538654542857477848481422336384347271634521337737347886276465866484137546248122825422615353521226336652465374236448568762738522342526624827342682328883146614485657386478373227141636112367727373778537423435316866266114743647683513824854155612415213376327147488651753367415645833227548323738385476461811442731113754753615342576873861824784714271233463686822511586555135123587276583768267487144711471677547353173131144743356614312366286631187181262216442772318123412242221526211322632728616624552735823665462481264425846374436521673146273183215513717213346114142126635811732453484871215722886187457118187881241334345573632447781352731381421113514158133334771723563613341412458535445645621767135382385416248282416831213855757854183388824431671834122826588175481435477581565358437588247143358817546356178623252811785316332338158475784426647815855243472612376285761373524164648854217445564858433232554661144636724334756843753275112464257377136458415286472766174787321747327828561681415378657233664645274846511641371766712225577623337372147162716551731628774615815444214672562277867631514145312745836385547736221678616771817252744141315245466212668426274886736812132223636146321723516513256844224845378178662751711537853224332785383887835672368173767651781866265235175623748657882567213311584226624775236262667472313381358462113287421287131878265115211147225584143128582351234744852132541261361248268481163124225387248235228844851456234532523112533452144137281883522532784185827868261343157744666828217374746333826841822683235537524158288438671865656513886546158252642671528323848315354675147121784532641278144831266215418262257526442526431484517337467155377688441563865125143575331732128855486424717861574718117687856552282821881684318471151725272733158811586332668624628457176761742488548872645523854566464127667527443836762331582648342421846767213162647567283464865276861517234436262725542447542135638451768868686465888211652455174836613566233475144552676737116211737754174332835187325565446253716253667111881465784222665147135352387164721467124436263735337831266533672724326738256216641211373816871163552745726147627335833334572654871762814567116541113333487521677452342668261781581531448267345751872224617757416336361886776353146728388745573225518214843344228887577462626615826843317633724421368172828678277862863712674722747353524488174831734114843124215637651218777262841422775773863413378155148466327465324458745656154657732774173488127524185362846261553636715251752674641874647125176426617323365218234833386118363175755274162652642734151336854332766181184866781173544577831353218565375477154727663286671674561584638373657231114181755521577514676662847437247547378732455376341124767322132552886831175668884662258672452317583273881124171426638314428548165374548357326337667685646316363712726727548243628248621846644172364512155141167673252843673777862882117478176815836677555534377577457385711562631185451161115533368255445468382817528386167521847453564871711166788427224143787541516884641614253682224385665488455622275825341611838168536275677855144233466514317762612325644146611638166484874467247346861875515345328867323438841674341435585836157124823225711745378188528717471877178467655411135511522268876662571233165315115532384261137485611338385726134247463786558165386335235424274217823812334231451251773881118436388355477462514371354624734474178111625262888427451873353482466144763376275274635773665164877542638836252731718346621227323737161821345175662665137126524784381353343522685852222533252512137638524873722413525445351581351123175158331276515211645482276285151535136251511277222466275854266378583275332821688815231772717483158166566555614584774552738347651364681443563117286212182876523245522326561541425646752621338254775616834185637312654532235246585662465534114512664683825186746873236758831171824883372581342141161612664342184583527673467368172613845378578518557382338733636787652876812562174464614346566326782176343456354662238553871528884658453654171457647561528376242514528455854616136451522116481622148645246366836373311268867131714575168612165781686724672242388344842472347584654412446331258254524638564338752763674367381863482831474773658585768856366468317257265643874441886551376583588112737488354717564835854678548256311746752287554657251275718722453214775555481523145133514255167848873546655426727376317688813466365375552118471865215832522735422658312472885651261438687531153827545641541762778488455378451442713446286744188648652245652785873776283876883536187273728887353541751228574746253147481858472682777456172232843826623617322472625168466556441788266414245154776481314628358138543383663347723138628187174654518544777817441623682266135487458318453741655334358475248458282788332673727846473877562217686746376452784285888857624582362612141452516536282177725872127755156683728572717665257615723367464211453372268815227855216411856164268567482152361636317127623435423448385151374853674153434434176381885481275271246327666216222712811228387723517831383774413351511227714382623566263556663117128746337754133858543465212562143584326268637821544586166284888837356643265137142187784274644243148711627871784661146551885118378828887486442567378832181567166157524154664482826818176713361873484816833442341881565255273747674774474477318318155647852816672665774228621241112363225316641717452561482125683531818416171237543456463661741268758416164753377323638883744431376883681776224523576273534564362861817142331472711135348612738583483255487116377176672227487157383365712622826422158367776577477422162231488631846741627873772388485365174557648883131577734653667252431786326773145264657171843436678734123412723488831418411454128162274225813328262818828161278145331348545467454342211617322836528221164376287323281231138228441158136245551342357447221238143725785118351352254687118288654645274452353185362616524584268231725852656663356437248668676385447881763218132744235152631866511161123334844288317724157754412275756756847336827666277523632518184478741573832467643512864125182586261385387444818265358432136743531656275878276663815745617388542363887256261816883274645242763881358272457424711285351872757124726484546158516385732575667245377827477748686385875633866656875766272655622822565148183637435828386463682883146622227152562153658315365134114735524326174246212117632714214674845147722246754635155345453582183513144367621643355478685142247217428715363847838444413617783661122162255356648683681162827244253125817484665681661464535121212211656566541265848173115576686414448215838516217163461137464715226747487257475352285265672258442233573357713487374517135857682765131833773638527564377548315253453153312371382755358624614238263165462511541473178841172261776181236447267723271142728535511875555811774366372353534257425463638336174462686583723337745358333853536664511265247177852257181173116761731727232816658565351128135713453511821212547182686418828558812722814185845755872373372244681842643222372854227356345435515551732611548481713314848252767124763844654211846277677351416315373343468785471267113537545845571772227664328443813264638328577325414271313223413481468157162781132538356538546755517214812757842154685325761456166574842724578474411642337448626174545477812451562643773574255731184518181242867733176815327511516636533353421884262552754222348522335257518618685427684613516457652375215263632871628756126461312236626888268124286737516843543753481641663645232415322816861743247723756722444254446643311481362251215886187128254725755451587378485584854366372634216758577373772447538866315234352117852451687548863868386411813213565716536156823826552268851241116354864278847831683778762745522716884378873743512755448273412582877326212256514351864778728648833434722147388781787745734785347652734685184564621414644181521146885455822178246756327687455536225637878754665121752382133673354586155831154556287433336251456522326571375412632544534751865234433741746476226131583564522741841234868274515218227242314154218238386714264482361755572874484174863554841178873838276172477575168324677486172444823336532488653582631575858284253485748845512836611435881566683842473177215855635435834652321221335388671275425667227674572284883438487473684851678527532747847757714228447834612538153344187673421742486341617562546567844713715488515838517131784217882142423558271641357661415826685581717751465118213875635385834581241175238611377366716132535645365334543573321224485667837267485885328544573654264332882675522677271715358685167217114363474523446436533582668481316681148261172772544788666622312177253666444522746773455176324233114877522541781268115574863455353712231485241224222448443657188131258755168257576681312546845845531573271786551276816131732172341418636466627783451764723672726824753211567127331116154423362663128136183582184182717725223878356361535882611216344733324623325112762427287825626756155533524182738672467855137718475815864433686252867653363618627368462812331553751272225485124552487375275247278767678385516868675211424614483448724443154421858266775343772686564185182488254767425546525441614273778577411573184357866222388623156115433552457881456768887536542318523877681575531376873415156847811254583257767766551481153757244826846867745382844158765621281383877671125545486763416877687723777222324544684341372545822488647258377343713823117763832161114826555478636638688443745558338422143687332154521264515661681338413478317274345358765148174124135164812778713145883216772253326831876765616622277484732154486658754436167438316123586418715442123433216545566877884582272783851864844518123726316633857733188742236376858286834267528888365248438657143831323715237736458841543525821171178321718582844514658627226822826728418435385655277748242438382861476121655787466327882641648533541358122361167415755136161181455251228325883738122584316176277463272173273223122841377152466264478386375387666851658444277884313218846162418252327732745545733723666871231746165427318861214475448217836167462884724427418726167858458236861765327656514455723627328712168753374755466777451388782767674661557848283542344374833626555127634437123467217616656534378447321334213518838756283752851782588633713133133675165321415282122881872255255288683284812287481258344138312422457777847166825816512814545774688544338713584752522378611855325848147628845121238463113187586177552121615223846741741241615861485366334556556811882863618866113588188455717455554427754741147176143857235572114242826167771274547813486852762782152427382326667255585851114778142284624725558865582177757213714183452748165852412676157547435732246827822423332168442785345735811368257865368442175265486135383138812615212712821583747122657826717165262843211251215816768331176771167257277261371747272624622266333128733658644484213841472385537531161412435465852226325255314733541577681845136828642723151434487516845186311817548682683713257678148328846616457486533421712376771772373143485235458466414342525664517763727432543581782282141327334122181711665171666455658677262378175236718367144656222755533457335555836833684755447328748775578741441188168125635156612671737768418278243124286668248316886431472185866278355632545542842351355251757233238688421842732836662274135728638555217762852225452476775436116132517482653545171224568127727126347774528863448237374256885416782666635688613326121286755316685528882137877316577687344842576735782683481386111776372473511881538488645334135788587432658647767616377722872166185535681632218846364722511674143385562614871474177251326152435665828648217213326283731236348862231112622218242827762882382758662757686576586655533388238374847684558216456782422422431338421858812882634821732164814613215216717853733882164341387355676784541136378377472775565462645882326426125658214358823221382851783582261345122457425644443515581541633634836842341774328368435445527557826562416244643338878434842454355173788122275415413412413658174348387318184632747158888835781832737327333686542456323315485554316148562787252183324622867474824628262437843147471527414348481538153365156162876517457558555217771116377142238555867723444525413221444325448152557186816468571587538632362846168568258885558328148672575665142588474144216235618667482658238185813414584876454177436658542156557564581188484712242823737513335753327423823364275163355276221785677286578575564167418686318144373788144882158236863733538114582577473748622534887347287268237253856842573633787672587365865441616486215575454388545148635765816242553771323423343547476654224514666145744773676137765217538576623474537113871558883513332856537543816467652376876314387584823677144472214148446144573133474458233331152423857632186165464526431434535343648273158665313734544273316432715424681363484644765773273476664813143668125256583267253512837425476754652174613676263578672171627364416311646175417656321485567461461117162746186838257366773226334434217158654114135753411538752352343247771287682234244264758142876251635435351274585673264745138625455814218227374547432813115844541647227718243567127368576771385835617578111436845642651814114213744383781513814474611317767877332326614324314658776473368124514645173424543777323862214766334768373385725181483771566151381736331655887253262226763568364356856632877684672583276281727348614334233858133743766456544365283326715682212576468273436521218247878228185251413272431183171111555476176367325383443218526284251764268456384784745766774284275268342387884443523168644231248432366252141454414771443735526465368874785817145123257117658866588447534274154566547158731776216121571164131586742657286342153434258266638355146717387833215228332224447273356144461334222734324415821338631115247342461614743254316346878178214118843874827331331865233287725175536832384674626764184473734438883375412741227862177176461561461787145281718663846755268725868825425684672325621152535227471362461141477371817521544153466554417412226654725376832184441185216524743114546271568378683768141313456664228416221155831867833663827372661671888654853126771747185531756731488135437436124265574116241483517212414754236548167564855114834411342684226546253877843418563613644874152365177142515523468436417465547772171761171332545258856611824362466253337121842556423658642275333545534335481643144828851764366227747262476411615714451544836455738623452263313581546356321855545277521617518554678811643618858534185123574415834432585432134876883554518821563873133343445714218432888582258226526422723364484147217237148561823342121427753224644534817855154177758786533852483546886778874458734428242144343583843581576577232571184365618555816265871515428247254371722473844327823644276266883387466222575627568731755272747176774513636768322765827435521424778781221867486678762621343842125812673331146415153721814265164235481431214712426385183571744366473422137528626156663887638666314323126875527371613662442118715886216581122846877345258436864453244511572763237828584183481746237575233476485257114274533513872618228234778485813321668586785655644367425434522743566536275458873476727451578663726445733264133142631266334817746486141154557563312438738825681845621426768383333465147141368861513354517543765113374254272745883784855415752338357441837127367557128351732641544177162558473718327214884157772286154768473764453274568845434228722265723186242556878841288271758856287564787641388854168856138681311136215146736332335381564238251838316872255777627813831858842681622318481678427815365846882651683581411565174562788388148212872836647754133275425852865546715614374131218124626322475648487557653236753734283882718361816632284417783135252441626324112664581111776648335146265866166731855155111472361574762324621161666368548357452511653485824122784487353854368571245452158122217313215181537545566713674576463214231736888341566224243517245536555648484135788476681842633855527757657727883711566631564731147528455834433771544264386331144756463123155184254362757252262617151133338545831263115722845163548547862436886563874356226631574418386145482158426418621354118528545735465677276826788585583524265457165283622378135171246468546277642267238834836533526821864248623746536228323143361652645751383663185467116861286833264716545478674882482178765164176437772881865324263162818122236868623522615717321326175657761464185154371461368388663738573338418615111147741436363353321211241627827873663426123358646367143721568367312543842346277524425486524126717567533657132883182517821128661236876822432626676747318117845127423175227876651412832747343715343642234538811651712152873263317668852875835686776578747635163518452655725175638184138412174334871713382851188615268775884183247334331475285232655234483468784286625634341723155548175133872811378723244783287723487582858721544525416485772324233888741633476515623462115787326375751888717524685888755445744562754511587818445635372876466884745213353251764314732621844638714382686668346674736166651138116215344667383537827674351361836527218345162183484238354857857326787672885755111283178272144572251588774166276252561185858376483252186251775251127274666214811835781423262677785374617834435474554362687536823422458352382718232355485855646655761655582467161253768154535881447563683736638352317364737373184521586761213715846761313627627141788543258511151434135456835788448154866683368468772384673738744445428775212655683587833816856867528266374526675682454752147734653338663284758125331725186441562815463482544243676724174734451517754151721815278732318348782822384468427128633575673326866127344671383214664128357261853335638267317577631783785627311614267285622446728888847525426246564158222125713318354712418634157253242341587737454781638667773565585781541383734774814467243261338878138657647723273326718135268766331373743225528712583463178622452278121448681548414721685356562646455418465281146278757381616547774381334523587313778374152426262611411753772362556254556787124242872136811147761476518387686777875748436386273287517416873557822516125445151145714644142154856276475688382166356682112217368846382752457624348625725823341314111853117766262834163621651642757443713376878238235167238854116546827343616636526633213218378534333634655427636368376666251724714273518746327124541313588666756742163844672243517334564287468253136387335541717388455734277261263762312825612582433573162575568525443584262376271415762636254115351271683587363123251328114162514382337376171872384186853161387626721345523626746822567571311247581324473744285476614268366851471417526757866523873887884551385815763228515326375362137278876466621817865516884137832726414127471141586124413526415254882353266737577358388657865271365467454785551175872554121515518843647837443157616737236754174865241688111112831224614355454422112672387368323341317313815157258184828725647547635263234738322881378357583423356561788243762162768452226258142788444468456638465122843625236463826431375825863134334253775171372625758112554467561683831385384163627335447485857523773813213628847361575332473335521872712161624422566785543846568356537411478737644381742745563584814355158517363767523714366373464865167137525813452732848333566634846715667835777827272612168412712278426816574373751631813454311588446736455848235715755787835844587277881172654212373543332826842755325488554634561721723172375538266665581634771538562565363825518332751581174786624567164163673213458227283662131173751863812338632254168315218214551534824756781672675675383821446268227514848616772458648847647834846614768336672476457822376276641877424824552711113811238554274878627728242122783678763385663752631467158367217573458485132427247855441364281518721466566774368222655458545685247852325864316827154361321751131533751417447236118445264228883643884145755368678584766355814865264365431124157677661182583878466561128237684557884681848214727264776768384341218638681311452865454286686227815537177224731634245325154663534177865373722481824546747872335311666781743182741355516482672772758214375251234227447656772161322783881415435517147724212464266313512618152573874765842185512813263814816725681166651536253123386386476755884817631484667668668314123485685183535632768643221727225222472657826556644374255834332844288862734271732228645835867253348233475551343435166228723338558248154621644654851278251481113687511162113147214223115724832251622675855856747766746388478264335211665852686148638125133856171666734186323587256735348214518532365371662872364647337224265785188233388254372352152534157316716685121635134856762825887628185634883155645781264353523184512244341543716353468862784281351432755571867313626363252537368312254728426213271467778518135833755836874252541356635655355828865467762854215211478522743445332535112883411581317358414455154717468265513538668282213654225313211636374387332741167888172317538367183283125261844333382233652287664874853441231533528618634458325384471384113133175125877831828257555381312361578177245145687621446663768586654238853233783362865538475432164446448332671614761122838278445751552185238886344143316224154311326135245212845356644326387725827221711832122333687176486865436245786876648847713672326514224745184648321764325654453211333763872123522665186323467658487735638887855127584336648475831711848518884216866466631648717575548451458776244477217842428376786443445488274237118468612515852383317824512585353888735683744131362624771138234284164318574144141373366146851178243678647618223227225528275888474647677158567555447185823218646777515472444716451258427485366622272771524112656448487717412673781148717865117418345115846611156152687172687238131511782427223888657543318277751721665777581886553173411388135723571237674373145844342341254413657431718343314714318434125255417712782372618186226226237742152832616515475452143462155835612461347188344886151183368458688443566473127163635412787341318853271475773251231642827722548511875633277584323156225557322268826481724644662864655712548435384143782325388273524783526566766347327416615531757334586821383677225136384547383186223571576544463842371782226536724772718461514568663722641451143281361886644211647635588612663872675744525583666116653383558727583267378745178588235434676338755263887447126862852284337666613328225536435283854274574446227111187351514271176584617223582318167853621117712447518386616446323118437227885248686575846587328385315127526281155774165415734353554236874681363822175625865311353445743368315664572651847434266562155172178326334515316621743481562776644372872888535767742786524757483427375564484171434578842474224243861187533887542668668567886811264373643618431516243288855623411738768736671416132146648276137127564244577328182783237613425276821441488327284161453824265771272775882521818423427721713147133322566728721428761228868261873372118747488537175213181574347336413846776316214471478414714437144117746174664178237745785335611111852356634718687167324543218776572617446424353756387648136615358536141478784761586132884362717427182231778362177687556171736665174264752475354133585353845368766351412541762345314785151373266562212433126342837824581287572235433365373127767658124643382272684831265533828655354784731518668638443116354338532812442212265218151126653246268366372487374782467448211575862565788685484561724568255214466321565235774247826443355843158457414837263366654418411865236743571643236453638266664756871624567518572323355348615657443474517167883185436631387563417623743545142421553885822437745314648511771822134333582644285635257774763761861854378143223682173752317271244346334314326263461713583427217538347668717534436524464475215665551483364783246554817446633816222761264544554378476377622117371557271615657255718417368246874636224252684516156184582215763842351775624162644114433351717717641685826121854332645661317757527654245544546668583158757543115531522766286861421783448283268673444222512384313382213132315374274516467254374671581768761355361787541835361414451247724821124113527566764821136221888157151131477815573661673354142626573583242137356521555571752834573532426335151763817533514753822231373512274352357161882174432544378315233558482255324138563687783483516868517331728383326243138347388885813412284184872616511414331286477685814178177348856616135725521358746724728358245526786474136632463125266118183322887643622452584566171757336458535158336263377444723865614241663267761254483814486373751335182426888625121121128357318443143851511577186655767713544545526717528344113475167448488521132412231755365371746681246784767115887674226445488255855235678588648527515351565272634356535441472131481183758464246643883233832712751536713715286531725115157335421243821761441183773358435358587572461556551336372363225721466224161283755558353471762854161688716726767381725231277168446525582841273672631854837645648117323474213177341346416266712477716725233241841172372515343151631373513783477552441516112176146245262151465726662373151767542823131342147686158274241233157811311831145561865581872615116556247247322435533748446623781215731345233176585841474743287218767583713126746181148281416814571311387585341146751341157757213814638488621475137752537311781687752767711525124466321227257834426681441188367675423485366731267534548355348123235571767551244164528221455826348414547113784251628582533735536264288185864451178148368317731244634541714318127887572412855676256271866317818367723834731888671367852557145843435737876876411284171725625271483642436774284313677456584222837882712486423524887432151542442282172877331572646276352466366466241188827646776282733531357564884114566436665174366521322675664131554786534113435757476651324386143528877378383875434655754274567777365268215168322684838844312855683711482865786633225777827163387548374242686431317576467242262686322735512314345711547137221171612455625843447537648148531645615822188371672144575458423174551723682521645755714428121135452248467636462846283585164763468358316745472333542867245587842537137413127247218462376415366586818746715286826724158366584823628361641268737228272777447546767485436548283821837226537477635572634855835286286765237836766135255356821438735117522112458127641743534574226634555353214776247382244687721448514117137462783523746766644458115576345688877848271763214526224763266413357157666351631283524867272572524328753284237827365457846161832431176383726524112517418665735664772271263531887255565418153526811788722761561342817115621532888165554482554245433814475115384856578838741865515466711121526663432881545587215353844642461147146216866186866583753734131142542333526325572837874264546327463482454153271171868475716247155882286388526311186545283724378775884322741541521874261517835523113512686617661337454415368727235245475715648373727365453144734358563644377725784581713616256358775141475833518635415673165781637348857256467431877113428815645268232544381782555156368335488163655826812157713125652242756434688856547424252458681512647382427423734662657481438571745341483831714237163478532451282635445634772712567726766672681431164533671756114563718464313145652673146712568575563171421772347322583261176615853367375164365784613185661332534456355737834471447613868168733775517752242358463738283781744637255832723854881731451786862844731388261165522365426263851142384373766871213836245762236847634223218763853846267625815688268552537175441782227188271726341252115824164214326785471423653648811218212682281768414225452732783468181251168242758362877667514751728545528244185128267614154516585225447352621828713574651711136527262883735524265588855812175316121878333472887154146527472823332328828836123535116427263164364463134826375644714446834246361623186277726146434548888873316144444652511715325645312288286781332664625673862146633753473158658515834463455565888264218172824764466874725478837555663576447735867335327832785347722648471733126741468722661782634717415555556346844883758545617145553717364158758728754617774655862258153567111152836163427588276168164387155731581784216663557855768384261348468254344617863558115642125758756337433783356518171342221612344677426666668121185686718565611264573826683562361518286614371854372364811336458278715465561655751186257771423182677232444421653667143422231548324716642281753275681143756476175555721615371518265238222468744485874844473248756346234467122451158421837828882385825428272386488811151553448577736364253372686654451522453317751477813817674421456174328326112256516584468761476284283732543354624171576432471758775268378375643727863375131163657361777713834125768157366134318713757637637115373355152452858518884635185865463415871633524435481523133275633648887861728838177281163177657582571344183546451841846755677446382485414738162232223568643456773673333422325218471747367373167336321367566256185746543172145745477261836343118373844817213684217525677318368217258251162186177835283681587515171115663877576141556833652567175746421367283483258728681727672856265252872782214746423551385277814121325264481575823245835453313322441536646681878863456882823852163236451138784771735485374376458768425485145473153612786834275253261666371775782137817561585217124752275731478578341756525183774851665825863577472156415875328315148532624143451353681257451387553175254325361416363358251756622821213645272378572824481276754116624888473367235174584213844355674173686134423732246364227653732316266845887366152775217141138828316881586188785563251524673275265552676875825478452273552565653325158757126334336455476532716715371822634856151752118438516856541343465767271726123565573277533556864221845826375548286175835386654766536188424848828536736836658142484281638283174527356156483816212687657547523171476258467755175312244168421774833314851636811242322727661327777677261811381311213375228841385233555626345173254487671562311474646364617213287244112125225853314632188576765378685554176268268688565431166382231576151344766686341753436156241855266851344178461426455231522227411183783352314326632222834753583668557844631268718771173255461416357758323116666514368574732767264658657855522743368784366122747874448312438624521218683185745634748441283222274314841246432162416426135127333634774765517312258451134642162414458845453853665627681625837178275175377544512761548372762345364437133876117375815844637562255218777146753542742486435288264653237842324545428635866555468511774577416442171643816558666623462776337147716747237481366685132871628271162355648574277556126811542551624551231145264175387545618834616257831612334343838481861834481673566237437567532462464257566335657878672134877185787322147477643516465345631518655586662225886216521244325465832557835617383881352335763368548452324782372246873122255483123668861156345236824285167677556834881612883426265354557426873563832658854266548774881733526874244178862458674657256236258714885383875287635686478888514255354771745325177354862552478812146282365866142546831185811582612137222317678733233248488548475375156284653516828318258771628844421738312662821821513272828421723715433268357118138445236267321261711186638181113614286571113126767546316312178121486744851728566831356554728721461152413255272765567888442124136617528745453316768228764863145673534278382622865857444746717442362781328457614351112155443847174858852513844161237314554828386778742652655668448258312764618147673755622887738724452688665646265121677773363212656476351571287618334723716284358614118624714261264623613873374842417176456541657788125124152246884452114437581836584266667753217551432474888688348465188872752374426332331886782745122828162168467281831638375251322421183388746523622382388811643581261586271417346572671542613527645451137648578846165238165886767314114847566456754347822421764664662136853364856457748176731286361564838765357613456422785772127242285277464332576875725464573153272466378418224577261466521786714827325822841365183748557616874443764166826614328568125845341345638113484165284111128268464515265245152537744712573186144261686267771113543631757764465553527845431411424674738212625762234887247284236362744334286771551128443868172677538823147483458422135337233162584276157887813722525724614122841355667536324355424566116515488215467281522824226678851676284724357746885786275541243272862848342736476653841582573587644545548727426682683318336285836477542578487153888238728448142441312128157431785675356311272185123835487316183631253578317463775135272562377511383542477885361533627775618238835341184841236276227816444124126511326377312626347215525827186427515744574456157564186655554783524267683234488853163384721816334351778163278234246166528525818341478185823716381114456177565216224221628615145715252458376514735347478826521187673435431781763464778461138688433466675722715712886733532468822338616375435825772454474322281323854247772841577631735366175274576512146831855334127511828284657164278762527127535373444864315728344281148552314538744887187276216535311255455425455425824443131778428112547655887518662212124758666667587364451267244135714376853676415837344457243642732236883757467666511613537458543532272134777325672348658514465328214127463354433364231251384882423821336533133168158164751248157841141413776658555267524217224175788786772516533151763383722788165624318468273485243132161851553125226163647753347546424461423431122625588445768221557165727636747166533246674362827785363636477744587877343638837367781734238823448886437752411246183276366265575445275566667483282276518225441154633785533178358246484473626738252237451454451164471728282561156346147754385353461558238853864365531422442144151773683357252447811548751562137713172874718541381152636651823314567466823473573257386152124111464377566722235451848553431532347733688446536162736457317436351714178874316861723437865474161741845818446111682112515613126762566654687868845715132683664322534711231724774365567734117248858448468212575673338661766586253284716637453131328886541318631811176641482682473148664681351421228751518435541541226253355386165831177627742716824548564161464136782531314274743266721733576148326248238644728115444237482756755178858584163548754367174356618273248717272243125357126228575461755435851234146567441638546751585148332314725278624484327561631214244344486111143277516134784774817318757134738146564336413752358688532414887758122125753748164818568761855482361572737722624775432378432167764888143724643236666482114762555614627161232214746554621217838486537142721842422776228885657375137548432425337562851541226621284625554663313621525661358627736818452587888857878243347728618156867637586178777487483372817514261634584858747354218184354112277342456453414731241251655652866667514725756248831123647821714441366647881524276775228522388643446767666775784377761782822783716474326655245641423283452316356112114768354587216523468566883651866321816135542264577214781636721412568768334256672182537612848186714787681623151255175813716413171231186724138722831582432268177261765447817556748764616474387164756187555311655217668124441827163468731437583613541247658647214457841848785136181672546476887388283857734117624482513721516416485477832137468775112384122622131665427337162631731131517641544671738322286468427337847762836355144173852215126518311277141443647122167384556226854838714454728286484288645133425777425731877714243233267367678754616756544484775718272518346828355637357484843433116227727116517747534474535754654443874742218883723326471556837142346421687284142444242814584368213422271786212415481377734831527768576333148746155784544813155737653185816577384871814814861241876875543887636272837387585216765261474661148734527424831227764377135158254713335744234245883187586178185142172355635126376382248526483866874116348427256453364223762135474552376887411126448567722181348661584254682463124667421386337764834116473528576121763452285843135533741118664435578484618853263373636384866328537474514586571724146473761567237562883143411258533867324142821474543814751576115468712362134767337528662728186643628423685773265134166845555236255616133627534214261562227686118578888226676266254817138868261185671513332844338421338286678487826643833787237271811888236262631884864244634422228265187462345332487828372781622385764322523743882783387534215185543161882263433678514157445644815713817782145163633715641771872458318254338515765725846625778522423134537184637768133312548487641524667473515453353354524561382423481814265412484731777384181243258248325763573662641446545336352232761127442317541274425128644844621738243434357833471172554117146236157161566368326472634614415788462277832537265511731211327887812671271314736183236354185851316573356387447154467763268651452215412237643547552337344778832148658748613527473512116575274375321264282544852778171447523857548235622536187875541284643115751441678742211164528615775776438164232123734531158688843582831437521473632182764341835254113254812646821788136426526612762284244465163647622864322152848724245343756727558422451656511583613237278757223752816148688445365555174825716788176351828721454678376376837376842576265227723882776325864383574712425113755744638326574111864342254324666352321323661132685225312448566282811182454436315484182735753468365845777282587747814284648653381772166746612553854468714778215851653417664826272325256314321466147478755823682528222743731847358184846247564333844275468534165565146651277576837155558263568733317878654127462236483411734414714258784212145338647585247344681716656743124247163537128441821666343626887378773645213757816863564533332638364514635111887542517862252182528178157658424238386278165261183851563438341454458634611784813385112852845587688363644684771178541443316736386321551631618663387118438122447166682721781364664171624582432745574666643478522681737257482372781336662816565781473368164288478417244845357447273228775315748456232632737442866285764451512547332482641285177463846872118861653468514638834631135781557541226521271328818443423687324148766478264713781484416673562645237544251646186116244472415561758323648778247714238544375517554576521455168426816821455573447853571326421363133634436884835387245334563676671528638488578717238627775724478247121136654232652284148622661542153623458438684721784725587523324353687247267226212343783321358684823444751672818138178477113178442445437566423333311725636634534378828345876876267838587251261618257287353142435737473265878128541456757253853546842864453334785531285117111121674566828723313553552828386117143281858546737781722814514211665184741381144533214462827815162347672427283522518146785352738151487316226164384388545672854531541471688415785882522171243462126724581487647246184853554781688342486243817487654251415554621524331154155882657248751315464436531313717183246521515636761873382132373178154622772812665651558758776152157136362262385537553218774588365164717522727841663153542157884262317766816711567741214166762248146823521251374765442428113326782573442434232264625867877766555311354267586474455122865343668816118226542278632783158341627274875764227312834124175521673112566748237667732348417161234212857218223875368268271176665785147767476642374387775841227413664432866341177564453516685233211623471261775643744263542232422441484462551182873268121231462375135532444424323588286381334233732854288312638555275864564874824628285726886527233488542626117546255417664325816245111867347218775183568862252563143616541157113212467422216154435465138712367588412311127781834136646486523437165855164523513626356813554564162334482848811868562862284322735554114755726411137332252654433655725218741157737261452576586852434722362177752574378547866628568121746112783522121631434656671247823324468637581351168445163777646567562512162754751781167153426168536456531415752537685216447623373838457188344464844452753684538888414311845353453565646576146686513131771376337281722271752536747726785884373218851265722641325716253352671667553336827742772132444678524671513546215171338417343676347664782143463877862578361348138586546651854857755611516637241181444776547843775155665418271788511178334234273644817424183273638487182161474445733354731114844873478285318441182323455433886385381725345886755883235468638324544235736183768857846571543145586875265545878472745581325635772441734387546451514262383422616821681188541773844137826735113755731581254248511873762241421683843113124217125123465246348125111317668188682711624384638586717844668344864751538528177524384685737368736712862433182758848475568113175753621768765622613612834742655882228863545216844362255318472166758716766377678275351872438332174865347846421314836684714333231383727677831661721488835368558677136464867882661625318813425354227534837486352383821561523244336671743383124223171237255146566815181125877466474584861244867567743445141486181545818534622245528864235272451565736755337143362367476155216334574761453834761883337144322821138415221414576276516426417216378881512323337155373872532228757646663555587363487756825236118441723248685287534121367742228763442733412827442748862426215277238173823272635725368516837412884858252548318441173511361672876178885728445381854872878146712228275623356473444538736317678766681833258513524176526356222168345437724371338613165786465372873433264263313243458635843247435365683776676187818843234257162365481668146313111164884125478665724857758288468473442441184522263365112837835548774684311468546548241118783323257587738733784227248841826827331261848583448462873774835524127284854564827531625118463682183472544882878712574142144373548454418718814844717823174228243258686246114185575433337421331316832556836143586788788647441441734856358553578855845516346351131285887543861453146653884678453578137788746552763417414742777712415362813555642558488748634574432624415452882257163527277513645764324556753134481727336743174662664221452635261723312676184127371368115244332478626874341452771823724818447356837572676673867556814165525411618554488167134456214372438141611333733445227361142268318373351188443376865482465582221117143127127853418826163382274275875857421322558222724221147253356843484173818831778262865487623474378784254643777474262416248274522262576617656584127758243757271483326557133453722314287263681616585352162466457255674451436263833228432248882776341353416788287471174715681537762867874253267673771761311433225163461582575144388433431463455638675312555766312845858863325458474624736123718111585252581232141112554753213761735122871581761772583678655142682353441116243282146375841422671725756836642636417236387431568326588382633556213173722362387786246142315351177886337262457816537232433567346112335257154844286176376241134345545636432886112671127718812113326786411358866715413853721637621486117631286863171476425285166163434714888276554358582221624381311472741765171216263371117217847883236873257878252586257165751335515383378163688724236612254786126514512115442188518361456735244754225173633482458446443783416458546755175135246271582572788231185747846445836324371248487817174627118421874623752842471337635766664316372313354447683375225688833151454555871182856251463113562837868485671458542737862278215487782712166612336518166881771376766123271827241417265752538333166344333471815822735171281138116612241148236317547155765545542823613717787437343124212652863152132418877731325523711872737144744154848673412531812868143823184461551588535658446543524472482814521645285431865686647145752647261785472821124353824375861712225385583382168485476522175635556143513587685624238577346826462666683853778851133856482748455388855341278141744715422315256475442843757338428581248838542886582485637262123868658553267336885731854447618663535546764357523783565818765312352776538552124451326774327857783867282754852857678336338171755828647571845137883486725384171638668226222482347653132362638411336258577736526852325457522337352147615454666463685886358558342516164275653468417587331842746864367385837264265631461252116781784534723526634786811682712247237656635886636623171141386217187453276743272544758531238846645487473627545756847712724475221465764145516688353241188433155657335341586863767782481114465842432833683345528467314322458618458643877713162177518631742328854785274834837116766436472463365451165237627188675125648546443187262671218128856265315758514763355124214213165448548225772228224733723841316527442354447636348788731134222561314111451871525251134143235172168571282871817224773384576771687512381475175564652847465644714332252368774131163356263744881374218385348448526758235266562661186626821562584745468643316233817576836183728363816461767487348763266763721746786441287583484872317651543576354667773313348616733255328567813131725712733663126132561287854857616783143311672875817837331485753533533734867666257621511258741254114484552427611278881825568675753863427538111224114765322856432428627171181678256633862653463324253652737465181624661742288427513868727535132283256212187615436421317721333528532328138815428662657246276237747636641287746373128543266856311264814674135653165528442236434251221675258635682241255445778251873626333352731522637747885567636517346238467238368711515753683843744236164854571437248682626827352645147413858567478127776544167382566123467882611668157772885682748116411818141766678227113342222188431421134121455167475778687566526538537616442125458846466234546215738668311222657628465755311536276143643755886757365841237887575256531563162426351424117784527213453468743574866114171568887677628166511837132333717865552318141144462555165215246183255342355136163378473118581281222626847216824258766764471461478621372788572573461713842887643565368148187852217845241146516534121632582854244638328873641383362131341242565645236235285281134216382323278713436616726442252572812618834875824355847352564322417378848336785822573417324623432365858753217411354565354736731863525461482388825467664753186788142258864284653281636118327684654871443563184321854351353737751325161483383771846377464324711817412141446635776172885136273734641752885538674183252622141474457581651361747214428457522661662232286281865752271626568312168377214583576731117745253188855551361776722581551115521586478684737576767874116716368177332312752518882451462148433811411637573311311243875655658856616737545573663383547223785472627417733486351588521343372886758568153867614731373423622411183821526524451583532548812648724173715524535275518353848772351738226338352878586182183671723762341861765668575885182156687642845848576758776165342513248613717167833317253525756173817848885787267584176838522778275848745172867623781481348487123616357733128442737666467387288426748382561522462288833762246248581526473532477513166448238822571383131341588845352553276244362887351183227662864726714175577777514361257835773862527626274122448536552151615583654523712363424146353464235784636744232138146441264171564141288461651753667167745251317463157165137721243821414888136431745313473364375647475545415757718131475663716447745486616278631538346864251552315524275551533386321874158222853514687754726753242848414185287217567421578351545645246653862688213625763685426141564816284138121388545572133737452542367347841848781147326258664735528124714767414127816632315447616577857114825334784227114518176644216614763863357736236687213836856474551456788333833352178338681838344186775365657874752352321321315425158386738376463217386434425654835855214143476313783545154236378732158538836263551711166455744736518437482727761757722266357688121663563344787863325418731676557224542542627471413643283351816735758613832378486657646172748428864532474328254486261747628631684716555673567614382372854784534815256435647275615513655745357415812641772668316456783143335276363117272157645376635845838546771281568742312736466657851872361155228653581348155488372348542346528254561211276732656751481622431856163181778163315852681628558554227334373385322866733565231153544164562767168266826261471255421523666524422845314587633648856575528372471344562831411735377143564588317342455528365315544815332776377727834253278476111467681745543821473518773437138743613383817275124464823353765456677524812418617115483488663817373731882118665436543882438786281471561446811513737284343828517343465278876517887416432488328752714323367837383183433363262736613142438738537816756274267851621681834727646187453147454256874854617285536313747252554155644716277613863553847328575871524662881456448355628152115261378425674326131856584268136651688686865413115767177514216838864514881417414651568885823375233688178778377453516152351677862736711475474728135417543677134723563317746827887288821848652641156486847548185865566652584454561275866786466558726257817454776582257514211563541255126468723363445715283841281873555888551843777435624114111788251456428163451814432443823181673635136848375172175335387614433662272466462565744876526353755622516741156221655151417611655874734418571812164248856435461557137475184774157278135565122646541154624118264677562228376551812823145153176442367155184318186754258464637178263677256646553847324267311715783757578844368631562558486276623687126117442164727173572765217564456124537644783687826713431877378682115476635882451246271244648364565771243713657638424117247174587246258216467812411726381115532455737648153828751717447245667871168814566464441477882623856655337385543275326434834163158781131468123817236741838115126165767724673643433716761441848646833762846872725213746571345276865823773461358536422166757372546287133476578512344126383187327847422466182822716815612576178778382484713864122417568687115181626435863756838171814831341515674823278552855468561523527375823812888825117654377336357783344612587551762284622221453382333364231155182727256868671161881337451462632824346113672348145248852654737678228788724558261372843118158836445172134256633467252428134876386512475516268276182848423777217837276347132155625476135173781584268718313114646742554162117246351732732738281442514676557362666756818773558273311465172425652886357342257142273225484543667866313184826411625813442866743516833813815653474861875247438458642141446662816151158563172827753763723251156623637552568767224251488412123775158575618342764275885546647683365834161885263257746456788357355744851826514525366673438355771332633331141461657435437331715538352581382418472274424856636248242367187345788167121575245566241447356657316861748486177381625756242573323676752416172562543775481328626684336477253318431427824155576813143751262168173231533184528861861225248123132311838838156823611722113124333121273773675846326157855837326335814182826522224728472164466286454758652421587556285453518375632764746575215161785832387886225883463782322724563153858617126326531516427566621183477425824555875513244161447447655287656167363473316763473827754161482268662811747275283482336348885263615856846722837874177377874551537124774256121818824722328662721333666258851812518851183658517542575287243211467328184431877748656873686677684183118243817782324123378647473542853733724518412863267632276431383546528575525323611171357517636151373246458887834647644161844316442455287754224654575852155255455617774626748271635232313527734482276325188626756361266585168568356885485154448243726575777684581855564671782372354877123888158625233617453381423517471461342311534762326515327475273876822752762858156777121754848337616878636838784242148672775478255544424123863176746725564113685251288567561737218757115525442656673348653745323367275333546623456352334217686634212612856334336132764372122481817247418648262565627743125762562373773756641584736627581246381284443485155772765484851834331316752151333812285711883846175216858734557755634812866858566854518587644485838126873675512784755664234661333742138464574434725358372445448471581214553685764468387217718447264344676145338635332142578431847348426177371241473647515525611284683461885626764114562783338115175382152528283313425515734432146543427571268466618865228568731585733352375382563255674681341358418735668367432414677127648764375368442468877175443825785363712884448642346611232523763385333127262616836267887228563452685854772642112488885614661176752847482233134873578121584252816717516486611264228181716238488666574824561346455844685415125657316465582375128278457165363738238573183831288627554121244587211264234423513265187461282621137111221333643156256863558721421881678772756722514766232761772747512551445183844831628883841782243467428577848117666636876635747751388223624574457271445227468744841762241567674452266745382863437412682624273535452716413311358666516647763283648536336527243276846371664143374733435877668654327643778871377637141335668644743617855541545817463183231164244522867538243641543858363871165533721348254234758211717283718458687637321731876767854344531366783235166746732477841844413586736158333617387113864567614121364878663831438831883851676755782876823776721471268561215851548735483441188746452174715462222762867222381861673472738165257131337128717582538864657251745258357728616256318863117731865257758532267573372874372731887221585525312266254328414587644125271388588413137231232286637118574471348877251178668588257865583632622621446212777736322285424776555787842223487262461655386362637276176265265888616772162485665474757275782376857312264121676832367782376275547865773374318667585872278863184581134858156884721827233678785224786888862357618362272231716375464724621513431464558362827313748337365126168766277125873614858577374873278236542123212548844458356425641323844745265128578182177428888637582863251627273282361718368387257122346118584471626353886785317161764572287535564811888547765642435543353276743788785445888124856567814788133118558768457426428766524568472448415387833435174151313665524457465514453416622127115177615647255612227258826674285364211475281447658161828357764412427523748473324732681526161411228141322861257622576218415543542115744116723681715435872233156237428728587527685317463642156446387875812634281386283137343654344137385537817843528533423477723886722345133576548418412746614584833236315624838546483367885431424313613332735381615113588117616717274267127524344841886556484172556634442883337388474237546552766531844731721351267377113464551811654713875516584128685833354121186566723143768772441111846327434776235188436872223783874575187433242651361168742236522831215628814645478545435347666736444116856832575448653244611484644245442214858461432436587614647258368478562278288442787525658532167125641855844775664583257772845756127624267623286322384777673227537465473825221542642226581873432247473465556517542421175173123216642855211737378227885411717788551622742885438817787447185861486238323578622328287818417562627131558576425323248115513161382681424367121252473143611123123758581837786523436647668777146182857652212858882363211774355854621272362137676511726462586177221235428682151711458265835588426216357386188248855547731851568281483322637517264424387844682676635134713631226535154425885654187351317666475218671722371523823425256588335555483532361482781682216765755321536548773832667746534326563162734185173135868724274566388386146256631181387361344768167184467278752527657542375433338115142856512461312126212454346856537371142875162274555661112463726625678574741834186553331466727476524448573546742414786841572186344768726742123364621414238318141486134328221554586584623624277237587188522663787457428751878767284884555388567474883767653211678245616833756364438623245465231623373673835558612538551163373455643617561786353173134641165371722757675354655868863313416612683445313535582257252153451122257212417652827784675551586368545832163814613578626238857672233485582543828877745235221658477676316552423427867281718744678256887311428461824743521264618235531367168872674124343151472115565262165524777751384656465663828412315836163827654688386533722333561134487681552887537241528452675444454238352211868354426827753114541531555443438435434723317567123643668821258762825157384722671555883571556581757354651732151722421345461721463358482574451438636461874632468762427646772485355668456785848536675446775534666381235415116158484617476646728217222468648322867315741575753661553611661363255686367375567532556783531653845514737563225538682472634451321832821474655325854152332734435538472435882231675282181361374814713655325534562747856141278635126157571688222116868374388733412616532517271486244262317277585663186253642681115588328744251786753448728188765825856787723867344588231216174673734514856854747864477554832356248656258424565152411833835221442174488317454136247837226418221324663361713325618287876684312812444441472473848565164488436633767217326451425442844144687366643161568725824437383767336658384387451182582141531713246567217643155255174744887645835573213834888472578131288551253677154313413342415165144711722656463863314314122335818446185862624861867885457277648343148615564821674268774618433137118875533582658176562112622122473141588544471458623873654533742115732483886133671535817136312218652487647127175637285187685516447374128831314764484551488811354771253213243388735252287258851134151831222251741355252534588518112764466678323855541311451171157735372646248542756854615614428858556427212753847384635313424128844383173855856673726126355426172217175141636162433134336834333248857138213476328628757121513724766348756264486134516427465427862255247825162644212548453615457274417361564418588651355623838643784276811442166543677821368734271215862566663184467835853833111636823261514524836428172832212875663556314353625167132835155841477438238565816211573776342513521851863885155776712275476347588255358348545281541356864684451146632533274461174726414544155761584423412747725884612766738422262271522482344514644727112118283122243888271242315653253362851358433733417532657881326313414438378323368173725414412133831448176175827826317445875285155788614263664266853387853237313773751836261686148375731121511857881584821176451385538316357323713532631485131738388728425846814854726735336316742674632836623768247527741447128386336526854832826468758854436863365187648242411116578542875237264368744638565535884417663286873126187261623346742883451646884816562477426742183352614747444534852216617348258485652616226576163748211145631576743878381827381565253223376114674543578531168773318571578271525171114854837516813721578484256632432424576334634863621546658382185314462615264262214237588485612883341216784827187121436475636726726747286674174542285841263425184638154472555111781151234165635168571138784152217728582818533618334334878185262651561746681637251661158127211463431174728573315148241113434532762575837872878283114725134456341488152426665284255543726752583687354215848467541111152634551488375413556468824882614844181115114341516843542611861334631312512883628374335112288878422222178365347245445846232636548451357853573864217768443325848582587273116484724611312543714758878484714411583128746816857338887837374484541527253721565164861731235264385343738216734137285364457842871273565143416816385528132776842168822486444182331573273456722828471686232511634752776673434673531366178218368325258837866184457244728488483421546435833538134425556415841253376836571418463422536267468252588857672383388346151744351773847738367583783483288274561357257112137454484643653247665381722672572883443566838833788875663812756526866824674376222726441631573344546838367353674863367417265458471261263518744187835463276478136744737755418518362424718427326687747523133671514352712623215572826674657125666288346277267423514858424272625131535323636267485576228334465835688386351866476521333853316868536135726421728172221566713156176658838541638447556673834335143677367233865818423151453476157175872462638825557734848874255854528426588277611583846712824426537468635341171746747587448787141456186637315176666473227766567321131354284388125734152715238651751453862816825258561421833815542386541417616372218846811886532352623424381128318784452222731665414752251758648385611428362345575567743835868585135774611511268333773133238848453636167628712442328683122865516531333263623866164543711667234877677655834377555128166234527173521386585174835146141728262645587383827285356861361327812636382627171816542287732433828283537316765553273353143355254241188835573738746263273114386611728667335377258535521426856586337263665881473336557586352827642237455624423623167537234432853133845273525557762224647656547522723186358562324545566148381242181158782358457867285818435426333338314246753646455125655757581428321711575456183361813288817656685346162616473426276415466843367513225456682614327168575345243183172586853634153866582723316676672711553533618862321561717565731676613163334787636454134756416165713768218355227834344325135448638825883437146588538622235748618316866278671888528472611875536153628417862667628537667753862374545356618773341354681432438366637828371837262354623636836454283581578663588472444773336863153877136861876774638123312116127865775247836574144513544725473771434617417765838481652288414387111567175722112822683468171415325138533275375347123437185216634817752266664888666676585166316716658432168255187766426633424114436341526143222165777146485516626417436747631513251655364832313644246727386354638382888488378228331128445746361216166125511232754723434124347135733411662671856115158421554364847375122281353564235167221323374768362451275217522784363365611777714821814222674538156183341327165254234326472444411226247266633858337738577687845826617481764155655418453783473842423238215377548251765152156852258168856255626512577751625326213176148755874544778355384533843726221263652123261213312321612853672388635784626787684835683448774121573738267846323365812856614112636518583346674877565441111267442118628848324462388738518323134811863434422768855588458177157147282244246488184514226281615426316427548747754864483663731142748156812753234532641174157238113825662447737287137715328632613682227161724211814782123854124158232638676186154281318385667148133886461241522132223157672156135125668383844224436317733148422121247163436755867384647157161737852665618152547334717322124167863718866872633446477115724312158186181357237442656255736324486185362417726637563374724245352832265412781233176874325716183255168578755857852246577725235421624542184548111825541138547758478834623147645786142651562426462822383366737377873724767121423615714781561468754745888781418636373663386413185165365312147522241263413223128683238655531378463281248121481158348872534362276265876885814611512581623616535252756415665233788816847375137351412723378588475476146844444831651532751476434867277542653226272841783512214362756616772784278178238585615612476214763648667563546182538711644135563544561834858225477337118528743116124773274616215145426165546723222281577124645816227525675364373418426888438178612551625827153314353642581458138845877456352683627578415421388374448874566615834487485843873871135628264541244288188374547815627758743717827814873517563453672467113181742348686656411445421336717713757682532386624628766758546826353128872267438867441286756115742624317485885557313478734542175823324228425862777783666786162351652674323861224653836362645467583331468632424778777163836471281511344776127163611224417222738558541888357762112771237518788442363822557382117856168536273724821373134834131835288723537716267853266356338478815876738276863467755177711318366765215131387631575681461582288732158228357187745312427244868823724316338717378576628183485457486836321216115653332241551265564264585273853425457548381363581663138627621623364777614317366431413342723742664243171571324824154188346222485571784542573645117576267585382751488854777247358266554818538721761733811484386364678176141527662424772721858543512218763732365526184846137653878186674634867421786376576122465845623785348652411635351862668361712777168844174744345443375878858717522475541632736347365723725486714822374326586831624316357884362434357681825515377777111855853153478817866237633461876838525481714612268878452668453236745384845465682356253385832211575175575683327251865764423311355863177543542456421583615136768322331152115247558575543225488182331816117638184622363644751451253341811441346427321555637641355686357452256785587613873726753177621125342587156485758681146851788512182851752272653672486687737674464658712128751178824671563888345621351428364133635284226516447825641448445858333448431241484253683444188652344274134118754846875286385336452461548821713316561278825218721157678661427615862657645326777841324242841772475641472674362726554145831877783354152336738572833113584382732163476365617565435436656172865738243446827744177327853332485675351382883646722641443465375723855644741715283337137365851142114567642778185335287132277887787221882761441671251628416885672253823216311877161643674371527713284172618464341122346471418778755833651617112711844278378263745347371442312253246632268153134234162125813178388633446122472714372453648657654374534843141222628535561542864183432825231828256211456166864344384455147645322112644122715811835347827478171242122128366527527752613257153237188717712563175761517524435625224213653725274727575347456885416584558446135217123653185454111436478433713334115167344751837636362372252575556761381753545828326544635544766144171735746417145358488851436742316855141656257783488884114784675877582337141781636635636176412611465385686735467117661145465636338557133673321731557468815237767621231567781878545177835548182721541656513251721334227378344286357338841236714847126521115535857672343425613263564773884256457283136335466748263352512533365184184683318571556757628743261645745871272845562327275238243276737176262855578721218782413676136484721813232218236765663547811556638435625535424267435355126747517147371734143538138565237572118821618758761173176118383747648511677324886864878351348338281121654256513768354885687281215774825131652634361436682421182346617222856628223756573621736652372113765414125417725657417163252137122532844252814431871774766841448568721833133243711545828574324757681784163843333877536554583668425451754727141245568385741224665771833315776887255151535314646334183171667134746152164312343643242256283186146618875123823376562374183167662118816567566855372518575577422333238856478162588426342581487532821566824786623362165284834654545568257346675118725414554638771816883633152638226637773723787588275225222344766518844336373782476185523617281441115425758638846343414742626737538641825786441142178263482234657523672166367143357271226886452821757622448254248524315811553314486858184885168687128278381532741133838887562236538523153773123736136183518478248662173162131413673852223722613578654121831832366352441433553526553862621624426143854886823862337272343472424184481556347385234848142478332647746717488888217358364468312232523854661635245662654687685777646138265237327582357734651245675877781171812451583133167248316815352458525657474457654345262768184211652883722356188223646881786877821126417281561553483843883286577351856476441455464758617834652273268817227833461523273653177713288246537427435183362433312777177182445853656865263112312277685464315417773538753628851738517614215442786118682153824157524382562673823334268842348715353752625871243263351254384332457714662351145333255231336468565356323224228327383726521253211782184123584133732711457244161726186187444827716656788374677438234744375737275741286724858682362725251781367728745286278255172324445282838761422831358242625817128538788363174364186621758448856877556171387472851628455866552318151735761677771522224621373113675668722841727745657176775143122644535728767318544418783367265141451618655274137248127421837512545375341565848658237648738578512148261374777311834717646315326286711848376724727884647165667886664327326585143438563166514181433865486646221351214511841411228416115676864681727245845156764725186552827387146422522287432874273415566463836565333528137223281547661116361674824245747626846666134281536265654174328782475718522832172417641125247186811282113785661717463444165444285821171366533381284435518158438626685472243247366476537538447116775434325541846642414757462271834567586226222553683275523416411823473782461336552546158115426474432461625444161824631287748444586644462823471148217737512213658183146315351334345135585463748618521822423255541723467675855883522528751132686344288156348518766187561644861285624286827548432781654777275312541166325178687463545174567617758522224687557112432811357234676215327357278686481681333212331851278871465114744418218538723477183652785165441577268128161167777753688385815831447426323436775536583488676358381742441478264686143452181622522383147242758284415727627456674814824688862452818241128454232677666812488612552473174831118746671161326856113751155525286176424222351815313587361428118373885424345816216422257816863481751162483651361623514412657114788553313637362313264361446824818624851874417518882128768127425176473536667535484316271753611215524777452864224511825551721517251384616763871442581656785555347163214777775875615661851563616271481545371838215648445288431644451511718763483533566773685335776584635278425447612146426545783418843352211714242456284556232243716133321852473388527131628831811674663667464613332742473443131268235453316443666511754288218275117351352882335856632127634523183534538474527778513472242361561573843572118553473427383138252261232451567281417718615515226344124361173712858316836554666466478722726267238665855672145353112658812638112645841465346872258824862284762635226863467253177845138228386556734537565351555818323214744266721333276627343814733123214326868552741268818858148411431758553125168643643228228751764816538746448124346367851833575676388344854853157652243286121687884828875437718275385662844161568156622864315328425788853136673355136271326515557614665648327341748237865376818468446661682133674667421148418313323888628488756728232386733444666142664621266745467664845358483763141268285745883455821123162845818526445571275237688412764638221768168637323736662322455887578223231181882842514436648214158671584668337233848488621641726642716744766346241776757573631385135716253675368143688553726422832218884837455858385742273531384522167561163568214778867887186145823368373611286675348684463744435638364684674417537217222515555288232557685616521136558678342531148365612372584517851824528647358845212311558876372161478153854755133263878767565348454856822453626111318855768814518882558414733234265161423373434881156113256566654767765273226316878555537752526511357745734452746362584375487254848711173187248743682736345767363823877287522266583465166321144185384164582675135848213744825325854136273122572775386546638262633613221478614452876382152878717778286715743777675472277443883767657148573567436631857658647632557352875742642814186432486855272564638328253313773435332884362125488371382523552861284453576487117812612838383478185512456152858351521321818223738371282467621626478176247168123156632577126148684382873448446322672845447123687124872236737468334575275587466345633556838673363431118665478213343687876522828767868532768356371628424242184861433846131632161133671664834121651154337161336136364136481488562544743241761273766366676633355478853864557573868263881534768476133126463337581224513656618516111812658553322143483725586423724825247284183316323582711228416814278655664112433358241328761536114831114274473375315886871533218383114488536535126626162134815811327437376646328677842651728118247541178411112666237413482152863686751312873226535342356453356522867665568541264454388815816535433368432476463518135683283513255148582738245513262442736787763377244126142367552713643388766764654766537451873233284484477165117574744241335527537176225872188747838343143562334788521666645536388831814351481561577322876416215615485771686658314736122633311546276732581235733315614843874145754187254836528726187443546817251531122415733775271885846314138172183881464422638685271412864771655644752811163682375133221467111372736523386556755155347452852856136455772114741843474778562436716547773183544238133477442355845366155125348457332376171815266783165566762313283871657355873328536258533351348544511133681528577763723755748414854634184725661554512874537577541863178422665426547743253167732588883515332741582163887353115761436686881774512668167581761157182736186761872127882447484456365115774456525327777128727863666844422734556785643145584482454647776631752437862832482517313774338658434537481274484354175131538215247312612736245266375575518588613588461318884121754413131858535775788521528522313721671445387843283245253272818842186637264627643857241227424326275454246618141413827511847446722863353781784414763323824738161864261548575636223512814443821626238244762442234274342346648411188672265115328314488533864711421157861442131551181828816356165671264217467433138187148442247625788226654463443428383836142728487176648755288241136328124765421887668544634247827558527565274374717623252663234855564432811135575347233166446582755357527337785176716821331841733458277612246455213551271374467363886634448281367284328346751277264816357866653478571425751875318668111484158167835634216712187845445551854837481654645382582445885141813313112734715844288814283664562787768643283374664654761617755111886757736762347361457588262673362627582774615543584823736655882164571337785348265263525877474351615685264785373515727423856472128657275352856216478281283737148865588772876656112882711188583551626685458275475651432481156468246773834813457673732642357665575131334784616272525655587154578742872821151664876153327284548584477646642785374651678467538445588324688737432784538165535148555257623276526465475453812572214331258146764417655867267873283683315225562868715187764368254274522611353428186253118216138256665745436648654161377388662276841484644478824422225155882666161176216625226535347821165743455234552873485724158811677238562254275474681842353721877411335147535764213754681842186537636742564247628615161635545355685468232326745615778522773367444841531733117545731653536754365666438262443816275222164516114237877882716666172661443584854474837374454132445362375542136241334152567677428143841214374557687161826545183885788868184451388162164428127474551426424851585263341787356752826855366633687811342876763245316688333815844642432538376387737114684881272325425578276576126583853327143231443817883221828267431438341263327225161883641557467211182125246864137226471543148431216428888345455277583323574236756555424428662258574815224343128472823822575612238625817832311847186157313741623251642222147113517764362622674658682578674554462855372223447421151818744858383177683464415823838628213557284468888245383845345777785722616754741334561835225611256638458241272215367827236466488122665555344432554126836264828882755862512814636248782228377336277665523473846567424385331624432365587735276443851371573552652445884673852562453272248265336462162115162277831347238145377882285166661448842843756337853323517765542546247438471624566718635563134858363763672748866514273481718762614582535676661181415645473461586133875253786855513243372575245814283425464151376587885744334435822268313675423738587768863376535342378324735275134827812318552283187885465573786345615533157374441741446512877263613863275778874554368635888323654626612748733258373226712488764785526616381573221248778578562157368546335151342152116565177883681352852257358164332687886682127758624736333246348515385661548374342433235158483141541763774722814743136512546557527354643671842323635173217528347763814773846648178276514836831324615188171724482311637177341163513623327361468616435744547652873324223846184531833524168541785683714268445414586827885545383752248526231366633475874285621666777415177723255518783213445572856354838411686843728225531677571823176834764155444835547373747528824573651165566866232561842388351375642644812558862184655775467215768844131353241126252731467787435386486523814672417686482276621825664324372418356172482275844546173571528728442126355174337788464622741332863245837512543137164143387881274264357168833736681111115814673681233586458548718775883578627684463633477887778434683517571345683126832422375778327265133634388662831268856512113836138363418332234347341657467431231737675577412884474121864776586641118563123378377785572836372116276611128823852387853725453651338618461463724654428611823887882538475272124586588535326522177836741158332456723333762283166558213325825721188132375481366128811827518742837731168264212761732433851832724566331244664527552715716451338655175661243285122367445251371713122687368385867614225636734512774848443173531116127357841187346337843256561246445372762472365585176867685618151657732145732187256751528751363434373156631816422683725666413643637113776533275152433566816337211172326671854538337385842675462268162316313425144871165318446321384224724663766332415885836235254635614247132464661251428113284526787868672835882164173743162424768366215487883761847223476385372315135572847384175814723223646547142355155844158316687165841682253358452126272762447325875625537723465543837125865467522273346188832286481757425822473567888367237317653415244416244577163556478871343653874375616754527874577263814748713812462743865338446861222562552752168711287481345137126874136377244132722557383453834328487285126281478384284135188232147757128717453343432712416186781642454335836237177867675451731415641741131424372665141655488548611455465116485668871116543266734871576653413645348446657844334628434611131862515245727673725854787268867635745456647564725112541434136888163578248613251362226836388884857826512447423556467657357843318287517337161183615267663554755442282622588265515128585812453617473342461854414173817118811261675817154758265531571386777813661337143235652875684488247645568562446438661755182131114874238155366878546388517667678746356228453221735264681557383274568787413632774857133278664758276732663643786883765751337763377861787257117786143324347184138785772367167727277128544124184143322527322768357166187286315668117728528483327785211881536751756548366765164824132227841626368138623388513164277116756528825435153471841324382767124772334644258284288876386163862848747213338715335221845322315466842733763754376564235736654362153316388541675883423865342767541762167122771376677172365453816651763645521325881454672286144416154484653475861523876255466527233263334562738786154731144786225213233556748425286348124561287677682854217746133656358463482238158712232523225587881537773585551212883754246453843863641166328118868244334641832884258732424481347862852435234473516178387636437235137841451857325823443873336225387182234281672334345544544756476285175564247432563776232523852547623246361774587865358177464375627147635478547332533541474413645446876284124554316631748875256462636845144458886556311785476721853256457864464776526283411273245231873461873857315582843166857471544756515761387857248112417252812156777334158854465476536128776672156758752426551285425784662345247873435646113788317576821634355211521775543722422266555537633841552546787648842767281658522616333583848613257112571553574743175112452378312772631673811172186583487683321417361118368174278518725374676723356464361865451327858154482744266521826121326324266273583766854612713275213745828536566721225253483417634178267212554715533128437468218316284664486847286515117512272127714867116611276736333754863774364626437764773535765741214143275247856633277481644825616171488878462711734643474862433646743412125716781821368352562435276486358738574266353785742872556715512472118523728764347233158635356181262771662354658238134614318525313147122823447832845413583421146152531622133836621836276137218874737816768228787472265445355223383743185667657563375881433114818871781454288643847236276544514282377171418171145758544767275512516815826881184267283235654374535383771271346768255167641147217486644458188633425822473457764611845177553233544135861866453781545751576516731718413261813882156538546867541581516534621821772232253528861588331671628711558778562573166236725584665543318844766625622412774433555121156657614432811741825128365544356127757717687777546145643787338882634274551137878354737724513552432711765874433325667255572787637575553126256178626137645582332788343324845654272584326565468658551573543175264323425148676347861885741824412731747153587282675765825114154814558424678568446871278641232328745376425448873547353287777675558757516611615638232516185753325882727558376828733643348575873171837683687376835881282241385314387763713616361555672755445173163856837254552526742883217763176147737213655773227376386744228433315623155314623431751445536435635884886486458758845846185418142381776235747533424567755482316233262572265585886351745345572784178847122376736132222626831126235185487383846648467388653451141328865754157373385683667511671613615242313242247414642287733753231324425731624352785572351316676327761128187224381557458571317846474485262873178612556211217718457466678844842828641162252688514822386276662421182184366282122324143437251118725831124614876764874777584352338782611247215873867455872327122161847153578237222537723145754532335716751643452675166137271544646834518364576414172372218838814356673616164775373177768752758242428471153132526585472154881474623531333636465181518411867525674846666181343452573138775546722375858625328352278158146367658774178617218232126822536824678463761437255634436217427618647374536466242472832512121771322741214547333261364572373126238414285341143351454467513515384285374715416412216624471787833118546673731477618132146726375386226544537642467162245784128545836571118463371274355514112635235771451114412226523173154327531175687784214126748153427556466241328165556158343215557168773156185662376188873811433811547753538615734238187185244185148831844714854147516423583113277741831167134114865264231417735518368343816326771117471531318767554155446745283218847611482445282314548784413623674252281114571421762341657636155246353333452518343474221878552765487482714664385518621678341476533478226548644285664712333132684617326877712327552842232445372612243587177366223123284117232463283223831427216217584864387285512838282831342137576843138857175235754613745527463736736688216488871857313761674856246873418148614416346281357621341688846527548585226546272624624771344683427866255876514465486872172242458726548636354486646812218371282764284157553518364865172676356541855337774744462737812765567822574277133513646788255338555427263652164172342687213713635366754186811117718665483334316711576555323378761434841374311651425147338637361111465258251333462545477826444545557764671478724848274875675238352234368827515861877342478158675765858821677371367752811862531673365766815333436212267735874657152237875428457648556418514631532725314722327278742142657132144376524555756533116271443255331435773285371684812331861355775587632152558685786678373414858268843724176625381627343288652668368547625356553525141365341467114635464668225446658382783811616748453428442646172517783154232475176438348214767638225581511627736566161186132864572182257881473236413412775848184314186555613572322338523727677225381856276121113236757735574182237371518876174167653133352356246142117656164462286265387171715118275152655217386573818616444155671355227615411237225655111473646632151422853145524176357816346821725864236181322726518111311652748142222782738667188886586658444414336516345273142517266583413724853661812288581441334573831273374312362281216257842318353446675772828737825286187284221155781864235225514681415274686468625323713174342372422611246471423544722138221457586457242486518753822682613748365877482337157511552736687148563151518638212832586348115478445628668248756818137763461827522254171612254742755387212363122844322158374438571616537724786687186812515648263344153412872211671377187352847278544564458546314338618532636251172217341854571678658218143664458645278235281838714485481434568133527231716718446782112244562262233543684131642832237321446558443614648118674743656557557272225156227788456416748484818484575252564328252413757683244674217423361667344552846323384438411358573328251326171777727821862584458642354372856645583375132887311874611115862642762266361265156144421277645418655532265857451725734548473831713135858514125287472443871864822784486426478188733646832135284364721537866776636681174246366784742762357833365531638724221586572738854424421871121682623438283135887186437236217234412415432434683253816426143433468671871131288425463711265274436155258728735453668826134322632436548537477838885854534835757582323843656128115382622774368735627677513324325522643721724713462718661182281312463425217555518658676753667718623152368685252286255411344821442724647526118827581747542538574432786554834423842883314563471531768182151283484351371614112762718417223218247348375145416478531132548431422752758331542278788712526566218881243245318174653511753176617364385371766472757714571758535853152571367862146574848125547211215434157454637274347216466856874277658462714327623214747483757363647345535834462682733273234822885381741111247173336344264636822252716876567363665381423755544425515851626121486186745782812441867254382814821388168315115816113735724722273822484475685756454413185263357518654263338524836474443836357128551637661583585888341383535184838888754573413688583338443858442117141467715762682631635631272177758886446121851681734184772676267237462748784463526582871615132712548478365773732442346877576466587215733476658852785483747572712632312248774471526752713657718662463574433546317841737154812848775641258124611265144756827277656337811828841146247632273512474773644732334487722651735185841384667717146446225877621236487127551131712242424877441561818727544544384215344623254362358837752823427837121552573116713613257855387256668685443741438466373275464786523487513574484311834722428514256262133156583821573132334775817384484488744216252261154113511188244544125582877661763273211718628734313463621274331245532618542232662875724538122646365136152765117863144474442523818428734127374261473531834283173182874843471784818757722886212261434528726412568452813118486564326765317154872776177844581357375822258832188247545111268352176545452421628211164261884588657873435346364884157175762281763651564614111416567443536626483435553528138768183846285837547481642584566441141412731184746255825272537148751562611718851576668374113877758516643724471434262666174472833871524565511351636514277285375361482747118131164722881728124552286162877577381642532563165581425123876315731761621837814131162641588288442224386356646741723144114581234113438734465258247212578644654254264244581716386267135585167454561675212378527384664734487313365141361555474761846421431332264745562384838875866678338152767322865715754723126644247158333732678256428881787423547848843323472177475334828727642246247231445558856541547376152876451261274385382523646232817712447264243278718636167671842428634146522541437112315244814756678781553767472357158661621765434173745128534325281664685762173151434513255674314377726151855261861181325551142275823388475558326326125341424338737253261433454653465565526141581363658417314466771836554865581337561461866122758728245637857877431444241853185676252681376644574338651715675248533762586762876468842872256446481646455247833561534438352885682335172252155828132175167234384416611436682253653837244826353464141758425382664637442541843376376132174521446828631574667666362164378316422718472546674227444522626353155815721732485716647761817341616283472434561727558433184824875262266328446428341244453425871213188726767226111785287545613388517271854663141138318631382381356275847872373352853735722641342121361167266257443683745166111872515623415722533588878446623712668241257436358325268764145426244134728267581437514542556255576558137552467471847458524818454628673245342266852387226676323681638518744636422517836355884838887528481563762123572867164456433845882815882161885273688722222225314562156234338727754745624736466528675465468427883164312685337676625832545146846811832216611575847416352436221476261871622335836336858113782418236284853756125648114122157367376565737174475826726885717585428673333231265463122422617236636312634826741853855263811623455183826374625671673881276838242421718136585134762157743442136367855728245725812724287247452177441128514756346127214527451334247746667143334145553824436456531171647222454725166365427731473471522331272224737435834426452416527422285425564416576177331446268816786148555163436182822835543114783513125632562866238473114325362377681823278843655214214512737866482453437832257447455575735388545751284574676421863272332852473867644783731578532551474645574747377657841515225371435458624288836758254871288634444151622117566813825873668648771255824174411211168664612345221312418764825686718435852686827818656313764431671621876255743384835563858858186765828212445771731157318715675458527517643886167743564222486188551427883272555438353444681368835833723616468167811755374371861138472748283161827111515681486486445386313378832737458674634161775871516584187747681228672785734832158418728313747761315574167127833434473821751314144558632444284346445613475576871413375576675118744874228764158761267723451651512688772337744736413872286353171348287336762841552856672464472413433732228411136272555683242848878233152857162658565142132386882774776877442214732113225312181277222578121817381152368571646621213462131122856628556471552783874276141158821353218554661546844838634411487421711363788441211213246573282631671773138664651442755261488338314157831854186141882128224754445456325112162773463551263617123354542228136764168134146364746738781172171434541411422724358533487266831174134735844125527277187571264147451541285264775361265833621125536347436551818235258722778857426752684128121533228661445442351845761263271831222778584244836887264857275835823287727282352151434738324716118135816686472354384346368628436835576822231455552186423885815284713184223838545344853348588125586483584874788131135431386868474731176274631531641844678373281374458163243855186272346774161214328786777174688117213886811172518255544352382288178834334413321313556873277814463436566173812713157743732527662865228586587465661222284123788143662381845477125114324423662346571418411655526736325434782636854185612464885574813425885654321488555713283726324536275456855584251747754613484854543758224664256881663641881153514851462845136626443724471585723318856616328541282234677613855342344525313757646766835675166562785223343635481747437515718436563754185465562625438885162615333318424827272343555444827275478316717316684835272483752348777474155553233525211148882175168416878535455614884814561678355363652572236314684751326351273478445318472178154441238735621837767887813762374785517457528663126823773721154233651562434157868657812354838148125142351453758482378574544558556632534536728437356265338651523856216231877737658346566218837324645365824484268261574864857771711113515115487174118485552485476446414812221825185112363418113327168136247315562233868316264516478883513811266441646334522848646542553821547378158643782586536751113155228547418441436683815656427738812562172186645462752183735278231383282462642357131381661284777416723631761865465465288774262868357677654421124261656335457625357236857811562185736531162614236145382257722672362674356527641322741833424673575344371132783532662435776225233767882812752711844287663454637871461537778551222531163365738217342861618621443562377665226736521324484336467382535483674357576318627257555382224651174271644362244625442636747821588874147142353685245168724313358723227682834253343851582827821412731288178465411655311463824864224331815752387824252368562664752243233777574466888726643526583774177455811127373252432743218154462274442143741756866242238745378264577688643735222433326781475883326756622651233173414751718185886672824776711687135122768364854377578567216375758136313746317633282225146632266775466457778523847768861611487775483744573515465342845673673156386266614825162653557722241155773416766327482336548836111776161377551853458572846435116275477273835181836855645488111385514127322781551715171675383872432541368227861121638487873372132872825836431413266613212588317586454824623464746127345255673518845343375637773571384411845885786877325585363687726864537274333682471731364313242534883467861848757737535855846688655788545636312782645817452671352532485635444323554641453531363426333513226516422586332554347258588811887345857766486322416238785445244875241827534335263556415151264628833532155557762226734838822184844816228334622588833333725182186556835838116756748743222681566223572135182377828518577656413782645828478623225645684135733617463152561213421145372374536554412374512522438232428524576888436335676714627637778387352622662384528216334187842432863245317113565243775252615435328544731512864248474161247551173643226847711225731837627463542725284585862154316416767621135223413452855726327627812348443632862373245334135754341245288158853142166365667821352445555531122416511813261663655885521661443388626617825657634721432266322241717548417543113451181877365481177887515838836332347415343747553823448142644837768666862725647636841424644246631366164755188558214253326412235233535871555111132226415246431613553727534244324432748461173611636517467473562625758783786737851227635548486564121658615455242838788343883355634468136673783886566567737758133448143611556822678333176423433336831867633325553243256765775127377461838267483377381846232781237645685327224552872145465544334185334763345666765631764315438515638762266333675348833163573443673556438763712432885318356567545461764747187887287324341664174231317478765324783332623458757376167573235636216231318614356651457762681324634354152122217778872338284326686782356465543137173275615744468158875327543752526715175556164678547678231465334575288725478754478243765763163527113675384745373265247682614623484757854837563555766515472714258585451844367338866234738621212731375436534164822341774452433525348758573675274877133268318366757444468646722311671186637531216127252185473611348455725547338612474573787725821425114525357734643167126787441483883145577466537714513882735432481315568375635425545732572774134765328326546185511751174263342727116814358624345831518183123264662132537456481141712376375562645845767262721875623721248765146382874411583246628562682248411241834365221442773636466686347352114146655365411471286533356257328431763485115651648117434126518223288135612234818728558637158861756466584786277225657621526178755568328484222584268847656861824271172627185355442183468723874388166835615332742612854446784881717256727827612832134177624714582376628427284847721325757345481577241742566832723544131521166721642486248843684648728541327511671471282653672142684248331787452518278321588461531651344133765176611211328855184156782381343842218335337831435512256383187488216118318112612368174771281585426187625685433358734878684344852562831268373664254322371422774681751764412335752353477236164534378433564486848735641548853463412414667764267147323146638535876784236613128581187158622372748235227877346263867764613531672364875661262457641584864273857754248473281332766836388367438215388336355856234523722755287275624324811212584813285136613521158271672367424864363463214253237246761816545848445483463485775656344814355716651855263217383457142242244685466123616627226457342453346775328181152688416658443385628866285751836652353634548874213118485667631186283152226664281161616334116763182363284857846124781124482268444252566638478852386117554447343437382524533225325125547672463426245413536545156525748617824263757155167638834353837817357741782587165544484538833671215856535755632873188452444418181645315581754618827424637735744778178348422488356218367722416555128754356262166456872763161485584545162345522857656428486532682722428324733637452713312532767558767686641823457614532385242883568418663632847474537734347246554264637717863321771258554175482427552138825854632324341644852113437347218755825156142723367465484728645382473845325114311717126515138655788751883583883641552812272746383778744251151175146384212386673661521635737546126743764158434656327356831742453784146543272217845471261824126882115736112833687332825616765145345525886286135855627244522135526748135644156318876361733635854647622272384172571373425686872423875161868444582385537763437641135332324727277867587372384167247661467856462368675223318426837652318264817714743352352388652224454847417285338331153857774715217318218675727612423615584831257687565213672542358636852355132516824434412524455438734136516753455567618562874283276375612374685252788643442737255451671825845547326347688443337578527365866271528823778683123461182725122781857418777426725662747531187876638568424856217662515465444218562428162534754621552785381427444256761574865417453617217856652776451328322723365316286178611578882881528761614835514817445513158257866714571171212368114631646337275556871678785822588533353883462524277126883252117166883857365134228821266572378783553744372751862463551768114578714678224168133345581237184258148524113416128813537357137244254166276584212662625241823484721386523833348276425586257217585675143385536212714364858466885421632521741552433835831574233475215363456273833276446451454787125312524137831815548752516853461852774274173661275732688444686773666755728282376531388231368124872633815484678432232632754636282824872432586416321488365714181843331278888646368875868221385378278784783333826824178881628726734421766788782441657554273264414553618348837778745656771156517651886887451834815131724871311763467234548642738818646215235811724636651582362262746437641817878328675414537621812324678765234752426536676426573314777335827111327671445757465613782631723388322788581235833114454223312212231175831144317525151162168388418116561642762584155763675664262778146767151328385768743368456684515883687478464552583786548218331735161815423875782772415122852545727815154427687763873245147357411356568521478223527713113436876862378246871713722662543873541313542136724862851287852356522213524736178246438525811732558441453713211735148181587377513513528558761841155631656471831377318222718551633283137646736524442133321773555545848423185654758562854618864225776327373555886753655785678717455657175437587331313872226686517163577777346671626861253722168552868744538814572378451683516162335268683374748863578317355867782374824353483857375716638732677416515116813318687365517477625543881116757255731257677523455675835642477763113237885454751835578758654247247452322466518367734375841465286638732844312838773276777875111341328184271378367255833672757853572551568613538424514547734378244355122578817511661734663617272374755111556427455234382527446362627837581313754866482654565858282841416516443848385257365736445511356864627573367871617887688828851354683221443882133428258242683434863875885884267426112673758662235523678368485214514762724686511132168156612383341784665611457437644351637833257714267417442384135352831773666256568118821621788422322361436127375883542674464323545647477171825261232411414725765818646232878166676884685176261422483772861546322811441645337361276155228363661837633414586211278571763316333423376276243553641518646573366225511288423376641667318666651172538517221257778555155882367462682323241753541453168364282545772164877661884136113885425276432537886751728828236576277462714864738275734423412161745253131586531517682248446621384776786715365875452333877615635771436776811467621844817367837273386565353318742813383126575184473748862268753853848832575785214174177865747118114156772457847153221113277158165162725661434836217828347141516221863535378447168851782355823515353373511415827564328412611136233451767517666528652368538283822366111732384523547445384874876111417551355714138643778377436643381113137415785451787472832256282312275623262724453367251333643831155334622558515532423225551441426625146713734374182314528368476118623811353447753158122615548821773248874275661833841762886888173864553747374247418576375142548512144128753336767473627882243614817475867351647473425224437615763321863668431744256668623251616535383635665351765488467378328143578422178314157214242866857568787418563411515135546628865438477227765275715125661117185347255846424888251452815515462853677232571841555617757125652747672585421474236416253152576437816223464472565212584581625137825517512825772162227646315725674312653712485682571315643822558648771662877413431432682851775646225858254515845657424678654887325522213633824458287536263552151328245578577873568338825742614446837573236585512532283674815455617233543312733653862846314418176561735222865846744188328668334881868152858214884463862737331628474488571262257581586631263812858884738546458278344174687678744381471414646565265331611464115214358368334182215447567222688211635327222622818458776685465352375514436315556168153473635767166383743141556868441755628313126456787182227471185761418836817641385612871338484566276171747212881467335455881457163741524821711824356563668761344688317415572344765288165558684624254615228124487666574736762734228376564466872618463523251441733467721367525753481718235735528436214317651815342838812455113543834421786586778877564778846811361363457714582151714343314564687434345226543444232634524877127767382864385248638582852148728312186854141562514254125286778678775541642715135447546235813761425176722188582712566748446724533736578358365453365151614343466656112146544655873585626727255581817168428854253577721168785812167444173848151368246854818216863676272545151254648412462472745614488344725537183614851765618276636557618852638118462118668357126448715762642548245323751776355658337714644887818211485241762817531328488875443833663356131382655566116862563765248144745544671236544216154316471482836477856636186476758351115714884288654324521337121615373853813483367455424544123274627868361371276123362775284413441344247835653322354183672787642433826628872374478885733813476686878327813146145811541542785234788421267272873148254215152364434363151844738733625214428513645148125115447428451642178611674345856424168566473227873853671725417118573186715723572743722888281816732282772121868221582456466154713583646518513181716542375656687653537847565474225878774345775211561334872435547216774875438141716711854164637225551848257133111456143521841452827167574454364366177188653786567362786882425522286885862847564866655455384716635382447338655112573727844384654243357777358531377651352651722215212575877837865647468212773163371114613185773123531226382367383381731136672584843525354272826843685685434641641163258374445786163342742815846123445373483873358571462563724235161664814877364837862187146158663336787882478472365552126632485618455844252686581225177626556284648288375252711882286538355645116513581172838878715555251625883548415573435482352564185267453377285721654883188823832427851285674225857854831423715827421235661752154548118151337536847567215752653274275181781318113556146332214523817276732733738745456178881418368174436621558511743426113624527225535857628531371523321688121748262366288758476524743523482545428552331713657168454722761172234758843131363741653142874653743324718778572756422382156522512581877865471625334161375547465625721566722874276573377747385726885823311455763287275836755187354855753865417334243415187354186158414351762381675623783325682317817331176826181322617538767154455885863654838832757522467864125574177443433485372238846741758467545346386526714834538261322728641265862533861163533225217186151744332451427522542453148558721885435347478812226367233257636736445568474461343838758634214886587124658152286241682665673267586355431316575711568712161344183588138738557647452112215811471436111871515375772573714311128768448144184682231185366463445127122632247666556365788112455624435388518376688335812422633285347744485438658382758887632822543336735845877514478435218186251243783186345115541254441846632644633117733318524686641785458484433348278178146266541627733761713747723631312187652521383346326357641861682882463384321314833638218286363123836255253384374327217737131418482117611638134563174733243843872251571658263388654643123327213438257723415732386436738232553562447835745475325134717677518865771568753367888158588144481487642388861867633318238783243847462517512288838368887767757748676547154372854772442835661345264885482876162226131228356377815814141888566374877655282581347734815185522745311663387247842632283667721511742577864485241871751673565236376441887134525313387156471114317642612214532153168862376474474345472313453638645218436762226542655875877257123348743226447257881575774688466467328347857361728747822347885388681525811713772632233337723418878182388865744674756781577588457136223618351484761556261681615114475653388384471483276352822182511173167567815752638364423333253836234181487663736731342362256248853832672444484276761684578384876748123734863357114761838525611385863723328352122265867436854173246288476412271457812451225571512821757465373185586312128637457246277684371388417145843866467288576453542536477857552715253142586812253313127523335526612862737427344642553362615224584382544486336352423428358847887434687717186782511747774437337147274854421158821182748848768344252556685762753438523267252146258371656283448672611626288163676324446166411144375826634211548267312878626381425816336656771487234183852251387445245712258355664234235857843487678321142536781274384585856363632653366171756575661181372177452574616125662486564641347553464283651338583713455526551173471815232732781661673245587215513288773632762544323683258866287214152185363184525575561534243851436242468344666235348112426478583724122555121313514414623157877855337148357357318656777274647434633147148774315746435314377278222533886842163553366567812471317231486772185822324562167276764683413252856518341784866474132457787173744585126783258883465277124488473812274451672547571767561176622872151283761181418583458126775843758568752437577237448127463157111564116358673513827875432484285828338822585813214662212422817588122674738171312374385413284823822748788687425523158356676674143277756485714433417131768244614872734461652764225685767478748317282314136278317436571427311887776513663882877627446477877574432648626112861648543787646564616842721277445168881876641457535828267773586681381457182234546745427283122482437431348127543826258845357266125868558432352624138631233628321674235278872243226776815264266881374818557648151348615838323823142217751682257358728428141312273161453573615111673581285283121177731178128585654571686875253352714728377316568187164323747731821158586376641616168412685268336113868367632357865815642865887385352287557484256725188276642337764848465712883544241167448563145516514672577712326188588425336873518667423363461676635564716252172125555752786834253476837611527486153217173643138174767217256686367377683134117825488715377154351675221574182473687638864668162746367186255311575118586161876721454263755176111622377174148422233556512211487231154738884743623644315273887621423865462825774648245621521457156414551712185565446628746742354655121662566634348676556811743227685632878627658276542383164382657381575527171877538425423527784538347866362838448182681852731741745387634786742647427563652413247373113382165716355113844784218514825241414654385553756243351861852273224656655111356176877835132811788851516113788413761661331182172634681151441887341117117216881224553558364158553651131717416528142167161173688131733562422744425628186261531218283226368548657836742467282318885816543264211883373488325215211682453336746486431741477868245272123125661326635418123816481178257451136635157514226264723877813325475724321641267745836375662618827486878521333276771267313571277584342714744163416434825871554424748626752234275885857242216317788326883773382751126787624125781473158137454515316556375476832666842844356764181723222365568433186247374636136275457374716741655441345315175458164488848684358818683381587111817154818577861461446635482352318614212158423451261411145232332211376458151413188746711171274161788412476174454134371478266544338866171755381361487513421745244747245282787731566323535325718243654374124563526354267685843536883187211256578764387137333582342621231223841827157561361228451282312124878131586848675767378415683882858863872373252315143673813258352344223147421251735168161173625711287288111183765842825633852233827734414563426821822442416535537427724837371542631544345117327665227512118164284224657835427281712638736441538857181843475362353283276586548212116162175213318384578737478418516864142358656386614676132842568366336563215732262586811264122847252814885244352477264751858121515383442856472286163124226787727444654551865282455666848527168711746367155241172555315264662218353651566651357561681374446667554886613864166584263167122675247316846741316536821126788664755573766226244564365844573256532158843334855163466151428481141326827241513221256737546476261388177468231417221463324133345174148785475133815657651121154558631678833435683854738447413655235253743185332527856867477641838455436632855273678433272823116122351881286675648373681768735417331326412778121847824666541251571278888664635681287324178754577516155137462642336258634328466884518618525446278612545836533838148611538734553128341713134226126184717686148122852183115424633117578858631638484653621738383568137133565384244375357441331357366166883233624648364224224818416161768688631114632118237538268446471156628685658531218832545258414278848877421163751653664251767783774633244327383435488874622511784837228341636741341385456574338438721741574354358158285528112154833527663268314261186257728181254422878265783316873567416875181118356841528546712155756224728536132723544585875642384525564224536478633248713377167271446735274528487378358353131518341531627266663511283187416237653463444326684812122381716526157884248632486487566366154466163568883836635442884682113421774737734686465678475815772134278222163442645363821472628838813732117348228656847653434124575565745331758785446828232331758822585788572521665163856756583484321851514665618812313545314521857624362747177545762786324766837711833174572242678767216654846786446754273183367824442166257786247884363378372264664476183848221118223442845258575631446482321482818311114331245427527254152152752453523645331867321713377554616457661112334882781462665572512853636786826425284217475118731623885332184432852178877144636758725348527557721634583164443287768364873718681621248143454743325228414374211843127638645178811287118433554624686135181557545352233645157231556868534551122314576427123813637422142567545375711253832832262671474532356872237844236126718166125244448615527462452758441413772386711441888483547421432142426516283887683383526158188283111762156126782271533814411381316344226837274112222113554553271872183653441752668846212523541315472446757843626672317131342178376432717668137765555434238347363675753336786638784133556541843211453453142665652635176717482473285241441377518642731261826222112535366411758774166673471758161283776136217156123356314441153168127676317761472327124528331334215661461844878726537641333463853221356121515184726647372627618172624176786413471215643771352326287562852352516386752688784523283626822144361888332462151218588567258151446512232448211332852767681365376687721631542642533318745732168735587356422355117315876561744326876422121825423823227762515827616824733724233182423866227718336877167156236446257545736613283552167561278584325141331556866883185522316353372885577341144683661232232826752117646262232611667657471368622723353846128856121546154776627866283283765461168174485864543138727787164572374258317854175887745625128246142134121876144531124345824414118878382348151173782285374384782451378224676652136826241578135342878857835362442133654712472175271233882228324234465726652426144654114236725245372828272484717348746738522613236478114823311784445227248116836645225514612671785314777458147713834555676722581787236872456334324445164323273357742486322622241281757881374266656816247418281261325622315483257825345173767785577255855514887478514278255822561843445665234568531525237488545336542628317455475144654183127357168841441374522286227534816432788771884622171256548413883312472166626245148734557285144342351153481225376266673287311514688612652738367651475614542282531587651518533887636263374414353173725562574741522834333673615111852215331465583373716144122327474382532237777675153636714843452842751873738386468743181555816767854658182532375826286358528886657738688827623311631332244731163843878462113313366465378338435431678533781127124636755784787147115645625674276525381541686581862512734862886227744565542852855762115418367681232687328514318453364874577443466513184844142156388444512343658125385656752636835576836262484812232766528343545713583275175543763848367283554744781175383847284185172517821364448227653814434538116834476473724485767237567877884357685833872472664444317766532127773873877285858364482238787651138484488277468465712835561136146656686571136634212162684617428142427642624477515768537165573257385656837445763148511166622846365517316112357538375383625775528631561237164886425822873167676551516286184171483584658652521242753148727724753128244121338823285211172853845326382418418861881467475537538236426354861766853661474647266641452785242838382625324677552833578754348247674812444822337222475127123113577538748231141528433832443613637572125146716467312661712748722536718163654386284851617873731684344342213288878362118714157234364487264584288775574564841338725261677714883767126441585534176653437365761717326856626738316678728326758581122674323582583866845766527474273422513768138882676334572181525826667622271178324647663871882251724355461478176547424768737553342636864178687428261315278124147327172281256857872622216177183581358574286753347566657425832851686345761425456211745654854151728521686487131456442166228631378311878688118744455537841471518488484124581572884226812655476323838141166721676187757581237536721621486775543247831578368722461213213586222136835651376358262373514538341124675841844361876275442452452554182273246371365653753615841713262856237563566632176357818578762666151524731414363165453372834762174712382318436434846245134562371761885285248577848364433881228715562152333372745638763162271156364275178323454686664576684766514588217635647177751868645783211338818478111428364422883538726446446172642684676788674614345881581865138865344623557537163532657354733721324453315768562475346158532521528524751337851718331615535476535474521621162153543314563171431634256725723187122128163442271221635817556466835236741244368342412162587241581111481465587283331117353744553661665423148867768878472622777122758487762655212185118742126888161521354585626525183176387146524673328647328862242425142523234383681261168622546447158267451586433541323245415641242728565382144485283227637868853235788188253368778757586174178161325824741767313858427286282855886477528612218485813722217383452261833588618625725254375162426343315352288722118325758126735556566757647636586438661548833545217784464717424236781524527462688245257635246531215337478784653644768648254513584286682676143174251282626675112286456684385368675452531814175281546265361753432136376843451831181314432276536688484678134284863664124338687857563142622647285552631733783655217578442322211633586578525451862471422248451283228734585137784812551644676453471434478648425876617673727264267211324885734183631265457841827745446835565142114181613186788231771138353536687263343522817536564245261531388676117326226665487523181758445424784583274447676514714541172671768774163573152662228648357273255744357276577425317242173582774458541864628132358163741766154466871676225784521574747525826131685651172327778747382753812412471626782623467353247881871722836187473515542474455254728887287767322532756612627818371876663428826747633151233528527363816258717552321376416735683171141632323144346172632115541525521583422635721137262167288341852512851171332442857662586282246114756832864775132714131748534831123426261354755615278221774744856854672313458836214776864125417613236834341828541635387481817745655425811662672344871728475251732844532517436367725754412637667567687754367511443888318268613461836717314651783252158676657864654312282367154366242226547344476576756871456481162883346137243811376642746483268365368668184371175648424731127652247725631765733467125465577851145823183235728725227734158751535674183873422454873423735476238617664767126323421453715314634651235212828652858582772163142567642262834655447467353536441683427382584521862677511723533212221141766228822686226265278485426177754443834711577714172817215521456411761827546183487387765433468776554323146345685281667367674338172163467763417634486882621748643751714651582124551828181662616843838465471383325464873645813367261274483478421624172123571817332128454613514373651553776867666868424551822116872683171467211786415731522488153733281334644681131674643547153415685477848475458484525431342278757115586512247756818428413332274571246456661426714445355575464728513254822638828121546761123455325311658533284183217482263525723113745667877156467774816835216424554137685166612248246816426765721881658856683777468238741223364151115182332675533415158167474576583768112761488481816871627643163858826264773728818266385636133885577254648581547165752184614153622144367233344757314471556833385168583875866457355653427211416128535834122333757484635253813562284743223825312142262656644156873354342533834144857784367644137834354575567852124761384125287186171215758521422515614666356652131126683555664522172225641373185214844866183522335427178167177365721823572544663274658636535162651342561471814788861744264666548548485111261341217358375643453126833542327458238535463614521828327342464775786758882133481242741574477866222757624826732826781725861424685872423762155326583642717756336481338666548661476421611273572731553585248623631833163747686745812751141117342442427358235428161223736834438241372714687246214823865335768388134872442242533872277412148677357755888671833782878735811435361645215873833223811454121264652732158546586877275336317425541371575216556225638738568466531355474185747138382272644572811146681781342625542428681125826172721586287438583642367475847653484541866668535466613117613137376482254722572187625633553863316123737871284864543675841884231482745338328476536715865655164274467557581188758485682367742351453827734444875835185387272164111417847378657816523653231134412212112531465263574825238738246457237447284477642238653312332837456282677725586461412347531684236525771552777471221854764513183645838545738246355412585143422446885556648531155663432833834168425131612334337584443615185267616361141244336243283538788125852548651744774288274517576175246412436176255541157517133487822638448756568173186524176426874247652546781767774415714153441722357268757512378471137118141287174517453811214748422222283212161127763753833824855165874362267761554816281252346834428755533426377668345431552824356818562478616541142341163354756254166875852372855171776213375682165724818713188366855643642217172554822517867765257787157848427261232848732567781231643587115573512416855713358442413422838577414642816577518423631872765471231212488123461473342118253482565382287111444457458551242586414511726386387318245766782627425475134758447748731824458537161575784268261655217886343362737453832157845611336736126351588145318412815143736465277528238243633243418814376534227168158571723744644685684144135818565533571552185555711715325865733475483255354476623614812588147455655631734867586837835772355167631863655648568823373851183318138185452635648631668824521846426425137781121851624516638381842341723518362166185252775324475518382627312117777811278776834455171828348558317714538177646778467255187641546184544422875662577853337188653433844355251484547814837616668628564866272731352743236616141613566533347182886161451722235366228543764644548746552611521726145188443777732774188861878651165572276532422358368352821883656215128343541663388881243737763481558583517271561165241281567513665381542446284886571358126474427816167362587874582387386644173743256144868624244373728443517583514275262243227323511125176712758766151762753375513615221461615558854147273212767238317354172547211571168481266156587328487343628677474484217573332641678411378324763877855423613576312848644673128164761117148366687858523176355853818816426423783247115163667321521277435167416327785383665267778564416181431733513143865553337354715264224854224225127374374176556741757314382711873766712818522715586177526454552418756116838175534313154761823268755455748423876477451516284522566622382834237545851511821448285766663526815426872118761765782344611828278527816674551417876677227876714425863241563613467743535823661672368581347518826466778342375343248787838656315652336132765311584571138114415832262445227755774817812878128613476231358235478771642715613344648163664684833777517355835335356351286662721777235162524757151776715138327453875548661743327365543223741356645218663734156783153445386432285373856388664151335346465125812538482187665761761164722184571781441221873466251326764163182167772883582514838837324772777654448517534475775448271627513348471311733867456687575324665668514212384372286733577778226373811837236652766221245828782216286386118465228811525123668778488785252765147818157335312251266752344237733333715648238155178425325438213413483124516318476487528238156866263272312538477724273785761453741735855778783265651845572384677752323511276468635685311231564446238555361826786135636646413823633358773735221731153684841237252584248582611481482422775714681525641555486532277375454611148257727444173383271515231287362885634547622827235884463287135871454715367238827274371516178564678736421731333226245866661317663625157287331218831527782872344623777317186727466426812158784823312687266745372184371573532631821686513864458668686422662582584331181144588123858361534454578113177773217776263668488841887888864443731317182838865468538438185536468216512684352754617326725365523533758835437263311233424127575585762432174767717877231287125662728153266218676574153178472615756468343833587313427473331217684187122122342763774322552342227386668866762845883322266411578164641386173764154452348678714312645465133176283384527475133428684786316674318348787316828737754244472211317338774615153636572156411572373263151486612172338532873817135143325834684467312835228216881254273675715853688552774782456172286535162327583257436472277882727567644866383314244452366136815737562528817245355751687457758388222463834757351843622264145542453656651113547313541364368883245262837517838456616414746446626811684442815547765225561811348138714225162286841462688481484154534123221415711726156583312416761133822563248337684121311147482265257372313385761232233844751876288586327624781864756757283856566285735386373431515857333338153662125212745755763157452781685832711121265446883255612747877277425436511652116433168824613236638247568644412245527268511538258774541262622833154837788542234763386123742612113266825736525118388561522772578883584644186313288153774663831876233266576813838515741223263851344557275543585442683772287451271233122632851282132468245151767787286831135722132737453638662252637431411577457542454423151365118547357123858678435543747862243617538131473322861175468823614142484464218281883162267256236316426458548428525832158432225442253415458112521123875435626727841351852558322488487812168442343347838752651581586157751715186322672356512657467243525615875564717844312563176581423171537782273144265388216853111865138518786786214484822573571677247215645424742347336255478244638418178572652755375112528211563121177843768854388755174684641658636287435336433818576815366138168477232332162168573364471751754752342574452234282426834628311473617732147261278487741263618453471234434727542252135628651562816631241383143335187368312857728582363152363355755658371273862876621626721645387534332846248187768747276257457371314215881786644324718432267663781826213253823812153185378745634776283477636887213178526552632265772236688355743641568884257865214486153655235516234233525162288238531566158316181111432888727747467425781727486284217417856416344156632371288518181486888548331746166274388321778838335245278821334822117118676346865551738737451728121771627158752166251783545326285261812777621837248328348572261484475324755715231738631677462272685825816257747727486425868254823325762586862421858617862786288526654561836678675443241485272688125268253837513143134663356485157362357217154337347622626333845468664275887482823481663165335778415834278688857884156354456612552222231266762266663455767247311272462188633555278225663573873117244458178331858771824263236547857168637662624568362755675488752565538162841466111745161528555477147524727722237372578517238377248111472834753541415156731464358228334536618834664375838673177881883823678332616611314838346713762763636631587748836438821281446333314636583476841541248338871673678258715243514368358742446424382267247637648772663657882538634552833463314772618161736541514666436468386631712465447262878843355512237812557654815382548212417154346634485332388524345856116521814375432122221663266663141487445574223872168146158685616655566234213282815878372322578221446155246232132586424623462381414626311821228167676747254871181468685457445423752443337483283815772426747478435265467816823218456555818644676761476874362558585827518271524762811514832254261422841755466854242267537423536538433464122377488565887718658878787745213412746664861712446132822782878831622454847887732415384541488487466622763533413328528868615215157486368538448436378742718321483837655574435147463157387836546846418537147252668161751351174368116565441733615213358471447571147412122665635253457186612256342778876223476818825774152344667446311188436784772351463366781241562247251738876178723225485228333154768558424732761182687715418314752324865354282716846684335263618541183585615872543822424611847412511526787343267466578115711541366188764388576428777647874815883313358775344653636162756823573824755484685756126684476145414355447853133515314633177452812844548844353373763846352157315215661235251584832836357233134622344856543217658727421334314465551153477354236775586676777325537511447874863447866642128822162582545384481631237867146738526663826523538363373746621481848325514833372318314387528328423822268532536767465782628352281252375348263816328885627653838615513134126117341385865426668341882312478148871676831462118641448636462445111644437162343826866586311115366146541153257416711228826136261545386387511121717721472172414557777473844143181868526482543185741374645746725778632176312317752546672223715443123732532657218854682511771485684673786632143145271431425225352435475128831832158158262441646476125286758448511523516321172731488527364714465274282783512645454323218586681317784864374258384732723547217345181257556878525567755118531825182216663336747314745326365467643754226428184532666217545757273467747578255574642338773455843286661185812236666561455457842331554668236148623168125351122814861186128381338632311442544334787486255784586431657612823855112757533768335668631267356647857111733711438186536643455126817467522487212217537288214676343286627734615533155572563132336343824753884414468834271241344635833178464872328372455461211544134412845184233731836541357422472882156353446626471635722638777666842343677816644374566385243816386472448248871867322156661631356162716687345148572656171144745213488668561665634755263347327818717772448573215287474765514384875744874518788425853411526823417673747388847846438638382683144878764661254148372325225881364433325642457868457686815264287431332765127561526886253761858681723571758616737523748222277743525558545515285627118827615456778134154515772143428367745852631213377685341152183888761135385123841571675786686655318313712121372331117243828574711782643851677777487863361274362312275247213652566864866845477378184327215441587851346142246174641277587248854348443714138343727785352743638261774265545171158418642885268753731814257635417445826125618374234824411871222555224433664658772274674477551323515154421453341555531677511242282364716522753568637783213283411346675336277215177554572881812832311714238141527341487544644784124765274775744344344115265215674756845121562682226286611387453784288787521658867547824141783742367716365381874718211472467617532423245374461521412141353784654415671824427461227183185865117457685673185581522426375553128752321555831471517326812263534276316152541365876464135757262571877674485537283436531772588734538356383555135147687363531278287273423747127328647272511375264873382642253672526141261885412716716871763231852553648437868226587252834344848865288748616388855441214614215757347827448265636847858138215687472748684377712285857532148667176256736851612587784543756374182374136428586645531685136422437325637136185437846172242544783275755328184333684462356422556875426628274677654251472683425211328671215634215571325552883171772645452832148266885551416421457237434384585423713837838246373663575114251767115115588173467741617878165148528288645548556331457243758324873782552173188337434825381288386346488353633262175263663488477228437851383526784817344371388761623225215567226313217333322285336345763175466114174814745832432755817216751231645786866231344236686274531558381771464776877387836325767481428183116284558474254542137536245245422142286682723867146856371555617877667847785278583846641786153822774275554732756752435462277438214687244534461253182318523836523882774713241835232163872371543832278256557341832634683786551721847531876676736511166813657341111533627155634455127625842443221778257553783238411778448651663351333154484773334127127654626153743655265224553561333288267838874241637846852827852836451351318421158523218387753553384488271128632643661516442314344748467146525741616634447348668642647158426882632482716481364847178554483287351267424764752252636682746165858143452847381273316545426281456837274367713776727442682117144336225552888847526421356156837367178582451845463175776183776271844551786867112111557357313626371746883348151357173875375214848131681124186787583741875516681664748721888568424458457677344112152831138653551683615473864272356246226272116173444853256331465241463242857366611266158773825281214238874721477215576424463688371688587638777364427231267586434211138888446868472884817737171552564221164461465554652582315451367358456768515132214853153615688234136423341854731283218335414473586735265336321418435327565863887372484187785436175577131687543441281365145355658227536652176482117744424551125114553888156466674455466838641727331575557815268372788457122211538654361222345838228634532428177113218372473566584227271428826684114633746714538142468267261535113263126714226287844857474287685172474731843632135287133442877455681643737157866382255416612227684737217671144661855286524716572824512366162415571286755385553722232135743581247254516115657541733636276146221542183663835655388668173486165738185858842423153588254411777457126323264373385621336773836363274813888387623785874232222828243381578527141435584117836125848865813551462272431442834383784447847261813282434245435554441875666453421548647733345787313487532236548588561144347524124331673766232782614425718637636738714782571368231577736668438123561646465582472215675342852528575521857414227417643263438381245767851362481286162175388324145632174172732541324422857548821248147426368131752264156827578583584815548242234251263521367234243544764758643154747188286676287227215656622534874674363611176718635752331471447873821847656483153327141245255611117763548857221448128744335516674551572463855676578258558275548865621536881137452167638517738725854814453465222387657325167615217317741774453252687135543111381187562646758135315175385315382311124855331341461645765482621726588581284784816662245652721568328848125414754587418544476413441185684214686626523474528738248758128438464243484418737722483377348788416876736873833315211445241735435124764162135152563324784846581768243311273375583531626212521286777225733762482324442753162781276854444537637565561753621886614866372732614127372133315852528666414354485554882184182656415373681725352467766643247873524728174135357414387652546144463541215628325165252874747458552422583252143556742811172833458286426738844865628778577437638358611852822325476434152582835831887688751678283835116856156658418745771544433433611486668331847737876837142184452481737367157817765135848145241356131433845783541753314874418215764524577154178751242241676367422861827781364741822145711586847181688545332626777553138775148515574244667716274111814558753714463553125566271651717733328676671645516754478224365745277625454474845337643654651832521357581817468587347511646746157684258821426343746214347837314148152743482275221746342141532115127258114323482572316171241811262887467856715831222735511516334571886473661833625764125156475811168474622471742887317718224321824532168716852741341188562118267222437417751814638534152262748667761376751721883413828182373755288386663342381642633643537578215184551452687732515538552416376886148684521363531153575425224761242127261316525581558616375438553635247265787427248126425158661143227141226138453432163548216266578853672442376336533554464757466168136847246575215552665742658132842316131355872487361745677272133264533268426563388451677413365688112435166384631642368726153488381211664314463184281278552766456463216217241521541635377134761176184775216367382135258133466174751838458172872754175675583281543346357763622566531218654664488638355717176233584664218665715364361526335545861386423351536761264826628871147147476722432715512182333322875481718476381147588414316585484188678384621484324762852321835885564263531671762324126248217786421536756581367151567873763228836178435274217623441234272181653332861248566115348138426623658682455561484715346316857676623278434177787367517288584128742766628784663266823418464543236373812586621637386247741365575223273318162211531322116783341438623151134724573615763142346186138811874455473748476687788218568431237531674558564288648566171833643153737354716385256773487171422434714548536826247876885611522355713733755414737626863244285137375554815226581827375586626836421863133611351128527174716115446181483354456225766242623318413723827851166385763287826853764142114766864361544738322613858131837374647744885344776114311861653467543124273464858358456124286413833845328356423344376688614321674164256288531431535384851368486481876262732444416132184721731246212488668718821221488577626431722131583244183725735381142772531634351634714253336836541775647717218763821135464127772521181566347335326386738342176887517531365764853372835825781571116431434616113137381488648614661113255283713273872627683321656657631858246152428377223244211445828862575857168584366671267723111667833278855722855573351247227885344353247486272618632426237174227644635244728586251417627286225151271351783422244754383278716117186728768771882143172458818616583764627385355255561465153684443378657546178314521254461638138454186422781726238845342822534136516357436514884755141842151161732123763271361322736527323136266177132321414446338142778788276771374225766376526272338815783247376655847243882528413111558864617164634257547665526524538275555138163574435853571838382211433135648856416153112652686464227277457324161436614471648853464283635436731574211627358854287573543686441264582321255117434852216573274811828757861231643138325671865325424868433415266548161414481883282657316527735451163163218365285137757278138374347324333838555627464387781435828321741644655337775761621768821823664748722114852145614652641482334718356454518474151583323163766313245551817853837677876348435666156218868732234668164687642865277868452415234351263213144832425372724635245371154475478778682788661234425823638163322366883172527387436878742455684587246422363162522311255187354778514825148126347144251635167416453754125834525138512264777288842283355554113223133221365282676782736188456474677161716172341581668275187635711673463767812127685368847367858587831764661533363556521144811558317182535674872814565441711555253668822445841611164364325341556481477273544564346461882485547876585421464772875533328457667536375433475524323545564478253815314444482121548513756282677144634678235146152877854348516827471855534134341415317312353644258241484864418228616446647661685676326411821437167378113566545173772228771421336252622648381568523785761522512823152326152125643823266224145244221452624813266535712281685276687611563633826675736145172518835762785755257575265736144361754486275762454328582245751843135135458143885887744127664365337717854835871578831313261363753613115564668777577527512335512532518136218257616434154274622561622685872517435675771868346281338265633881334763346441145462452468837887126464315626721134278176646542341187175557246148433142625866751766334781272885488781632875552314887444263327867524573432674722712326683625568827842385254612758172356688816565366556178115381855682437437745877684162878268862442381233874273148455313381776137736846814427323234632652315674436227567871718782834286834263625183756524365242115585844467388585541262687878276615756153788645388176253651335813257754733774361367551782535782227813476431557272617754627216475272586788525431311656224812348734643488451854672354662132836778354383285881225352425584776235766755775372488185784353417222385862255451256266423727765346573776867523318132364622267613137413688527817511714762144525584334661627178735576523484846466515863682466156674342372743178445118865772474142143366142126566266121587413717172165676548215827381816456714372478124667358727613311142383421535246571166557128825186336268882463786884226125627826626383778636815362473165584373651451418367635862276273318717171722752758382785163752772638216775161223648835588844688532448237711582553452178533867521743623163272434446614564431378123355658566476727477512854672581885221677483145751371565511466425847123528883148246788121153385885564536473686372557256732267637872331648875363238522315477312711541612558786116637454863464611464232357343121674421577434552518628755375656621238757516653823471332561182431444426746272431365418552337261371383844652581537737351154867515645645162732851731335141435275425578274336188267262465264658781457443476285668552685213647534361272438624887513772868231653276762862543618438767664374355261756624765246678636283237321443587368643236565215725784386447687221752244582722368725854655484713857148288136763412116232642628172555442344632132348522476355228165525621271854854725131355444442118641438132426557232753117422588528252734843687267851357671538452444226621588213868812748588411315637318134842348716651516127248412718718864764325871611127712343228768623188532688638486266167156138667843865632361871664177473753726521867217835638486451216282533252327688453682536873611325446722851486312267482741117746471133824538238153857742718378887587546868883565437222168187843418754522566421854745552426872232174235843685457732454285841233141428114143277137833858524587587316874385328773675667588624241632131455157145861544868582176148848655326632877818815852228483184156258827676266133335427357344418272648516831514536267562412727436211237827847416771347155286131456538122575825664685211688468122745744583285427457174644651657433877414678722334112266237864714162477716485638718883323225553161727668125554432132333241766141732667266432541714813736811325387131524323276357327516357475872482253545851375627264861678846252366382574573241567152188684168263612456814888816427387223371266244358116452428661555174323111421725423648742725442745744242758842271514188346751682273684478448657668275775536386274421455411463716482568773528287388445675478361876233712158645445378524753486281763611583554787386828312341525588861638154541147738438261328878443583585628438268273655484448881848365787447322845372426832886172815552185487387776635487586852223447514754351238468818434631722253674738354144882558582154645527752232726832176342267131412754245138227511425216183486513648638312833481488616466323661812462462354381415143771178843813758856258375883587733511412463654326532521718135578731557485626747411633611383716341113747876552418242168115145641457482276523658264472157558684745275161622556561665472883733326412815674745263886411381543842382258626267741641352477148183883124886361215348161778358356645526172428486581185248774711431673351588218757834257132563275341565332227611264578148316274727433135826684711234718415234362225488641185463153211251378716875282723422137111332414142127783112774183213164716827333232571587463772758165113764353246112657514457684267474732826342627883611652277315258683475226347133184768687434516535471858353126433776415224372812246828744756555414154336461621512713677268785433447832275814565745271684543773273136851112564648334384627582521771235243168444134433785322473226211482785348448772737858164843643478637232762341583375883356332365215687734665474718165811688433613868628785131272277645612324652827571436686614588354572421572644567217736514553257574422468331653574336544168482828352457187724267257523836562664656772377138243838472672845277644372226681562534573327527635565664553227845288526527338718453628261467853448366527132813515474857151843786673413815262171234325132726112736744134227125747241441638815778238513624513274657718738338874417467746856862434365225755723354616557823326456844132524185172558375664885326812872213378786118586763233355112816176112581857727564876828131871355856773765356174538821581555371543322265611417437876636758856117141724384112551328188332226587187161161161323454133866255524324877854662781782885252533182588677448725664641831423266542461438763624376442541248463786844144522788837633483217122387687753224861831784713181512612246833841116211256334214361217373643644445233727147265257367763717162423585746357241355258646126881218468644146756553267748446786816428484468622467682265176726474735632774426553188222425617316355528716845562837728657385223427871837327775674426157576185117815557471838183512216162447148715832766521136177365647878474331833776538348556841575334368317167345657358272575631234322822724228752374312158687671178761117536163811387488138783562524235145723678728238232677112754343524685164612582112341727864885347624876124864142335114761866267816852653126531624782848612325275772144425167786343446116815423861661163646236527767438725336524356164314186348772532264686425522225352421222681528746323562273161253415223458122616887351147142267477585812518471175461245645868666133683524557233648451635877722225482413834416642384454652284475582638682138464314616677854883352182151833841476427752344413618528682684655354162426347655136657273328474125283314646212772454842374288267773774827535424366656555661586132418417322563586238884127773256367817618753728112157161515826553844475131312278174557228662183484883485232121884116835762572826165372582451128236821464632478753151366413174187486443573386863274362862778355785415451658243466718666755441136347881555461474132154448152724257813658363827186363714475527538181453858827436128181115657172671633587571828682317175511815774513762681453878218513164764418456741175272168151512875167567123787712478556522248447511327238275522666372181825736386388263686328553371286376725452851867714542556755564858247758814687248518732277784851771263233318224642371517374461115782622627681661768531134561248787566747516241386855855478214143511341662153782286453851877342368851186713147353115182775576411486453743644271246646432658186113348673544168671425734188655835236754728382756767156126148342835572158548582275551358534264324473645366726511235258672785887442363565247714826288247124211124857714438275237854847348466438884462811577112567857683345155844152247286674731326253153657228324416373651113235526823755347375486782156136356467266222653451655844246448744552175753637848115318724467128264177524584487155685634167541156462383443757254733455538344141366583517483375654661328824325152467628234253785862568522828231337165888211441134881858622334334242411326462432472244163283336621451548872185341225632512832561325135824281431523172843713135157256525845555316372573453735117781242713337565284417321664861346332528422367754752684722777518343161112215681776112244333754674681682578627712163384486468447874654577551381214114453811722318672645581571367768772747728651275455822646433366352435374818837231787662322358641851454845515837877612544646522314328714122524418851211645166284635375657826134528545678875652682328785343825374845273166388538351326546518716266774677174117843642853623581776554571385455751771876344361157613862566163355888187478825871357611454731252352337166624213844462477531523448677255886164165268373146757613377118557835418826742725552383327634646246746718158346513412638268534854615446853546363214173161871873143646818251586577673858617465676612313885814662136482333166334184782756347462371121823831531111286862553481235337876865838688364867733233722442718416165634567635564784745176236244421174216676283378363546861641182755746212781775727643438111265827512828664453142865228685368831672541577624824762358375522515671421437211367345547266687548614622735355347778183726446812548821764485686462471438141746582458245272426234838168574537874281122316247826421177813365761741827657378767476544815388473264226653276724568888188678284226518371268747865762761485422784551248365756644881146176334474536652247438181451551738467576136387523852537674388443351724587733642813266131466362316158474256237427612111214812648445853175467216647455543584754368435431864774226852215432416814556718413742363835723126264555872257784278863833574576258522768854431727472775688746238151337283333422768114374235547524654233236238325183427411663285236646121644543712721532315524146467166646167328557321541768248576141322138837454282323188571217863682712454311326227284722742387257445581687476117574865218145562366535651118616335622713413155263772117227785427141737775147361518771357746475256811474855672728666483773572763454117261735623551855741267824336434821881238544246737715313415748387857176682725415352443788144631436814564743158241485642355628437125472522434458565288832261113524238852711243168558258165146478587474354145348764486381862578137843135438631577624321167285614568467572221348727326823613863486883757658473335753422682155184651616562416411643854231882457584654866773234214211378867274113165433227542532617645648234535548658642452512373223473186218731486451215123856247283557275737567271881162164758374211885578313626673471356738624744714127827886532736552812833327464876447834356441683753143334771835568133457257724678671873422215638637578155514872555548857765817767633588655751875236288872573131558775351832188311571554662642386372826566743561588511646522652145313661122365324735581348174788478442243341842882541262146532131642863316357156261854767586466432227414735517384851344753288718631172262738528124725252267627652655562422468347478112775554128255778636464464372848136648757634872542255513617552132456432215283144338756633455467513246136253434457111464488132773214767278282344724857816418684874132425415338471743634172127215628457167557286841378474655566714326173815682185131677111634412443217218748544217272771453858618181422855515186474623467634312261328224332737476528753282623416544423546731547886443462588541211653877557278147753785554268388122328732556436873722474812486418346821643443742183887147284515485286857863343113417863788248468855347144444652688456435426128125248821164486663517827458757731342844646756488626518314881741434385355817346377885785842685645735851221152445815454158287437812474286167778438865136825458726634151334112151127236778172164636618338641512571183747656451781221751734452318425451225537374365152181115834845471218423856344448625483176466575352814755571832453618866264838125373457673462674614517384454163351513141374242673631536662647174741114213624472434274717172741721832127376682845868141744188677647551877637878475476432581465818655621283171535238748688445815577758465644484577552582133688826383148571871147761571488455317144124862631631276315154655276657155433383833152358854825211576378687827877373528462431651618113668531138763782685517561611222255117862458715675235643614782526184872733463847436162838178886516654714742242654451221227614132617755241131255687478416144444671265666366153678537147442553882118342144648827437212852727176274624577823612422833115376745138567826727674585778158354585715752524783346683837541335384762157371336356683156426511641787188583283425171456165775456515813562541788314416663222563274465627862622517624472374481724852481854725846378724157166725317457213672843362754236144425816638548474668685777367542878571823834572628575754357112716731533576112863731173117725616356415434185278232746257645263517215747854243156816638188675835426862453844726227547456375845486753565628662478833665111555162443661337815721663146344358535666113713381778716771314641283635115485725561421218235358865726427153314527568358267454457618842614144183721445138762873724617575851155327453652218314645173542233738467878715183638164348613576836571835823172455438534511728278433526117326237461484711458166828247845334627462216346483888687372263413865672517248848245712318523864727386214137888528766517556713885382618172542458115655467126162317168143883185685337575156631532315818857364784137843445774786637284671214654763336537623262532811474215537521844366715672541347145563173544685678138557418241844217175486722156161673284264765343156386545721534362557565622343327124378761581873817622283184323775373736582556543425315661768257645625175811252561281334417438764116661751573631628458551313345655123284847377858552417444438615273268252148542584645255516564652638621735451211641756114731252122874633337858678765143425216418654136426827876828134372512328772354663355221763376474632523411343718744323451387845165227535258416177278485422872477666131623638187724433565633747315124683825622564816751888873774173422471658815356518317283561666187736812788181321312131454277774363131866475273314124725834778713275238863152442558587777735716181313886368123737454233822268547648635122831361726246217422375618563172831167118331821428614274247223326373751773572533284573184775214713784443787127136472742288526854811341381267861325456346784256513347474156753842284725165477247448874871632583713752367473254768423727442612148132757362657734673124568718571273335633857348413775232763481425454837873423364517137865312853585654443451774714664561687551826443584715574631217224851676465171135175611661641258322458782866535241471214247762488215741887352733776554868452367287667437351133187344617651746662117557173153427858381133117444622246852856765637657431417218377482246848323855787547375265181715121411143185365781535642322162541677447447142622361715644741664438244675578721643714865155182232225284618251875855123224781621542127284271237431587511156728738612137513585185154815677455888538448268235784861437685416663535261156665722318843678775253462178782128486587278123662376234388747855552272816577841268557577533834588417564283676751373232175845161112455842218552378513477543148248182346454178314335361724138528235438762276776326513575655274284316874268756255765782466544131462665253614435673853155321774587664346226635283575572271735374652745564286472711455233226652786878232627856217713836318651731217686827721481877276577211871866445717345362256544317778774472272368684386262736263612688613527654331635448223515776512273512346466118618637547783451375385488716416144677432817724827454664644852336684114182741342756223544641761145256523616637518382313476121132353165815374712681872838637412543721311815375452221313736664438471427267766877188286478613725651482275657123733418124184433617624543725626866817828884217465816431328541313814766636243686247887685548341647171424785164678244811454175728333464444126185565156663847438157362413874371746128682646185882484545583827663371256172676345172515754623571478251868636332516633715876382448155722672172843575863167766677571752576785678586758252517365281262181646211761123115866481678653863736424587318571236463447173148328637274122648658166166745246748472216667712474346554337718273132718543133837338681224662571648431442311314716675754732655621368861262217345173335467544113115618726814438813835463387365342822881251664261561214213518638882276268836158165253531582162121835622265866871266221265447651451877215383646721242765461333365333213318371132623888236856851458771672616365546736426673165171158783534252725265773451424833184544887123252645288234343415662785355653665518187828148348523483177241224464144512473177648875843434423751862427636614564438634164265551224453272523866471443425833175216217483355627355366327566772858378785287358155357871433271443366843532337711335781441757568886377511783363363543586648265125341186745768756117134764671852556333826251743254857184538331552774743237823344645212355758512658881224615838868251473137685736525584854224217284748223682244453172444555644253517281155236372256461886236547568477183373577463176266448111827763338333572434433128421331483745175865333233543524156256886732145612212272515756868674161654435815873161882444732466863185148515781714884717257182654654835486145723272357638248315747831476156338526447222232738164756565742561283734325215484452717251415268377332662872287634775267318432436856284858268688174361111521454746525622685255738266733554681641318562417821154146628874412173763731561428135485157622738516781274846645545784461838773743238317317663386773385845583567851472367145844478674348418753517253146757822456184578138615633457423115717621378437312878242457865275433251358883781584565662265678882324118865744861424852737363363161268665356418141443383181823881613545667177883613633137188185153177625473278228252152732747111324745384377756663568757612418212585272275151436654338116127635784168756453462737357837516861216578264866223266588353268836657372718386174462227658646636352646833463777834613577452772426352112328314156234477881277886632538767457734126452327833783465388242174536547851783653833276425816765288813468554471741658366553341525426424866174757781427141471233741243616824466826658434247257517522753242647448111624684226837656817838181511422548515136676153424816773834132875516165414775236374162825388544751134675634353671244116523166113826472555156832743244565737218117415367734236817288345475356843674826751838336656547782334678124125756421411762536876725351752231375623434522732428667384346266264743256314177286734351452674412552447268364751513545387466864788631423841123644155354287552581253215566275145422616733244384826814121645328467587766282327376166175258646383118886575414782517763387828625626663886516583648286485874525244411366137346627686845511658244342178747573824648148268335326312525481225464518411487136325156714421242655715723733245574276464866877623311543786171348454261563322181187242587716812547852677176756862673512478178231683762331825212146386235648363388673715457675878278853433451488134371836482545464126368665362872368167467538743744577411687482588563318738323517652518537174344751157782634651436343265871464421233163835387111635648713851167782167357554352434655243514311171886623247671784825146416737515385833757372467428181682241817537682666262464226773722636433346222155463561187336678758287583862167314632347271718351876785153331167281432745585482275852567466233853655736485184722417622137752247128363872272531447816171555746225242218424376372277772514177766352268262365114772336247553181732545438555223366555361635145674845148811588435241744717477546616312868888847258843371737358531336121171534126112818148571588282881664784816666434448866623612582235324712568823823878247577685577121516624372564568551114844113815552384623541683528528174272172334534663826573514433112226331251663748182326674786716685334356484464431333666146486256456887586511813133858631371686142387244864864844886851157784285484725863835486585387351741356455717182884214764158855145632374535332286627611173138218763666635838145716273851332722718632315887552118334685424516343825216662277188677627355776426665876323532317863734256711118776365683623724311554666314124862665732281542638655727216527121346581475488653637776317565464268827823462137457816516861577684583144351231143531752224372127266147441364847857844766282453336647258276347231634766283117317772354357572362342488218411811775677113567764614713731332432266385215457214362452412545647552351567171861164225435576621243378413761737434742144668137143147847725867427462373758428334614168552214656163382343285235255663627418831246546362656248762114363161534645856383125741476676271244213644731436448128164488716432817842423265475887562812548287158543755638877573138286852747313254216368336672671667863743574561871624323842726543318571845182156777816272158614812568633238812641287425386354455572541551226352862621348142474182855567348174747116617362476756117562186661254522378625564225526341246713777825714673335326665368371821815366847112115516861467385857145377143551751877374427227428774128784116643442275374162511555853613278554518623127434382314711232118162522151153766882782378162278745817778855217414383281187872866233517553774581621838717266358537885452788748877571552167361821788482571232738587318412818687673673516531768438758666836514867816756576323362747672145785758646328646835828218547448887171141643263536185816836467337742713734757712221776136671561844875235361252868543846371317868457546274758656277567384481777681422786373844362185575871165542653542241442565774317486264637851215188741887132232872655234676667863547513323536631566775344127462723363361621858675363514113428582785723541643212787755322533281438571842612183278661353476482412461224372572468842164178338475678681735841747342555654573281738357137387463714638362336643485382782332735125585272822553717117776876758836245624523745185815641125386878681243384378877545718572126412367452357785471884142181752212315711846782111786351465227335232713554711161745442155663362775832874434437223726638215182366548634266377185136481376876724577212574873457867617412116745758371115564518115743374482232427445455773288611871327423216447871582771656636432423832253866452172336162744144356345237484746122822577433834838351861678721282173282144884856578633386348327283113873838434782335652453352761247135488318645574211853258383427227433854887553633635641641587866428772771383556885461182721524253781874614525862424274355173465425418846167355463577824178133644285246421346543817756835545778384578837122373348275848181677574648337181835358344437117272518661518428113618281544425788658323343852858285724745746185566555788754857446134467628828473788344171576882581114566265278136861138243533357838483665781713465275658173818478174142531376281424856834833541447748868667174635287771141384385671644361175555734278374318616341864112776487542165584122657353321426615814758535782354226122353882638738362885461566675346247247467856851758163135651855568448783675342336738713444441186512586522243443685663677222287457373545455666845278546858148551377612754431182328333835546282286627818113772821814817238744831383651657845714555643156817161281256728278431885156368631446532217556475327174278823585686845233577382481387376375581761122515761388217343162465175137736856241246167482464577773855488185716827584318143361647118548255715154821821882377358721474861547724865863638753245786731136657538825177421856877466226326182441338587446512888343121622327237266886437157214745114275174456344138463265586176257643241383126181137841461744566381674311318128777278386842157683721222858827756671666161246522881178772763526754582384118331226371865128142634153778375278817383375777452222586562166655355645874538364252122445658185526782341311814881218843274174512377272873861831121822835381621825633522875575546317486623655426851827166231484124538867342753245746611311146245367252745887812483751851121442867781834223811755637783455285483737581873848575254811813233738677437285455224311756454744723352212522743422842685131571858254162231174132336255656314166153555645614627816683827525138344656222548876777126318731131164418787548417276684382765678653768747318328114468867222676352387278666517217322217688454255175568536256144566354173635622225743486123474812336312545713832576725234138488528821174352625531222481514554273234747841267422141278831152165148281174662563774717468234346822831885162785764221666571672373135782157846421847822646414318528758854447786477375538748368387743715721481145744453846564558844872543273354714811211564576547646856371276333724412567833557827324818186421667715832472616215634734611248775663852761816326856845115186164281573768451158425628336415213538347584236318251733322162278218111758878671512642664447466874584546535118228151274317241415754815537644626228317344257884541587156886125414484835421816457127431285817157457827528211525474837856513825737328132128771338738284542818152771454236112712441361432572556412543555832172326422164288124454515436631838767268362452353485813426288843435242745182224268637631328224253644538237821114133786738326448474817777676586856336676574875823428717276832276826274428816418411377265454643182726864735462178767582716237247828613145388264252576756241864762488464618286617435117723478432632548615634852784162841257617532655223482547784882153734615155381473428641188255351214631842442275284158638644246333316452665471151263145665681883321132855518365173353426685651681363555175127576562421275422251284121537786524241178267766872682113632517861354458372658116274151334252147133148644518426782813185127227172152685146655342242412611412816673813524841145855115863874731418751677133117381462155158433541173751321386186744816127136151138421118738515875346845428132215213224756427865416751488812283313682144472368585262817865755683658733872215134621517162327576557112481217371622438843264833347257363171777536468163356456681266663177133545253256263815271864332385215258745657464435511616136765443855538712528527178715128613126368438166337756534215713451652848858465285561383428681182156857424361576213733771616425682144582887653338322656737445611775844131565568416368813326874132225615663871421754722153412722784361886852684475467643181847127222321673723822564318364358236128227875233125837367855457367141132776865177261164565711514275757683356855378142415176114388764341675132665231177542828347835436461674716171785558717421318513241377457236813437168526547567871877331713481714272743414221625661563241561647623786713285864211224247384125857334572881254534356672277686752672611766577612283567355675161815265727146527687621442671777547622881764533862331472518384248621726584616813733736867586177546385141122427762652427274543116716367376224151233164872313611171367265784381171386642572518524622237474871587583837773634652183713327715732356658114464441241537438316558372143823151514685315258746412181811263575633762113387238765645632458476126864171416788733116631843471148745753851318253558382873871682543234281271612157556521718535676166472181761143564823683325852527235442185215222511876717153775678771688726488251814552367343871538587276875777465521623254128262682216462648455514646632131126783621456537243412843215275246536784816336141157212237626731558218351173683488376188837226833833557336282547136613313184754156162514721132844375623588674156624574152735136224453612366777411767841734434145571527745428336874437511641124348181865274763562822443514226651556221447725778631774182424145767471532161257127762867176251644253762178111478855243622347167484367545442251242726778128486332335181311536241483777641375178363847577682323122186741575171576737383252158357237722736134187442371563467161778356211713378721145663118465421152778765763655726183354817221225481344821852411216533638447436663766234821731857361231742654837865254616488442267858643768267155376617146657742347213288173545643471275522415586124348826867433446452814711161773773744237177822356524115768743787172282868736863282388745421416275412514144787626823767128256574174212465755684455713211286452856143351532112213443464544885657363267327485322536561132172354241466868777816238783562641462773886353217684117554726141784548838535525351752314352136763336226748861465517434761141426321818341244851261822164248777525373316887453471247845438124542166164463268573283157312261321187712214231645164441866754773583141251264847512623321156212557852844851152528377625682812736528463738832673376145571772554372238117162736734535654782554843733443218188372782167457613764726152142157675432338161587575854628424685224463515578387146347666328647865313668874713674824342161515817517562228587535524127885846243813436647364686345357226722113418353874761848631363785447314225246141487288728856333743364785861672486313784671128363386642748513342133378756455152377612855413714614582443778171774655517754685725272885343827885437547321785337523622313385785184758357313516358511582587163263315242837378675512221161743221442632524328276416538333126338441213352753677138477472678128858576823168815417853751688682554528361364834462734128275215157575462285357352545524547738132758862282323728178332352215615746444621458742325845177367437673426448584145346542255858782636668173818123217852673367724684426825375746264551427422784338462164657813338655764312487882537742763634853535172112322261338714577511616156531417648526518285521842617424643484324275486823242245126725858214336624834626641732338622217185285836328458628463516535356763382845344881737775712125651844348234327413486331411523154745248227521152486686337486368454144566177184881328158565868714775382816462557551353865453411584224864672834758452647381382341337735761654116642576372127218342171367311471152268467376716617576311111148642738556342182328276764774858581671632136282134547375638182641624453626185365635254774753836565816348847242374886865321561833224755626311435582345476211263475566715412242661585111427414628746224464685533548748541356578538751867433652825766387134743455312415825771143385625434874236637535126362445364833176262645387712321656552784887362675826425786685366173753357675548141743187657381658145341215331341175875726326378874177264686487453657718537736784713225655161576412288712682342422341873156214745631522376262323244812827584848218721825342471462852721261634221283785488344356418371186136258367254753374478688634684116728652244528524123882552182267546473583624573671671843718535175723648111138314447247278112218777753621534162476366242642868824786667722284143635121282175846376628487677277122684368577138334685342128534143362318323736337687822281718823216146645125417243834721487478766142512168611485677736472326754567424532582612746335841262824867671281857777562852452264336521457267338124476363278383785427553866486857413745224651846257863866362867475755477444217723666663356551367551254815335716744417418265263624638236738116777838366353536485735435267765224863516282245852214654371127636683651345267323434518814625245775741462157776271217267245421117657482567122681427285625367864416342568862217848668787124477834225462135746582534124783842384726361238624441284663752215445526711524482516672158411522732473734473538788157331766588347553835174334363874467122777323737227782782278274677451334233425834661528717422776283333425636826351422812444388125814213765234561568436637663265432843286478743466415668415738832733713222282118415678581748733572568771656536137685625618358574431374426666371226488538222178172121237585281813528167151258737116638554774532858463347431814475127541734277143876321224322351732385465751221275863655276173162782444575264382758225611117164351461425143273435147374385618734861678254577581712531638716648212361353371718576618462157633358546267566556211841787663236267273516353175316482546873313138714665487665353518423127128427168545642587774141848857738368242683247186765835631582875828883158443348682885525245448641281465126122142336478118323344168626877685881684448116817883816837533862558537637545716685683353715618864783223176354881236232463641583642661144461836826236344375315648523583116756228838561687335458117466466213834424441421811456457251514875737876376438275827533146163257641248773526111613136437614128781514157461677718722122752831518625737664418275764663738622648262551326424812575848382751184527633721263263487158575627427575327361444366375241715446385611238665466811318731872133727187277122468726547287255165314728517175373752413883614821118186126425128185713182121467348254553364473452638647546561384861123321457761584427878285232687316517651286223535173612882137557324258365656815574425311273148467853571212413126537665474757412283557248355337671224768214554331356236133665181728852831155584381513376341426217681844858265385355353673484122587642114781328412116172177281325771867116144652853336284121622786551351631116168357577148272166423155178781253177443323812667418411878534241515156345645418228756525474568621723527142288161656424538185624313654535324837181317722687851481653673374363771766658587353387134118383381664452184841466665535635252581537661578841174312834414681746566444118168233354427555184745283834111524516748852464873136355245326165423763765823366341565256477785134477462823256546511775184863143141876168852213833817426761775158744212714532874775584842625287773384171218387762182452334511354241354364814757654416688726442735767352453717241377827488141884246833175125418534326763344433426711274356816551158633666166427685474718468722477426384111618375728316824563617226846843674217786474265382238841382856822848787213526715637688425571738128568875344124284128657272264636674377778247463744416285462742271315283674422762868657282146234852447415724617582527147248562524755565854171736658553334776647231656848126266732773676655186826548313712527811648177451631477642643638782548621338632614443274147112181712763762735566627885316267363854117184834552823313518376661133244128118534375575433431714577868831847757273611851761511864731624374225644871146728841544626755783875545531614153847667141423162138578748876872243621484213416618237217713457672618655645882328212578165412246827841524671817735654666865278447342851137287667213375132556262585787416285728541434147351866133363721415177687722322727772251554535563746526157386234822746812452688868687114518723372266853766835488125836846525524731173458628838741381654823564826635837516518143248725873236388122315163678384365353412421156127715177326352388871331168242443384783625827246713732815881142262326558757333128883251621734617731455116736787674611772421871731445825317147873823657411585344877541776677232534581341856451558171167336726136476427111723544143228158381184788211527356522135346248744741881861538462783882285576151522617355125138717264851518872643561416525277635543547665534785623731487863345856826681813458532514513156386553845671672123645713358335822674668787862741265455677361533786831721314444552166232837182847636727728821366543733533432376651437371762876286268238447346162122518553411631124184818748416367435441752521538887358888511237676272866276345285681286746721387176871587877467887623484245745643186626212154524852362643336457453285566648181583781554556712254568276751438244573515552847764286715557581225661672316187841861621863433441664642538347613785746531873884127457312242612552745265361338632147865658886753644831454576126887385867426713164456268684183453253655167744752864351286486647154886563327781553145765462642257643811387744468444127224455562113168615541857512878417543266863741726467133484352787522538783276725262835345361156827767324232571113386582685461728313784227873873378584663866147845225636181188373743375678344738327751236336832823852575468648272834646441781883277135543267282154525861648717133785455353267353515158231711611888183437322826363448122188238725785115446634327362774154867545283313723273364287172556521172367587545534761846643585837533758575131671636422753113352624866575175721453281875253278351546265441577533518517284428324165752883151571842762377686387681345232117753743188834654478258243433633227468768452887833827718723172311726758615712215583148121885785774251231467584621624573342822268282264812437811867186482351147663851457381257751656166268373625872173728584376423235522416764462241522572676337221763628866364587526431385828446224153158673718261568388752783122586782437427382857877564611627746586481237637788444887837886477216543333113552553148743318643453724747225466383557518588164466424885313826546618438178882118341786837386822343282751656836551316166483254347254436262732474214876323517632214224737661725312351688858727535626285663622712116676577226878226816261283371152735154562236658428235845234748878254517722284245134528788773447363484245162273345774454348378175322615878713237475821322741757187235484374564112581383577223737527156152177585454553417331268632583868777286647253261684671321146433362687167753766732861658353883881666468325267757112776618568835512325315432874755533861734326844175465865164218638525367616182465828263745253726675363733243441647224288774223482187377618623344235642321613148758356784623154276612831661872733438714776252566216117145738177481862356138873564872355715461818165867361728263237358811246314211466251848853775572537553871367174416111853336454514438424527825423238834224866884417126234833245457426538872341786368872145468872621464838254718536482386538286155167437811471414623553812771273688588388334145476737674863651836555445145456661341768336388382854265761122677478553455775671545863128727853411153364543111752328331818364572353578114872654752672443366431225571242218365321555718683813134648458661364415252737464765174525451184122462674534462717126237641448827134718858352423371581164175664536676378215413682452525683265678354772388538868222373443738857868347244184181618814255285682147157762742221887677164278728831345178364156256521484428252145168374261673858676433841855636214748233856353722232423267747568518132477211258172784127662475345825754632346322586514467275675877558873624155213541176782861537371345214621817222225565758423817112521187748252141683848876874655877873436323124783174643331783451725157758747226282553555342544582117541281873367423778861722271446817627712647551584282231857163428272863733645414521433485787231758822715236376787437776863742527475363443171758268117311352523822554488667348833814444466525514438835718211813264514621168636165528766686644166187538243763438557245772226378185747437612824571382578661888588141574125223331161285158737375888824826117411414233415887723818562131637147758863778468827375347141211574451344237245714283336787875633265861351241472817816386154534527212747523667437225814366488751637523335367161588158146673367112831751856734578442125383676583475137231773846877658374353512516771681347387156722421842388528284838561381265557415161386247737281244243861583881516313584477763547838186612612338621878484766287666536866734833715561218253548316635373656156116338346822365313532261433615365615235837735352375287387567252472515115877178376583483225687786144351445253757314518431656146622713857441432253278282324525366145431865815781625631823375862372725512668258831288352556614412651712175662561286222134465412447427683856163788466648676834164876423317175151887532586876888457758686584618458322247533278785531216826353317881724533848837157767451753173573321474435387661546188765141414636461714418875811315273483534653316357485373873661287213223578565362717316561586583113484658276718676417632651171476326457375636652388738814673676425622536756472277752627775154752131253538246432817268154335362462284556147471572858521853571484521833316242866163625726745471848118318671877584753815678736587254154623712531663863117141416222386765252865133886313227824223443636212485668858256244586624158887625454127671265846383664235784555267377112134328628842361541162375768571443842768354257312875863451474225221387731825643517115126725846555245685686837875653864526116457148228358642516773136487667181885773718371211778778488333732726164453841857123687514136421568366777673775243428831341187645647486854217433742784738835416841745232248187148228362832468163726135821736637328255455263246177687378138467286712124546751458888384366721618476377312883118514244531828855481285826725276643226336128572287216665414632353374877376342221117762872444537565631167767676646281387538658413632645287656437146245685361377251385514471628518224483126114838135276621383213282347611827466141655884138121416331262768573353878275575286714437241336841875341857463872338772283282546532753847452726621584374388554877731182534616165675228328371344224723633213476152261263687782863352635843881353276383568117285332251622677463672461384314134323238367145883237435265585665163186171484178478773418828253321635884844448156832337781712614466133526537533813185875623888182684116361281176365551782647546783354687617313118362311272816372576645462213563166254862168384412773421617632637853446313218526414643771243366167177715726447177158187117145328286147535866641553532838711148158423243536711833275145136211713625618563341113127383813273852881151176127675187424464358325215216375643228677186481833864271357673354365288615845117852376162546732265454122216674261164672585348263377548666315632338753823217722136572145745365215772148156518417165775851554742326181663323721626862566288531668335182131422571864172417122254754364266265188246652553862746783236348633248223455671674725214236757471784673138566384633853462714542322486758672411554815757188424453387844727535376647828738741743168853815467863633585575235311277141487541146827336885117685774384114757827328148748146573121226626168522453155115518764246857588862524468463833484176551243863438687284737137466472217828363576253842172454288814284575518837241442318545662538827375533586111121827733116821717516766172678451248113318181647288472171835767583418311866617437162346835223838776776561732641457348643251524217742288378241355771711133784872765182581122217383164747283382435631856667748674542833413442244624468132526151512374675825641767875485617818651884452521254717613822478741726462865733728816463755668644623338226616157658312674256722341244253838335256687832124715686622147186136212872634833373642174254554363574772522662868311217584846148487442381436632322317726822582482835732775215334231823661521768538713886266367451448776818543415183157665168724865514851425633842216871277138483158145276328671781255361673383585568744473111756842168114443418822586511777854527672383616614213458618654556664513318668116426657536263384157568518433141642175814282436512325746486356437686744368178688827563817544343712486521527486155877868788274161876334345782113562154833527624478128444683581826638183121578687685541815865827357337218854533353823571143345631433323815368362621547622142273235223214717441263233115816724114286524664165283226576633125573563382354437124432651433482656873763585647511621885885845616451417637217735486576742183238872822455243626233677837237447112261415678827241265857747342143365465634385176688385638454438642748418537716146132515221252175866576436813277871612228845221316855364652178736516685388766564336453825183863371618345787545177421678377342678641345734355823462145131864638661414556683255257862565527158586533168435652733638573615516436686183645367131453117347514327856563416131513228226852427815382824834544654676515861118568285383475716247366683288886423143538574752142878258437135766766181615177283477483116725168645122278476263166773771138635565777565411787782248433546168623862638845132467572232555262781276326821228365184314421543478584886577261283767855367127136876343161474163118885232831783188688555611116177676786645685681238274422588887632121372811461453142274313888633414237438533548513437727724446387727326271211722752514142586832664213781526658545682676836535663778137786132173228176761488133877841721188864285261444153136324628757524421715822136443445147225667121422563162834664628281667314723734672654436582858845523423882845421273335172776447816227263467565571523177232563168651447481826565584588177385388265861675776281758775388278427482585324862271823667216132168578344866321127221144754264337855555818342311287812157561862353868266261117186757153475272174362854561377276537884813536435438524657445231573378761683182244164248151373337356311345245461547828424542442374612635826558228172534645588787254174575788621385554627274723215613137467341345517868754833838451768566117613353156612612881816671217877347361546714171746886532243116732365378631115288745567483481244366762535542121662288637174187182347282343521347536411864144843646565486355471311511367762233187421531362476566234351687512571328173175823548858451581347216815711774363586288181248841757147614378716633452131222716858661181587465748151724612773267781711531444175576638288444331766856625436785851634321822422418652438632327724554872571772587561311344265123474431684643763328446531854156181544271641186485846658425781286327442526383133584251787357166368771117436636645237714648413746485585337166717832772243754245584118618123754623482675667643287317838546788321666445177742762362135675134636454285363156381524486531144566713387425636436248575737848155443362274643453667285778231116346371558533538712637812482513716532657517561122342737877218145565632157512624427617463343754112674456316535874411327522567168213355852315551117281558425788466462864164328186765582438624552388252534553262845464316775312237113835387671562227218583223843314284788236383462352821388688181126456471165223324516345812861577334667345766688218411187875544446411385742577115725784678714224861881275114722868518164555847134282278486438332383256628874447854652687412834731242771744277634616532343583675386272235621274342814117157386833241431552661762828138712342681872624646872557411321861711666655424655443568816617652342114466685651254566267817443574655788537188125163786277622635117554416375356431478164532385563328636332823365311876488334541778413746887385523521736628774838768751416315454463156785463535478164722412637162476652218168366371357565737214342664855537465781533358838658758133528762524264723157117843438437751387255643624836486241283743575525837552821128637853678128177215714551323122844441414376341661217353452623473836534667853135726557564633542842354437324384735557414444717168782324143273533777227538625272167288361575517775264636555273876753485524132416183253427186181376582243326563248554716663833167636522854266281115243565768262812353424412786864287455638525416538842152842638658551734755112352222337227142123645675731136238452651172883664685234626426618625776552417774811424755253734785848614845688771738272786176433834584185331318887523652166375647117274417585254113348243877528126514852427834112435156321632684355347255815825725827528687534628821746384855437636458884654732734467117264674244878465527581741373164576554635133636257824687336683752573646245465781653233632482473232285466184368115334257184212222336574743731742131256823348222321165518483544456268422422433565337748785721755547471333463485828414454816688243157771134448532578674142321812774553362365335251128281387177735242475378818224283718717523185521444562538152561427488221226345456524433347552214118186718241752414454777318231287216847453214415426753353262857668438742757358566823217282186721433124255157515814374764861323452451746112868156454887451273484436461172834836572647553572721168663777641234558434271417356858836371115777741773257717614385778573544623213351666434784274768473316675613817662164451547682586437263731782554457861882451366621413446222376438275844146243514522766277373685671361375151311453615381788164332328453628321162118587374371321522224556478453358388723327348317388442171686638667358342173678567213377157377251542366171358362243172746342626677514373114517723126862355427253821118121461727186778114356743242323721424215824263238665148828121183144552623711623656226728786816726838167148627644365124584354583382868778442326338582127558678578472338861653182142724365384327756885548625531785147461616138865331485457621686361767548227212615354858621486184231675513871221643735666463873356122238487515341221753461755746245334274612712531515522614758561664257325465637345816743385722887318712355877423571864854446332628661585151857766768355455685564511556662334212787488635262434744511234466556716555225418512886143133476733561885224662372277587862875655573563774827656564331883147624338356512183435188238824378156241176337414426636525423712724188263413721832385846255515743753741676147132856122734854585872825581354734821637477563688256445612737821378112825673613634138585745234732637526254235154567184635244537461888615785887444858873517536461538186665765676747636157726251264273826511638413373657485717834328361827651567585426866547316437465534811133743885658818716251164276373173426373847427185766533857285281537366537348724152724766255772532325644447185482341423148483213415568871758118383832812747737245488187138146635135786667537123552531144818378852131714324225446368438781435371281767861341552277727767666264874137881685451545386641217784388368738717141184681834645432531134117584485162286258524734846658228674171686413278247531585267751324737454711278783523672765651342381243631647525646512455887823152245215248167532858212681582464557765478146486682368418225467484366875878235862754675384716645678444538527815147575724784528754418867788676747566717883112687217681241264425847528324335411882661471264275761538227526164253385111724348576215284843628612127285167167834322531685834885756255758253622753813863152522154348531223455631677144356218162466135113147677746556653468173278788368674212683328854812765184743675518681556845711817145355638513231258324568251311175317777344356343831487111212778111787687281584477587115175263163728354231248687124524623245228252683766782726288551623513272117843231515357167888652128136814357646485881784353337116618356488834661761711213285115663365625564881174152642852228455778427564134742224344221338874138132758862423241545636436322732714881454686676647321654152214875441385632188438267881855245341484271758535268753558555738864111238762482164141815827461357435214757513628274371568315117527617173514442461465582178686245816381642756881513132846566372748267317154411462444344882686446154542456457212815436533768173755811113458845235475685647545837477288212115278483133516357526335252633438127864777737431882632213446386387742381661473278148238241771175866865838547533533426147285714466658348164736776238513337528525881881784846325184655644563424571561326611848428572752317516664477275756557566285366214635467416824466737541361467774354456377566713183727624667146247281877345523587846617731643823442581482558527413648583354215556416255377738335616335556847281842323511381734154676843314133774815736823185162516382272582538126318562837244881686514431583215883525366181256332543186113483578412138684425714168135413612761376441171127665237782342573725553367862844717381261851227151622518115366344244736883612576245465445663414775864224582618481517222474372435888127463514211267651515144744418311244561672415342387758844844855665183726854257384241681285551624378362624248645125185772333161465117241252722124581767567765573248163755646845861147511354517433216272642113318361726822378238518224858255255183765527452441351333338822536112188641173833828128142548688818278618727766265667573436165133141522558816378856771181413615516235172857386287533312142113621141548614231725347537718115167763776457536525625578158136588443682483726565716461163675312343677787771513174387384558768681138474363878857473773345882467237642275543448854238231321233853437553267277663656636665378645154516783212134116465243776717873131676163776857512786761527166175224487776548118357532671447652334464322575443477837762816647877135464337543446811686874628274877221528463325115145434463171477856817525544142625828863331374761437358811874153645348633461544284186546532146477527542775585622721474714815313744688534154625784418878175674857233176147271756766662346714811673657368176737115448643381677426672168644826784145515585668461615822546845274358525165388215176564775141265661327532122643846261618313836263381741122256247764814412712188424555557443154512582113848157656172684248255665732682686667234442672286728375538665544761671714162857541135685323743831665755828712633342577611154154682863154635558783611477251552681776788338772436317453868881138774258273631764211123425865144633147136151714734833242737818462673556838518883176166346717654588825317265224488615137778541111868211573282212268778236177775542458476453673486842824533317452664323838354261864656275463725183272472877381857431617825716413372536371176263672623415555883882611345353131814265273647834783163787388668338713121452342381286533168585488178387113884124748563746783113527224884174443427462425755235273865464737848382615826188573756253356448283188758326623341533117444174661641533134715141268261162235283133172375362872565272255138525527733722354212165553445148562224663845146527421875838583251377415716876618452218678338355858781166665315217125853883584188668663115615873383578744784263236661871247486735171635122247527755853644574263647418876616228115366646685768711341215546367745172312177355285826116652874368833664877614711183654188844472835218686534511616558865558157847168815324442563834786323834478373271477722878838327121871137123147646537483376274646414424886386142652381237722386647758257475285431221341738838351743427362487511638424317266713874776571428346176137457842332325664882131661338883714368583321557653556528623368221656366265831483644466114332741875578785384134455717265317258244412476585155517654532167574217554381158335572323746823472858674228771484548641185657613885433711488535585531315546126363725713848563138677328533334162824281482427437856754626646213112122236844476338525657122783211862772145581324872556355545422477353567236225321435767377586645542885375664353415652256615465688545174326653851585411237662311352836857531536555212872658758541713487822141312478666418354718555862653537254283135463317455871564616638254664536764162514282828375827841163426218376536543714388882445442751141177687358388638684835246473487283623525545427853153636432772366648612225634181412775278334267783458277741851661714173676618448482818751542567335634653888844543741686746864487136251158853414478524757224361148525531433433877481833455583263275634443656641456211223662574813132266512363475166777142211366548463123826254631115771117682325858861823545674452141716246337584486248561644251124162772475844878611327357738742847633732385481467586882675638534453446575782517454114247377331343577813282453854355441874767517725626613747731236437122568175764486763126456578783262424822265675157336142656385222851438646221476826586452152374246775421718844235755287463357332626267847488828565681486438833784477878788471484834631378862227455258187643478832815811784625431643633253282172742132178447551322551566776651445644523124778577733556285437272313761173236775525871656818686537412578717276618783838585254864424561216635462857312826548685136251232811117318218882622542752546366426237524532231158374155278815217837381411671456344356865832223613417127283288488531374736158175383285674611241213386741223621828315534614785722617453534463554454617175224313263174317754126232518173585635848854455747815528345223533682286778875435723442373564576556742236724324513456552877346683376556234333441685427216186366361176366461714771172518268512345413711443234368377544532183384434762526885833867372712617516855183342511284456375225446214578258471211326432126585211577835441354874173322224774861878642774878874442773885141136282126814358854368424471671651165347835157614237748757423287215685258731212682133178732141537717471354442371481717442522375152511583547635445482346118836228338178348778134674464252122433335831432121134257512683755187881244384585365371787166123578875168284521726354131513815233737384811338462716766883371763743262653453461546731588526654117332254217444588877886855327677271183224837846532131475824353261836324616262534634462131465478248741277815657277234134141355261615734671256632144544658644337188272316487652865381753386431281124845344126261765542442781721587658773882528265776132777536243117886843182677763532471733427725671865342118583725124613655234652425848751466645326356422842163274375336164444846642471241144353487681417558824388136122225227564312428862833352862343132343216346458342545547631835734168346646352856167222182144334731332686332286854376583486581164767834364473748867583588358852118413735241432124451611683285485345285428238337468518565581181522722358872475238278613853162781862664628866158534562857861648716668712655131681257321616766626152837764366143157555535868542813275553181411613238777164885786171346216253381614242855225685153254574818285832426328581265432457775262787357588876846858163814678865722356672641185386864754388855487621884238385734527864813787117835532644344824132788285242647412655826121217217487863286357857184373854562182816364381882774251378541617413661116232281135252278614731367315312622511318875618371633426347547626736564453678623355387188444372535372383532283577725674235624476862717261888824485831153622638433274157153614254457528577652354647114825746353464726762513648721681148434166463455238356632378348131864346144188218215767686687251353356121421346326454331656447264115416315318611346476227423315426853371872412546852248182372833275221365126346583626622411663577766884213784543475214352177113788558675625176424512687712513753424342521628127477347724145381238633552638232146476325721825145668632765474355511382771542155678348585631735476426361325586732755762115184433642867178235587663827177386716762865638323767682684483838518383148378271234184238348537288785168684323186483525246168855531616446764274788627838516258628756181474488745476375346668516273753581146187546745466713338144381358354631242835143471424377777728425555578738448457485531118451417653272764665662181648746383438315581466838166875851581338538436685687842858346817567387312824558275178845436724641165553652617386751711844333653461123147375114356186287382533878547758676857158658145765627873837428354648241266261654236722174786688263674712178755344623727867613271525883161156251338567162412721548148326478164784727224462624464478821335813382431253386438433832538233724128858175362621234536376311342351846721427278372331635425255142133724832341245167746358464165748132274415288663244868822125561243366467554471415758311278713727724227173172238361267886563724683624272587461864651541256418565814132857652754721841866677312583866752336168546542614138858275272436656138584825155267122188523655887652517665872164865665624651255671517874538335788156375656343876847442555587647543867413744132482333588115578311384214278552416611526574637327354734348262877627471685157881382765758343511362878515122566515748884838778873736687256128641822772344738424367113428182125724663766851558185482734718672251386541832657536773853114662584574847117273686441686666241186225276547435412615745122435512321718564867214345878152312652481541154551867812556562312234478113725231384682717222357262576247235728417873633245347254177713283462373761713123327133287645654616815248821738231843823484861136787317761754666467738775237842276614582546671133766424114788676444581652331331677138188545273777834186388178124723483154662621173478775384265343658864386255233247735452777178145812112424517533325522416264748338218417568478621848276564147546154664426465313117882648628163775743882617734282681721482388344538825155445534681343472672375644286462875137564687113761655386725153316528143472743136788377138382287846511745638517884788657357466327667621848411866442824448353545118847843581673887758381275211721365166182656125786433522733771517772471653324411218231311357125864213764266223214124725746357824832825483614721832314755586157247145644874154146174436556837728233614713367378174287821323762674634212118544518138586278555381763844124677118618537843864184247133512548451187841442688265288163824164671675271871216784328226264272648374717515586865484172687723847573663428647142356724851448613452477635311771122684747882732244873745143636738664755522784877163327528573335258345786863131844245583427347533557617112322162445662124525378632463771622724638786114225353823131877845787351246523585231138187686587763255746515755435144821488615577514188448182235436585544224638246625665341554664123544152285626378515648752737336351333512678374235468455344734431554411638363776384836227511153765823846543827326476185725536571168431175874415711128552221565642575651724252483514261887642276112366325747857717385871752548248343665216863751548617778814435438583781453788421482265226265677334523235564225252874566841478322431453878181373477814385314285148672841545344687557674261678851535788451155532146421517533285357714355432541445183741311688725352684386231365542536553572231456632132651447112251473717631776116221152286863655784141474557728446227835372653833814152563145856347212631863263253665487788152772613465233425637662822666363552677835344285736318587364187118777646862486641841885332417218784538823738461254723413343731418438137461824816344355358518541251751567356623357751385826546332314461766545842484428676331651552154742262656552814477277821835742283118875331477582116714717472262547486635461781182368625521447257167341844133288836867128221543411841114274263263425733545515726522588177414477438877338476138677546212822436265634556262862411831347411343126351663488343454153274584334386132688815838273277563833423552225182682754737656571441773614836183253134277854362423452438872286578573857758763761173832771515324378365627311547356545781751188476321582328444778231778722436465676782632635673283371728832636714453423552121141434273245178658712711655864655465853237445322867148222478851186553833476115712376865214768865381351517375733661466584861834164286747663825282885221624467874851645228467683878111233678537638664872588357523238328246268538562636876718331358776762187627645817583844777468154782616578318568885348684147623268831675273238635331888171743738723857165358338423428473264456135871684381873524563471784738518687463852828242388613443735473332674866765751688221554717123412648743581165745664376464875823156631146123384536865573877231442121775454484847382426411224724632721865422562852113411433465834276778426661865643144783641781317685514837872552535815245735553138545645244356515183376438684854578653366663324581737447314768237161187424623663442386724262271656635167216564427316645162241723545658278883342247513215381177883268184643167253668877476252141164648114477888726722521845617424744752788645537818227313541377453784171115337234756554527553187844427428852435811563674548715388641248111354541367546156644734464278286872813131552766582674636155634388388513354441266332382676316346265783638261876676873251542873366856825748544872546538343247574838237763733227243485381322268528242828267355136473573624737351361163656472685488457671721225227835881515471585532455134656347236336847582547261873273558748338157453267138716564773215656388262614172881832255611522754443436213612756716632363321213516528735283178336186883282867238541234754157582357553868665547413276558654221825471434316752367386522554663335868513133775873468231845178412655625535818566524584655863421645217461846564332447473161317343821464227774874685543745543846815842451815111476131872582755256627528621837545214868124881512773245264833783821116878164183341362875857836325183771354463666488344748333631281435251564541341864458447327416121343411751855842154888486287511631547571645216112467126716334854125443417187455312178436758314476821867733268786565527818781315516383646133668436544332827617235852835514561461735235336184577278368485843651618223725212356672665274765717477417641831653421243662725465813658274246777178714777866463554886572555743622652736381136458825263338528747673553882855687241766166624568316338624828245861644426648213113342874336846514374373157875746746142434735546572618615468621885658413843466774852888233264258725333327531328415311324211523262714636455577238355457767516784131211725464774676322715323172144254216711885324125813282415576683728256252344443618578325844573462174658854115333271728474412755623185652757842236825823363224644623275136722845543135138122256524583112674745166176355257333671141116375436183717433145447773454234868172787247577858164547858873465344123886422224172142887882785478867854315274588413368625812151116467415123243151176628315122178486843422786767772253141328533133723162312575863275256387216526457732532441847332557746663475181534687548643133357638163461841684731284134414416361276274247814874564674684231427423731721362666284352337322453872754515633766555576561317121117381641824817623746284732684614431465266334182846653742112148252365788222276172423617565635551477633544748544356683146678215858633857187658245474488623614885837281518362356461811448778765427816853856183345483117876868112782254541326246556766652854852217123247335621466653485286688778257568863544352634534254883836552178873237333583655177434487248447182422725765186312255264874575185283464857257857671386362481888227532587411255631726258367437845455624165757371133645672172576288652734315124727757473382415782657487538281347638567853664853274584354248864416358225173244153223345638372722454143657832447425456835454686513624875648548352586776487867378621615345211715525311558413846878656777364112668761422163167725346535138231316343882215117451642411574587584875875252431375346154212562881448513185147162263577818153837133581561165437625163551463365237456514366721352728762827752334248566683335157848486575466561642368837332587388337683816333183381288833778577177817884586583773517562445364777648135554878857774632743175264884514136124167855435268444161231377441258665127627742756838117736577354736185837318551753424314522327486113666217621665114232651552887365612477746724185425547553458356487635276828838237353127131123763214437281758563318267171753736727236136772735252678454218278867652461657582116242786276112688535648421366247838618427785162624855416211822464445174831137255357855276375433446152415425817243135324558158313668571788371654634256517521426444412171665647711335553111222833833242818233821813268145164826228518456371337188413877281542731451486681374283681147463574437164271545574651538634246252565173581211767214854887817324572188315186268651745215583414558665562632324371322612757167221784311271322426158388162844466422848537626865367266761662265426622644213568283878336451667276854687725162657143873377352641383763321724688581565784335568368622543622257777741481738356853581645174861745638465425427773637718177475255678333861472228288158653561683332761757763652337233615123247442337318743274117777254456747672414741482668266855641786471715123284844162178442866155451241452767822338114657752427663644488343135835815867728122484438835568548637288472261238164476461623366241628567451261164472737761784524376214638513511828218642431878114782231672143615382756868133633118282351261131328412185867832848737134746751578288185653543644276186437174747637534718251474713218728686667211134124136732873318752481234554627128287567656854515445167538651433128466842614654368562332256817868876572427781886844744838336131128734573138138771755855854257365816131434343872137228664251554721224236536525687216244326442484516835257816275663377476121321662132556127733418714242821628483555677188873738471511453124851272421231777767675642557766852871233723811374721151216173648544323365552356447443534218433884383328563655385246258568178465564785457324731411125663341387721851185884176627681364658384743837844214662141825542574273354544417435862172641365188567581822338773866732165187266721541248472335223713518274512881125148644743455415364257628814873583227217524131454478327775143358661187746825652265784272476772315114555727471356533151885538431837254345788775235431226346348343238268317386465878687382533537516421151756161668385134854323763265267321633668618778345363628843251652382655382838833156125578862544473615741134686152451825473644172828414277543728152711157377676545572518824315776627621158884347763821522818553825777851448841673165683581425717353747458443172455634681442178575465211715273888462517647526464817284372861856464331165723268336643276133785531521636778182671155331641135348812831614273127223626477241762663535283677671582531877613576628133328356134744686652437673124174313217811182457723835461662766867257825621723581454611747532328632283354435352417775428842161511688624154388486844472166341862111568132551266761878283774871656413326548325813166676634678454255584744766434316145324788732856266556631844345148256333373444752474747747843414138438654867144353634224828828388732764746642243166275653215282675538618474354632351572783463527666347252374644845684878876717542266553476852143522876865342766178425353124828247145618733671185183235413882566366517457485182381521621176383586344155511661816624483162712731152237374452527746346654441278855268564126734378124346346465166644317666421727426556282815112743761646375836478182427667275158416461715365618378536364652254264467545642278217756453778611787844755336224144776238577127284658134334846316455274643421131485864414554355611775355216361821224334686172547336828445243834523842111615538438777682372265383586764511151663342177765188378617141482467541545341286682636256152252865686741171688138867681452547332861224328154867561146273116416654675764761364682715478485636382431127282827357445654383863288143711221318212655872326363271254132251777468514783681337653335447523567125843883858182533463814733741348531838785612534576844883377318838838768141263227577576812318383255212713728747265138726857454635825285147178516168148411246376764444654533273756437367488786134565841154467423136854461425728863433248242171453655163772338236236557477353488362848874176168488742256182381334125671178685384368282786885675784852126882582128584471168317874875247746186854474838682532176171655515875277333482352275444757534145614873422631536651865842762273423867768118763145283784161754183158734414441452871358333427584786436776871136221826855756363427132675164773162264735176714653455384882865378586535143471542857284543341565525245425464585777263527523676845138642277236472258527878324825187152846636235151561864556124531142336165448821667635787288622633532388531437262185274814735665837237772481316576155452515743346238813122758417764325533627148332828382263273551658863241645547435152264552526378736151772315658852248251472716668142726827288752135557686534766571653424711785885221845315373147761172263248414825571211715765543552434455355714462178238415136477232336858238546441434361563877767881656236281715845842666151733533354177684445686282457631674114131234668714168755887421557637232722274762865721415227844617287868754242435876624212616774353151635225858226745866213487774776726188675263527112478684573536228827753178137517343272315557345714681657327167568757584741645232481433835638255182551832656748176835227447353533457247323617676865584437221541575817618666514782456785374118254451281737477534448185683211675237224816322772275282421411475655247534866641767154286346842226746361723187242644131631185724254857831135416677652381481547851255824627365814735564618434881812214662558625158323651614253754171424368717424822877855332374777581823584482753842444144778227673634681136863347288383447356781264281361167857776362376728457261681387451756381824822281115538358185411542272841432547518752757454514655543344473347765627513328478712165111417618276358266517145183251456516347825656264882482657144681346147548165483447646873377724447228863846173834768223557838164753418781165365643354568348843884235775873525251142415118681581121667853774486182818521246315813841732118227524425444464785383456135386275717245481486873472326625312136513887543373877885183452683553873248163487456242326333218235438454321336262456355157448858552253585387822253484886711482327233548178561353262367124121322641183661374365283135536815117873657835558646363246786254765323557146262243736721416723358777113514321282542233843632854512372338662477543335631683885345243263138774514846476256112513737645125588856411724438141817341222488548242843525137818611142731868583424614563136587525221314467827838366428783227678368468562361764451168125837463418322868163245377855833586341242773135612686222627867336631655838713461638836764352142624455115675538653222887181385136432613267736352641516115181613326274111741573427437137644615616182488244887246576358781327488264373257254634188685674376222685188275586841146176512548356236316321546311122628176241136416246478211881113845448234213544238544464154231571632615682646228761776888122141771112351422214752446235744115683761585314525856761482662238615552577718257321166766841631687228446327741548545323674356423744658446737572545145173225727287334747581356217472856867455832755748658451671425371844458848283366218715778527126721355826535758248176364383264442244685157531224623426455432443654181382122133215247758188841375352177358568841262656333724842257853757711755448511883875436612114188736868223148215518143761642146631484815226737454367344425588862867867251831345643264612731723661463387847662316231357441228553218414868733664853878483412127844854142632557858824753761842443887113742887353352637624677522812618873243675511744522651527418365232525573241825144318852462885528347566576668864454127254154373276643367841514611727582666682168641136587557178666583655134237767842687451857482251173653643531172822666628268441255272452472481272424686671234816435366125321345257333552671732474862371778861285877344468243357622541217252262465256354365216148214881416673431825352645765536126273228747246214441271767176785213432425731222625343486765244762265373426544376567527264375468646861323534162778546133267722655848167832314273113466488236152233236888636211272525751743418332642346826617625437121181112645516347145665444686155161732182343874745313524581356468522332523526151358371636662165837256117336637724642474627535724518817316661528543772824373465875543874647355221255457455482157312618631256645462863677827283521656671363616243331664156845884668314142312685524352664424674147148548346466135256833332688711671282235872242456256548328168137754846584428225836252281787652243546253415336587223182266823686647433741838377166475281842371652415455418447822238445446535362417618251252624713447657377524662433457241418458481736662223648468772382412813851533865174418855548635845636787752644357658322472325868113472234188181833834168361527484433325782317112364447364183733875315574475372477532355464727612818427553682818663565217356723173835457426517241266354271458736786112741512183111435721454113472742633651728786581777881361265456326672631376145621568352478624422146827645326877812546655624735811467218441185556611443872825572325736646443187635466734835251143523886242517141384846116327383314511271142716513613164662561482858867147875516463771717131771165531414888448256431222575663776148141238641656865184353788633343327186162634181686187837812712214614161741246875642244881671861487585246367532286821471225327137544768462825112713527338437316162144842248621566828422152573255158524344373348187518412656542224276377412613378148686438284816471677125356344225274836725813342478886582726844523613354555886682571316287458811867364431175444513311125561132234662274747383723741522165277856431547683427768724765648256553312333752114847835868244121473378473754835826478143856368113342355232684883537282584887884887631213142437456276843442287647216784288118555333514844721344635415582263125618638688267253632848288422481851484458876757681542562268478462221323326563418264336214142655744533535378288266565276357283443816758145161647362556273862873833325331433287672736522415463656188377882817463556227435868834511234184784237584772274777362412422572867157813881778324157714123862744541817313171673158545826321164588388176482258435845247845842167156655861246756852543133387211866618782876352854777686123513586836723572314168227883482642172364112868156441152527856137385128286478165778482643118427317576212746753882546772272638536175365546373378443781815667382116533754543577488367457682532347567753814253562487211661473313661525513885347157854822638856834842283157243155741318162134436782876873717723154244152825454684857256584832847328484676782367324241555558711242271325864767618773718131661382571217465522347823368762718535754472287421552843231727164637363416586134658841231323685267852813653865442133126245124617214384336533743543854538617774652657671431364637621244722365732866642671627252521645674712372267413541628281123273452483537342282225884778882771222432371175812174461427464357846278874153341528825564472516412186652156487446818255564771222486652734263674335257421588577424151818333381781825636773441277658351343677467535767523567252627628641678283515283612837443572153684758767135314342414745764846225387274654252345256636871174665782578642223457663313581554682876215775867364636527573315745543851137684571554873431657383553547557387425277365525351256112123875412223441364423154638416315363511633176763825376656356557185423285461143141637161686423887181315552336537361267213445481811812463655878416538818331461556326438485153114323314317821843641883818225272521517115586287233287558566775116667547154444264283144561345713275631213647764753654276262458644324884368642136818176611513577875145532113312668566744815728584787312227218132588341387576215582888721517112366867614523841451358287827427222528355717752414415135573335744613517785531477788467676178234682522487837662527435764532452581343578142715827737811864768884138154158785455847615717745742321832484874231671252687543637436578735284373352133268624854316135515281588571684672641232568832288328434353133581331841266236146174574178483618312183176458263767833331376217614574888345252215857876622388766334484324816723377676444374227556153182242784172546751374366728521776812746724178362351483775483577247873555738655852617152282425388784721354838582323175315426116652741745835571778657285783161416271831424678456473817454637767252845154477838367258661113756362153355663536451842418575761257138362787227521224455814567571473476535257561572126375432785481718432114456425384183285872522362374255517856575642831234856281828284354255764135288862364673741351685216451551148532438714147271251446678734715367526287268786768513877737865413231826344328563534828367765413683452255274742214252755342478428732856243686714786637353217156681752275425863327587484362744421466672814186878717653751685243246575762741548481833364144537548317441635675384183381782824475473227371435155235264321223367765287583345817232745833622847782117766217465884638388556722251157742537835431814481123654541546187246681248815125223485816531838641126112867268482716857626471122121626573881846676178547345346257386811316167715171131735131742347518316821657865845675887838733571121473147712465644234874566572568616577468366746838384641115238255824731354118687336752537756663335764411861418348822744338183133511657624465181858633235732735253735567114611365235227487542254446183561817834227635545386173584761724424266685128648848557567621353611237553265681651675217566683863853418622887563632722664434337571881762537454724562418813142586555388257113155212328321284141666185827778181317211247236337465132333267647445335846735267862245864857783543666362612234682866161335115838313618461588658526388823281453154321757476441117317886225737233354411227568331151826537772511583833624147166143734453812728767237186312675441321633733512158533448235484635766511748768672544487177687651284555316344823144558857783258345461886382644557168635164486877524371115871343618638846175744216331882576671857572543857482512712811268483254873714688418666546614471121443712773353864536351687115714517888244145447417183762348788341715376482886716573535456315316886282531786164482645357888271745424674453768215146663437146631248366713155673856621534434667487384172147382577846865176553818318773674123342633881588821267717755631232233465635452851144422856435225145348873238181754213388518721182636382574281235342247267626436665182221445438621844657281441716376518518712764735851741572553886224744735618757321164723835732553836171256238651663725725487558743247863346778523814485832446437428313514773434332431588713553162682827466471478628378851373378445324127732478112118812688834535753235667883783884551631381323884377525414651621763815132163838427868165212233726264434286488117484117627412488266211531345346685783531171821816224876816212767157372485277234556522212628752654252886425885417768855723368512827774532682888662537726244164343721241418257132345733547522125884127125547421652814355624873273342651824636668858172558627832766842131218445382881123171574667437387814855554444133432155538832437385382823455537747143362265174814418386638273536312638743151217555275715781744574317857751661283611357816877132532836523576385563254125424284346211857875212757642253651638261782844313833265641433767742755541785825275462616755132815656327453542731474244588187856437726633854746542863178577471683545314268343664756734671284368284334727648625167411575565688528152281864436848441485622377246647526514156427352177548743627887721477548282674487358718242547176734548264888848731477362533111673787322767462323151887227427253183531674422323327477888616278488447175587338557165552178466316822388818347861646288113848646315144615636233357674254545476864474854187716233557163224442738234686685242822777354236677456141465745838222365112535858312113628381571412385513325526527325686376142157847517531688411248414113413578463788643422833624554662668186511786727765128881316468646216453512754637218285285541461751213424318768588215685846151115773134135613632248475676178158387567141527746637376755551133168485286858611444338621836546511458647431866821124843833383143155528423418717865151831755236282651362278256524776578535145435667384212286825813652661845484632151477366627325586454525635214876182427151572127421863516633737586745522246157711553774123183757233651874376643688744225222466376252315431114141621112321466752473364724882116175782171233468626841133582688866152836115353885655755674511414676578251773277323858436557555831355341185864712257167533148318841535634232378285863472356877772885235624543457622821655341787844156378438372211352134667644215561388818834144141354726342337782582272232546122223261855784643718624546712161782278864151574835567887635442587615353464438878143732455815124552176124263222135474326414175242811628633145727126425753332842733564413714372784415558872635715757718258574758866232175848181663551145163225277417575266745723635646221233411327672855531272222482224283241837615587128113735144852842825815745182611211584657751811788161621781156634771726587358135812663452534886332421768352232482555562421766211122285637811156822548377165753564744824715571337272621234375333776875323447531128787567816286474737166417232283778343288428136271673131713638677527434446425744463762753722476287647148671362417442583474328114565878825132267613733246376746861455157527381257512772216752544351852474221346253812238525641762837773764715271542635683866841714372535115231345578627122473458583446826246341765447811224131176322878481185773473771852362168667433163242475382678335237431167521737728657376124157241671746585644235682476287253644317473718343426882641426213266517423384374636886757818581414262663518684123777254822561271614836754424433471366757812531667627463515835861886378731151726245852818582678758183143617686162563424471615551265238481835533456688183161675467872582684855256586483378414811415635454556147486714232677248886228762887567327187412376766636144622711336267844455343636458663232328112424875431562534241216236134835246215745418638153134456158218628121381837782666641282463184133634668633518346172616541556628578126688616647825743517658877746728174652373674868275527216181732446413682136223717468771285248141781736188327658555241258741422417281751487331246366453834146274858645452881865618344344427113288231366252228778671725353233548123255767668543272368414474785716688843618254548633641787764325152645175117222782135164557181362446812222184861278656227124621852322441258346831886277146527361153864858541743888227183311744517414865431272262281858856147488215383513631744558522216566323224711761183734858527318156485473421514673633178637567141446581843681124154352382125535331886651586585681113138812461154721473232782337817867858162746238846356533335285688575448224543416732442672861248284387271541552331245171267887514831427458214314177675462837474747576482312418726542655857483744382816187145826237114665225188535376186551227412322475157264223752137681612253351285782275384241141778541452657774331227614234835873534576423756855867314787371848288326825211556251572136532625212748217635442133772552315434652415132884445327586428646251283333515682716487353615635312131461722157344874311446518216321823814761511158156781457168756528726854664668345832144821463224262754222354888278353615457366453318627724314838754215346841585825584446547646538618721515551723178433784227877718476516628767166576532154513383717455737474347815367531171316257611351687773543676335334122717257271218177813871261783312543867473564248838824641686627838815451617622672341622451288558418544622453287123141873817524464435587681678451365421321263276325875742466323455656654477365815588741676128831253585133436116336216245824424281156551511261863271862233361651465137674617754678745837252837134333162442274653534786372371144164471222116572812857585428584662165784515331281176743882826873146374714414473272533487578844854653134242648137247283127612114548448533684666252566867635813326362381361387173846534154651652345164267387662625445422453527753866454741624753164616428761613115721715434571486723265147776174625663873381336675863544132646164342245444574748413657631881264658468811137518251473253817524176533231314622336441433623455521373363483435565818628847383425511536835748163221282155871888258368853214721131118774148728631637621618151728786442546534187732358126888672236862736545622582387816666531323171858263735682871467141751782868525542585661838666276323317562223677533266868883517888237144866311651147631336644443133414787277751854335164685185167415884673254221311726243453865766856181816484425563757183175523328574675821468575867646112331528246624766578534137757238458411885654117465828487244166562478278442728353751361254227574687325761822544786833514636445521423186654515185345616175781828156136368421185321747132461538114723228257234463226886234854755723234727381444663162642736278361651242842676718126856281575422276867737115453132323118726334528826685563767261818321257582523514741487442228818816578448567528664771321432338871338848565324886845864617716752544435882224261864232588876337473573142351647314726633336821757623127321144775164416636478425883812313367526121166731248142317584722727661143645485218171711568627881437482463673311818151773455322352611527876776744616375627848144272848734273553584333562453134222826855364388655157814126178411568354558847563144542828327254871763134828666661122873811683751514716718762185267163851176863674222812475585273685681655122186277468374841155884551383715672388243741331813512624443631767117588533223323371223554886574141515438452444477486323763231345313525536662665225823281123714414363525378426144236525534525126223472116858638727441688126338552585666868717471374341823522274184531334872635653757441718636133153285341428155137748528548857854248474582556656111838554515112133176185317871387452126434835744122727158523618124325638288363745684415834355366688137516544585655163365681784233733573314324878253188625474786665632152553557234448377575855383852137748715575631267125377714765865428485524277762578714552537282783418651145523376824471611225365316268843115488787242862844577767451345352457117728112266372158554385587631211177575762211372837134573823144653567254472171361263587588854335243658263331867642561426473772413468843346118461633465171157364367362263463121171473681713316734532427654663346355685742768518837761585638551382737872765383275167777321863558413386244373567141828326174318256476767382255668667316814815521345523122247612347765432822144277411618533168353236378532746251611442381213248228853715658362818143778585876415356644818883154635823478634372776242637684166131572436488486544365135554151433482641846783256371788855427252261881185444658177634635837751667366445876422436861343886448215818358544252462257842312645553714345316323538721522442365537718811441248113872613746174383771442472115113866187378653753131764118875246441718524246432611457525513274437275734357557634748312428447756334814815752232676664425356632435573163557567616163471113775585743141362225656338377154438657283413211488161364382764216268188315325365767864411377667185651552183321764661777773521171353467676115653686465328341458181346261537211441283375228852431562747812427532316615787451613325461336175844762483178585355273511534812482865774158177218684744464765671534123528287625355488546883252825483725742268782331272541535624853235465283738858646717561213257247452176131586467727662747234558112268843688315684266322784256733821611566567737722443388622165336854177615275523667684635837236828137867172344676226551658543834884681185838354166432114127826166212212362816364674474842311127337515443518833161425416637715217635276116686863624832512448838483676386553831357452527723676283252741264563288131358732255474461641467474711378414874151365722443585433571517224628184627865621876471714852348711666748515764862276767328453411277768388575138856548137141472468713642365568452772675548644552533763588243754832766332355422535568737458785284161761563211844282144756486623186768525716816123223368678856325568437678175747266251138581373531543427835576851266275744748782723755654862367374668228313248182444575133868384452343341225732645684266533158415216511233673546163585825872838118766458783643151361527226865776428164623557858582624135738376525587636172447113335748172878347755637313543853376837733681321216348645561863287586831218237317548273741533753367862578272818761477432475466654257426334231174188532741873628632448738748724883755586384526288814876457416486748185384742531221275586487243484154283574414573316556266647156453578414554873878635828274158352311326648746111764166852356383221328673534745873175377474688617611565877138586583727536815533413126571174843368342181657772137111364431782737762567611148257637652715755815377212637743325777321486642788134744626457756335663678343283282573842356737422885253254274183327578724184886775867854362337368784435511161625818784787687434178528671476224675322417237877155675523666855483622867642211863246668882486812874136767878633556323773828325518663455321774218537516568116534581543134778281648566724325178415255137525282863878667788384811476586424644481747422281787244843618812442772466114221858371761782658783141854551147184532275322286143324111432233188453246478584818886367821281281142156612322717314112518328318823225585484565162573648367368261153668727332435653684226144866632888546171884466485727272335817765476284348483142281824747317881148637623658134854523117718354455387731713765336378248685282637233676663851248844468138654777267546214265351722365868411875763226814837523365217685335121567876244583152448558484624833178544254274556751623233362651135571663287313875623115132864147666388224145811478788168853434351581228571742851785418112414811856637583246342482618515656226868543158374824728158116378161427378374868367356832512336318442848444832524821524461614884818281744383124526247572352722212787477764266334548477518451377227535423581388451357625631455343186344511281735732311538375716776416624613473832732475418656384841468741755145787133231713412563511572356837216176861146357524774518735185813316164175762288546713746855223448246224467276112458633185616822583275227142413544486483828577437655867647875811428758627645578854427872436186687641222846562254665434364148418843824776243335782312418463421414466825235438614411611554485413448281321833451811667474831436477866685654618668483332324134663566846177448122632151763863411324114372286785637411576771272724282325515871144572646181268827136725475834644718841248333884783245771144424584555571278478735821458568561136248666474388877568275688655455761646472571174887525785631863551231735844658228846436558653817586471835167878464276448165333783586286683582215573836881284441451178625732822448748288375488134118641821122335275763761316771387733535543333522215172778457254847886127147461272755541553447738287855456264348125675742145535441815242844338348474134788812223264475378768451318677724725616871138533276123151684246525152441541163472783765732216565641784515523536663658838728136511546686155864682836826457167627448628172677757141488145547471882868847666542113758638751688354457422277518378652271235382787334162856324252873617732327516445528665113424373641228122448153312347744756375525337716142827855676237613147361851341125376762416638466476318155181212318183884564271438225227637424255224223266554316775187837675762358362355861117785815755321856682635421127137464161626815882631568112111778433745863564121871846547425111641874277212674368438188532787767726842557376321333717427617174836336448377526515885647265843343663377265627375434165588174174447445233485288712828244253537168813283438534564466171552424377275284417336774386585351488586412627234557116415232356163538338257866311211427631735238287277714357887664675245277462456275122417273646274484121766523816265316784767443553155618436426744442677251615821883451163612152185851646673845634846843871185864256337865756128284857343322825142461223418127636272613815764167262753261742522288166437674177762127114176837727732271844148483554364462162544177782852133162337434547615865141736578782158857782845776848244883642536413315744845271445166455486626156853447818234337542256413234481783146514134437372474724184513273486714326756252468747824344463678136467711133348781342656788723675388666448668327843217454135414684537242775726317285711274422446881375254312131425186264312456213812124554423434138416744676454414523844386218618311654138441772284278674814532563288612243181278314367727877132422858271278767417831663336141887154862856533378763516481271766642145811554552545553813521613377477174711233146668658827547542451735313132316663635384148813215888288187338663635252663221512787663543162188367584357668671565188154831237624248362117674316865867351141567882826176552687854217611474437886745424745512463584321458567456742453434184887253354381827761524366378755844636852157151534576628326782175218751166472585528276167727572213657725568475846551234175531622576435642588243465575853273344168728344118181236452827835366444122816824888678425676246641174472343642247762771847328183151515411664545132311861783618575612848873147511486288838861728888854448653478238445417485244748384418372288263774384714838361316746762886513752887137231666717177435275833327163746351434764271183311714183566821345354712885854882872447315863887288678748115181377288131286256563541271741858884474473467774212462156737724423861875788673254156833212184482475343533116478554246237333348364787717714123867158737362263288574132713371377781643536324334747327217413231826556616317417783384112542754526842518816646585425575636778837283121512376532834188352816556175887127743462355664586443768564138832322538762487523234227162144137736185848288517582618476577656241746112876447256127832271826641422282371131523275674863535265824613542512438357573166138226775245516434236767626581383822285421146476765253172341445387223755735261426133811732443162783265327812853363538418343556683821228166238265484484328341111478181653373286416713812745813657523288283578378535426666837888642137853317815755416634436872856726323521121356763216355514716247867716714711283474725466523247183763451811526835123261528843417485616387125718172317156826837664814631112688656754266837227185142422223388325681224776315761175286415411343478282346146528624218521752842881875116371638667657626462366523216777425275122784332167782223134778572716167724226424361172482578414341857746267416713862672735646762736366843681446634612752186668547775568518513843418354263416422818422468831882332834147157681846485483882882772142145821686342656256256423217462573764588781136423135437657181217242312877151388312744371675763387477263147767614458873542788724663176451884721765731655811472815871532332761856586567637463664753873222855147457172521457781873831747114624231515766778328323566357265313725576623461183581857253646263222735517421121865132453477764283375883344425228773534848636746142337627661872856825171844635818747561414413265723421225345716486841557165882441787521722383617858125822467322857765756676843448326875782523725313757573844375827563142361347565726375678776445812276878174737376125251235578165853257155215513315486411135882574561873288621647386544616216122248716123154635525275616123482612282561736815437125386855811137353211241437151752176341441221115433114634488272145731741462568768276248657573673326162215132128584227171545773812327285618866523844418568126167786316876568822212623366344842432263427634633541672625348414653436477227382543322578771771843253816488327147371114188167758245112712618114818876275668522183213471321337425883617744452352672686727511351748775568674816765535364735521562455613546647424574767256668436247718634485216261317731586516721656381438826318181543588815554331136178647834841584514412637127721485128423814858411427556368717726127668636137138677414216677438147522544756626684242532381641222168734378557387428542736587278355335654328725556121863678417811583668167648262571536582388188218173655486173337351626746732418323678385513886388452113372283721255645316253572534485381578562544727415631888717344872116153884365713343442133824123223785642277335661862771763764153138313577121353121267742237313373771238687421722717658768365358347336356615674532466111543738454253588838414556461141752214246263288272787854387367454564658443652645485376373718521664738341626446686221828285756824484187155466645134282672356625131241623826586786765113285557662452578461786272768376385522475331145153733452634333838581415887618364654618468868768477125524155583137285882458412846758877474641523447537744384255831537143214263463333767763357527676241252244551571726611586458223884177782326162144474544875714863447237328635811844168256724212212824723352842523128845324714534333761616857128372143574125134264121276563341878773126278443738342136774677643387365171572744438237763717372367714468227367712481244435868766553118872425313443236556141127473651627551777188113634117216542577228175751335236275575263585743265141336821541727456161428854876552571873684676477784783645733557372165185161428254343524654618416374584786735752775814376744744243387367127353446637632312653264188886315131442711244172356331617317144244857135221327428243371622472863454854545567178811884163772547858353666881788355112514753524118112347147673577778846423741757757578158587745384375634567624265834445484245475561148166887815564525754348473611664676846537651273755848484761737865666828452568425816546688773565713481216351817167728458433356834851661856843751338844544578343684651453117151641514658123614643168721187881835855137616166117415886812457421876255136481111847137484536475544238518748555618168514864328733236776456822448156817162583433425718115714654358826388455368371851767118474816558858751456382346138811425822544235672724214345628576338581621731467341727818461115618554385445472372851642555362832484838234648736628654561113256113562275258112471456514371616477682511135616552686854172727435852222231452726855557623782314511672562616775171312264221321747566721551336811547732341843186543872847646887158542632786685126415385636425887742822251536637135252734433632413264151668443845167211222284382674676454354328722618432546646475823555852473162813822173717242343358821668633828772155315736151484855138513752485612212442257854315878745786546264354515481252253742382541382677121241675367253543448584381467146121775173717138463488525537138611785383341253665674546781651531516716736718676345765541276311136617877668643134521642731551551881688162833886424475367178632681751463336586734143578877557626468213413763125526834488844673136644184131348516881448142178153623288563357877674385885111115144361386388176545674378555563667764451288657423886172616353585473538614571128874653778115435678518238554363257571567568673827765778415437743367334248223115558187134247533556458564152463527483863177747781415153467621548158415718558335373578785334454368716844518213416752617342477764552226673311551883264157883348762574727748761568853337724145672516585475833676642531123283722673438543245121444317418634863842742765171357413733661381457747583678154671586876718818842383253181683261721274752752413642156136282177236744336472338583755267445643235511611417641316648732443826786454124222885672113586712188465176585517763312273543878787412816635383661166354515464443873741523718172154748816524835774738757835441525661656475864228583244516247268345177625878481326332657168755645853722378328126616543346282456127181284886484232775166485238481366356445171383447624451674531356142383761586512374786864184638111831274218661715855528677157824617723724772828275383352764236617246534512452335465762614237464275515132864187515777827387744838578678745311132215117816677231775444384535638421136526851634623354354723373735884545847161548432536668816855545866251657478328472248715187622874511433771313326116677884662428876571867665557368617186428652625474147711466781631245773528357855161426553748872585741283788555757461285546181351881666146562725668677818528211261337118453645212666523442153275278655512863153236555568665671268734482355552542763431364738425458565357871145787232737267225757475617415471658447331657431673526657555213735448273844767535554336773368343457473447884644851158634832823867522756525555158634666236887385743625346463664516674356653572133184675332555626441476722166838248313715632311644758282414787417815385838768481572262812456884784321573125165671766164778267614746751763835584242855813731362342687664136383477361736271863117864317762286245668652438235286888138766853636211162375758475634634326673855645758644381714374427716564466616853824441132235667227763878251855724837117231784275628817581573734237687216253631763761228344287677127535336651446321418131556174753526715462175727455338171645732153334867173534146575143717186353382445751173247512176134543368264318552668851467276548811887412812467631383188726237237727654725668187774173132444334722577136368768354638142746871852276655452315837311764155611413532763417617882677735836567515835673123551146725685357612138687225284548341182266753321433458352561181822821716272411258565156224278371148171717625437445556145433327222136774625855651873676788282863776552873234711464783177184781265576642634122138217225172461254628454576685867784313877184716778771718564632227617566335724587246724447811628551326641817337212551884455584448247728478317737644741785414425148877785323262116147133334376887542822551446644417221314647117528621843884364365254874835733282733524563865363858844116341545425666221224427613364674118738372725237815846674171427525188183845467725376625183714355862442735368747345127233473518613826186633275878547161378436366254534264273676412268873523248542884122246472272166864275416121276688518714883288843832547851575321231727224418453453567323176325388176885843858851314116175616313721261761163637455855221487777238356831114836477831222362646461155645423725261833821247117724426152614843235225276312677526668371211253445654243868687246774467585317222684117161141422215523162558361216677271374886724335548464167278727236322371168262783338435321852672861618773388537767717818182835182268723152872455212863538627886271667163836168586743715334234513575348343621575231561711721341285486471647766385113758747732557783432462848545743627362222476353283411312733374623151863276567587715532722628246453216124742687177317248321881615526285641568144764688281871126378885338356751314664348347818633383823617383134566582272858522532788751641651163482311252174233172866637763446782528585411783781154334271135464632657787547733588637146725453425351211755514533486366557264423124142723831443788474118536574845835114416542537233514253472876248656266477336626867181317283466147634168462244847323343733176472321327365556511848341633841645476215847153471572115178448264478218651142478284315818513286635245778783681671726377335354877218583448625453131738223744813311855881727124334426188341737657423828616468588517316812841773325526253511526274872662453512534153447385126632688735667187842323256153555874254116341221112788721526842146528888334445116853734856627422741718732843254446736282528432222383845236442583765452323335244444337512323568725167361213474884324774816821768875768855714884182561636828666562748682342717716132684453128765526186287438821688464871877722274758278672541268212666654414627763757626876563274442176387665418485354518265584185863213835266275317637555221381747264137342631737611435624448584121588824144636584213744885515873682581664717524545888175583151121245772868471735181685254531338311658522458518718774368478417128172534668481337823325854562368863135418415218687188262327115118317558565746723273775814414512412364786177626145128371621737848763312525457258427345424257153515883152666277621525753348611661855332167443324863545431111644738428232666867161372835583666111613332555243545643843262488265846776133316367783784161121547288873542473265155131417228861376844258413481662272883771464168653165676686651578465423555823587565231788235853786844358822776534744881773365325525812554342112276543521525226365866273526487523866235884465713415121343153412487677876484864822123224588546643222825654622718817881848861284513312843864222123868561536226664651744247531417365228242858286258314425344475812431124818885571526555758363551661772768765183724446828515757534673551113673151214416454611468887741427785752737377581122664623114646532616551355721872145226586652372248865667758714675284553377225436881456887448827227568766387837383415185841833311167115641318647178657212362283815366747567542426372668555375633768521477737141435212157683836723432548888783416127231166128666616867756713743545135113622347118485257817288541724422353477358885271846435356137571313621223618227862675871671214742114885252241537452521347358748156115331515564176245868715355861547261827242328643236167361766536414213127728778788563888143412223238517878537214122827582738621531551355867775256845615845816568675726873752146712177533181356324452251512312648446366235261558665877585483367228412735357111677832652861284575485665811777745245462567373481546773468116857273626453856256827515817525212125154615587373672412558211637418672742416815338448315375828766384575386173566471426512213775585641368564882211818661787743462635638686742862161586543337361442674623884287154121445747262323481522521131783814144288175874381352513573363558631158634232651355513831256178148721474763815831287471566845525484533515815468287843155751812241661822528735744344221765463384121123831723354445566513726142124232125164165421867685677348551833242318425124127546122415467422482633344846824665446384781348488368553613812447857374634467174516563443438544118586831176541812635878888741321271544547883884233376265726445533387328718615777122618342683223542144822582667478325341171113333314386523486214646837115773625615242751688475456758526764243461184836813541253734456743324331338378871241336271632376325647766415464184287415145363661732378186383318774232615818865138254753178128557166824564452631326658567535187765263621136866687434386711126864251578588855535437464721833375712458425826566671284575345564744688317418223572561875228666122277165825446782528366787752238147824415536863281627163827737742284382551857246725538882432272112212456548831328547586446235412522634148643761634454754264424373215676321264233345481827828143364538252868857388438576377343541688675548245141884543246132152632666881722875171282125785581641513713841728376186315541181132153448434475414721121665762542627632562678326358167214447568712564421685676378883774824442482524563638257583268516865116216128473716688215232172445642463132678851288271681517417873175488326377864683422448871764143657576715313737266417885578144811437175313285613421811464148246348654855774422453411254348258554286572165276428431243636523574884218375581383215876256817736372618216763888771168381847781175822848335672338333867838417476644538432156871571863435363772116556418371578336381588232568476213448144287122456276115328864654585211526488221537745434131456826583255752473446836131548553844261575732866826375585346362553548584736684383676245761483315538455447777863232856213728246681316757545133425377584545256875613884725174386521876441652321577474825424823332421631653854678533882211262282484163718265333352351432554464571574861457182176218822763271284343316442721878316267143466186577477288467265676413865772587216552361867682358565553142816674148243216645767485127187775223524545422286338774845655581622664774483613813781375526246227182171571817714153757126632418815228347885342756788311878771477815886375571632112117165152758255715411658422588416364575331343833443278127747457245261613747686117123581374776282427458381761242643863156245752518414141187117833835782525652527538641748226121168555713148217121644625624826688555716217284565631718141538718732312638417734167244627467415887185825733225383174245157585152431173255444671857168245682266428187311622688754527548617732434143541317444326448858731311524835781477322422132637512347481441638646145887661833751584481215265186482657434134478244684414636216823677472882818834368416746433725158814764552514527257788412471585546683615756377188578571635684315641522714483813736745424851157372143333433681871324722827888677577876821881854872134333677656425863664421125578683772751633331537481813622268214158345115318427364135486221187264787415582144832142542853138726713328478684774657828275275227465716744474767744642228644823668321652118246637687868541513845837584664677422776544315365228712567144168621768134251643765343278841157825152561573617651875368834536137531456222478824828213285358852771476767873472548431641872747672437614563526362374325328214632874352767288523621658352372342518642728314256287858855173864184657886424725584186882266154433814464213282717276573758562825273628718725586374148182547711884756713485822356427836172838587161352656727818352122721578547112146878361637651852114762773271455858476255187171281244173366123565228411118827184724282188787722433873151818478756373252141483512881885686644276572787118258128865835212535651418687167158627221724812251473534451263637361173232337143287541553245518115721714816627614227341254772453642737888336163575178682176388354443888422285213672347125422346457446385262683126727621833164665518715138284466755676676573626234774186813426717366614338386511858457755757484387654156643414486112444128435854726788533861876576782881443115246733655643716465724678621836412782736487448783845413172644452611488288114878374474378553564645454461141148136145241183828451885112216716776277682357558265232642623818347565382586328845238368237484428262467537321221514431151768876864722631233722862362174136835683771523335327264867166278848478326455777126781886614878571574423737313712152111477546214228332624512558732813156722137531454332358272254324328867772581316636537455637638257722388155286425748554777651343235325836543782465186444871611831263636172357261661372448221374386625883186418566365476487432537756445454165128342581386648857744177631786355881125755436183833142861551853443425656815574547852617763555768776853511265671142322765727364843614565357876581787664853688771612734361725175234587173328163734827111773382461581315314361641617528584878726776563711236857837778415763745288446487427763366122623818251431152481718555578362434431423423237364442367835752663612418322631264568712254416378516456485328142455115277337853871235541138531773873462811466625644785617337366562528365312644214354781324242567626214442615683287274375786558471772723871521718334362818261178756645518552382885837227715773324657227241866255457246176231463887416881684326822633417622734684245514671177668518516478628757278746761847622342863522141836442385148183531654842318111663314528624683645727878665643618546167818135316574133515161812853635285786386521174132514314166836512772426665748813133261666166376565463246382258223238283865584856581872362183114437844311736838275343466376574173874815665427144547581375541818853454637348254227843662882883458715845661642751324351448315656516786834614751743364878511642482742535513154145132586224287414347117637531624327134755242642166774616237218336747283763837741285626141732632112787644114488214736417271818721186431831146564117627442213271771578271344817314776236416624768437442246516117572212543372628347158861632483711187347266328843354352481281472252643561762655657271878117223114768132115856572161164662253434616276454845664766544617721233281527334684861424737217576566556525815345542341621481855378134753153654317233881821673722622766742726214176863132288576425513874722542811315677414138732458343735541712538766624734616513413453616657421114436765342553561825276523332137277735825272237385464222225875518343445153773362728817278375835865711473351674535126814548183255743576773547887511856311876213446481278188586356118711585272226733546156175627124884624732142684625127685836485752333423374424572674421113423518488786735336674858161137248216142182465817643715663356261776152322554655578555283487761727538432277628777431825365648781323365141723716346318583767614785727133772737458858788162532872221681665757661256235728868726615735488864711822315574576455735165374277334886284443766571738833452846761365655216153466541244486681137221486563278285846852812546646138834271514124374138836186427111583112238337665148637816645425271272154884757832465362635243457235442546178843785872142335647162615535211754638337517632363678717331827584867516836766654137618443284824477745547284856138888511726778827668828617762434121141778267636268152188572685684467226181463778755821468634271527435714757235711868175648134255565755312122368163862513212587742386826775877574747688876715656475243537675544684254618486522361542764648853882424485434185282846183123115815846386785212481375854765764464857654834534431555621167455457751386656275235372758836337864458485732148332821612654384742253718443553256348115777863357243531462383617413871457252554167131744844312123116123545666174584664137255334212713757885668225258662274664784872234624256775462334247375655258847411426262417218681525782363766676435713658276125666313431474622464622577283764146436646472743151287456863725776238583382173454134878533472168678314684518744847332752161763512418577117843134754648813686124754718678434446488853521771457744371345858363627614156112746686625426613528481357338611754274523161787611355341741711745834872758834465181682465443477661664851418825435254886241445273848112147181643725225546687875231746611521542534225466615588123763434275816138427654331441127182414588776488282834136247751356454513187716623763365658411233845166462242521516784836577561532237445631578686466868223841713873436118734713546781727723751758762478133123433728752648635667345551133141141332377122171324255367171874178778626437213835121516411418573262131748238538186657468576145453363326816458138762217222885117335333578335234761587876165643472664533552744772537886611844258375448361215683543343661634111817558152263412722723771748321821443847232478221282476257251217352553136845866843781263885566462683866667754528815673677245758128826351245357824453426347523171158374384536378431363656275481285171276345144576671853261478464663657173573847366367552381213631665564438781587824745831652871557722834811168757717112233832157445637788753415386753876865247882252137674534731116464757177736558627273516185115328682258838354886422678147528751486512562267627821684567471865611831754167538482167284143615833836622288558255432851121387551541328217661673786852651451872636755645228244531785637748436681446516787723833822271555567344348616485864827278864126674467512543242445837642248657372338156311382135537158871723511741326826643756875447143174312145174445611153326552353621652722188434111773111635567881663754624564632411377422674564531763834167587748743375453816335118363476245185578817421411118621645653877546262268672628386334165542818451746521577316746146553124364771554212331627368674348626111587243232424283888857157888381425386318121238485451753622622438858556268378828421213545717621374215828724673275312636874425248268432421757143571414267518684612552413444757173231226164614162884141845187575755576841161474343624625885643888443783711515838862118557233177538878838156526228321365155854723672361736457778626711176568527852775738542328781237335653522374152612255447387121851426434252664414635361111413565366121543466427886573683411633761563373386638184742167117741237251255151721331714812778551341635417623764786864832718732562514755523588645131583671334477637721442467442652612636758367611588581433246113838713545448811635345855348145818556527132178658373545178841542216555434388265288244652516566353715847176161246252273312634161312583866663477261878185257622627464662417443238327736117566617545128735561558552481682554385718177857425277183817667481888461167838647822332582458815864412275574527461611536663321873331218367785383123775548472266515586531866565567725161685563221746588352828563124587354821833524831736624236538657251522615533823866384627467114528567714167126488128552865635777412257632234778456463265717143474666218328667218826748476381648663473112147466457648647376111673872353126868265616562365666381678774783458173643816713146665712458535741447673171737732265425252214355381767733875425583744356244261661653543481648258238335145468246777743188758645535555721134854243174888832715835251688383757877376642285342545126786682837435751172812585756838664843286818271765855112354846764364344614528363837186337633176163517637786481673258482332288716724257633138164171885228837875324348727282187583253735435771423426384214471886322365714183182843642757766732251176534681156251472326211753665668188237241732546678185247411844521433854114867543143633142235657317614765257128181363346466683232152115537111818883834631116175277188522428278745744267865544768668586415374865418883476812477342766527715818416115444214113444581318688876516324824842413453422213248714164482744144285411757565551431584544788284678786732385826868675141121681135614354181372835563233242322872428545621645548182175416585481512423574628378755154384734868888747116545263157334631218213213773661174612674523556337354642586863842417263384556341646266126621174872715184255851884277671827825171752337751413212385151123525778865764656656844763444455674867562157273726521854858862511564422683412583722513868866687754266135143752243882354717476867854324424616877843638221837282173214256683471742215136671518364672113433337122333742276236741718178488683114287277186676121116665511248456745651558784453564331458568214768431443133237452745587211188275777888217222633877143521531434113453341757682171451418538273648685685348217163628456478414648375742475363771223165323361714433574778176462573451187172237266585871758285324365834743525348188654618275713718488841712416123645172611777137674335322332844877453623667247125258657872242231645824857372244665316115878218774143235863244226427234473154148428738385316388116835134341444182135834222857458218613726756835235387428672234214642823215758168517125654763241324216284578473841723177434428421547367322121372433637237566277848432261433237471423786351868533475668673686111118457781757317645872728748455266172527613114735423362346858463741612548748882441467553824462613671585475165865128735686231117445262326883571257232367682668411686835525441225615633417344252236578287313182662732678214678467226782688618736621854862818823731121851826761247783876173634864676438131777757347243811371447812255234218654485228567255815654575187228642282778482274472626165544265746125261678887113264842466778151758145114161576714355213757463216171377642388146243658515457435133652585682383566513563175527287551321558455723561477452623582154286227763342264223637788728622237428355376464752724664315864674482187623428475554171112365731741158776176634875454162887447423177166442174171675787877527131335712243411524573632535146746541136817248811155438247758211754534235126876558757673225285277311421832676112887662653261767267317466314815152787664167614231667415235383888648526673253373158866276725162846564218122116327815621357535685148538237318646447665667432611262284717587168778244712224182727887464724336364887335157456335284532871828616185688881613133513666525523254831288645526716237511858162483546632366725116688245716711521862541766518775452145233814632428573536844533635818287455437661624646117456337787316248682567216667168472212851482673543768375813416155843147743622873228646827355137223283877811184176827325728382224231487385862438726555784633824833878424811121683124514674845338334272648341476377615768263753386672845746574268648726748775221585448638844431312854545284622542175525216621742516637346375535311532253524565426188574828133661633818762834233743457558438416445733366235547888745556261116421651186366832671622776558331647714768216855134763841363356837715853878532245277473275262864322716685627818227833851576631752818378427868887352243251581363234267721627563367188475214337257335213272534822331374484877418233411387456518648466473832467157388834741516241144682685487384683383766483214317744618758648124143486645165183837865856426188461771244727133476771875324181547285216357766265524577216216336655743448822635854822783221713447638173145815567858748227285218648553726124231186577558835253726663122423523622866782345866247872754853824245148477223466286645826873264658721737346384611374433222114268727762315682158183215534315722481867167437211271411121521613828623588832458436574385827685556434644643585438754243442816437766812463472582564557517685117785585488713562775242687536147534651866746788647327177732512152233778133418463855451344162834123452364374727273428411576376758754857375434228561277382686442327414318523841767552377227857251687688341212385621525347634518575822742528757176147662512533446647488357318717422355212354568814454885625663214345526647262263265361718445756757418771357541464682648383534178781464251812724374128555825323363866483151282621783455514146138183612514283432272276744224524284424372467617883712152444883462471527624282151818114327374221138177521546718588466558157465248746265831666334231856752355778721146638366185475267523655848772885665363577786118768681381348434666354227656164116576562666276623145434261573873387655877266887718418786444787137888154872332127628567227357266523588653775654423848727553836685114576825256265568412853226785463536278362187244155747261425628867656384158764848481873535784657583872873861352862828877554531358546441737538776548243158417244165328488828786227632116554168545634343814751363613813335733353523827327463286166324647387223172473775682667871623754243822838144438554422328447338728622712575885541883781632232613645532776145566653543373556634117257113727834316626152866531616223681842415442214575663486223745712755615721137155637147351611786633881572242557186587381122167431487445621543853678214376451811148761188644145863741368574362843828578551521724287885821147742111635272311382676563754825465373145531662461584352214683738127338883835162722324184431718722254721613375434322632745773464556737785671334735155848427631782562116345465727174567276518384517677118626254168183562232727377623238281476851555823682574467848238145783558322763643816811782474858435451177265116884685632768864867423177582762462787461524121267875844411577781671474282564387142346443417856822636126373368773874227538181458538831234262146484823736345442311354876418318858141481131335263357356666587551552381363476888872724476626267284371174487657345524523384517474422121438361655876448464835464722181641333368767212658218446724683433123421166783655342286435561511522834846275528744833643718531688578573318531412584438775637466125138166828635772382768418325633316811563143681576663321223472478761824734163732465784575431338322811481486566423168476635768482558667623166368662521781447174816733264267812537756542256151142784771884382545381611733287361115283373478531738486576765383181578813817732514251775432636633681242218152213425463622754527783874781666553782818868224373663136116231586535713487868487761633818588554865545541337347171621612332363451861135255858427288361454381685673682877443442361754861815564248175361624538723717855556728813877114243516277435872444725622761541651871355784353284643771154277741814188375671616732626732748331326486474658488237818543433132661461278542277661552573433785168215824447363131283817356236713671343684221281275276868688348314417434753562358864237186881827837742783156348833155732231278678233123434728678172355477566132125426465814473152374782444724836238545733341353476536646728377162825285586322526376511387333138836523762484223721272217611172862683141876815256361152728576741826271838236657142253112861215883677441134315161876356411581686625435538655333137653814623758527761183525128122774744722857766221328362453454348671662856414635724612553487528457422276584666845366132437387713512631158235825153433633252817858188755674835247251223415266127634571624267488224733231456668588543574652282618258273877552271742166533653531415181375711188668845555587441457663462857627381272417166717524857311253134423247458263824433537365171351763774328212181233483381465516343277511281116126162456113531851248111781582861233478756765567553538368325212232446172368822374516533242658538643322125626722272512525777737468411573741433226167338574827652513431312414433111841757856733853855682743873284845881476135187373523753751246341716515877487873241286468258741586847413827716687713151642533642343753642482737518872515365316486443414653545452126837232667875388531662575788686351763686284623543616735214661375828357867146311337877568533331538434382683384136525448312585354886185355681664136361266486582187686888228383685828546356516772252826838457673845816312858316438371873785331622872528775712525143117156378817216164822168371482712676812518178473771656652682777616866184612341285366632852646514217577857778567211441686561727315133825461837714555585247836737331388482585836178647223123655245772632846211715466387558734418583663823543384832556472132233782765124174471773515311211883833116377376725568588786714763752233736354113256713482138475361554486133288272551858268164611656756465355873248215727385653784261476178263554274435355437773256215568183428734246463672456743261686383541281215827786618473766712237152231857451888568214142482512376256843457544266774858788545654168734178511536372766426367513876856135645465218856684882658627161648824227338331668125386837685638627718548268235717814684453673352682623338328556156235541568812671828243771486112622235888548624475361254354831712885251112671228626347471734871741835113362451128624257317666747441651154868567518872423251412825877551123861436375284265275876563185686153653457673681368766388258635337363218643823816558278761333533321347867366236873857414547586488578876764183772734674685242781715613158268423386622781822112748378572284645635166243844222385223747657128683761282585117283475438314273248486522672757344588733668777758778186352217582627611564528812858457261146766648165738282782843776663663126671376766455531485761416333334118684146788822161314324627122227654268517416313111538182464343724282242658386386356323135151847434544471818618811688513265765628648256254222622742317635373542475382626885133367115847236177283783662157531554135628283517836376544455777811423572282547342635451483176537238253173784684857214341217537357844242227286643253654635287581444464353173624146162445622241275278611878856322627737186211884413841117553352122514471788784382252363127221333571687434323318535757631548343587524466758756428154537657573548812314156612348215367784523873461211683823747435832412833787134752577748221552224162725284564148814658346488571676555241387658326752372182816172344527613145174428257453324183283541812826284633528162311768677618761837354474616363111256172528485154555184531257265276852764678882457133145762644768232327486373275847853515331726436537463167186552453374816555815558153431348812147145436758448812526731754415675271681165611567635467258666784428147224373448778486317844521622533145244475168178666456577556478781115121524322777181748312831518375787521848724633777316565535154418261735614133462817331744136164176251336611747814337473572787215877527357338171221134873157875243684431858437258228516588444834814423118158441353871235241213581183161663526328267787312187157126434487316144122411217126828337631235664844126257845456214616476251484778287863337761146527835647347426142785287665341187482622526465648725114767183768625486555853423165575667534417468824345732771147215777317758556254345535373477715151571423445621722464882816454568634433374726587611716664168536185218533874214665622184582511726346856322732768116716352173252553857646788673243834526734721143334768444172386685647386745448643728631237236462136463216627377256611481763211468222113434868642427453411426454133343656648624453367514556362472723747422141585722371613188324282436377253227488374454651342336561365682674538264561533524456271317543712734441856526544876314181744222362325412761124573711268854133831167217445156561517334278378262847665561672115236865454248163356281447473381411116357663348362651682111111152138452284438153728855252838884614611481818722218655846738688736263213884772167114255838515277715285272546443311635877518133561151368573333351381575445827365141174513585536622671272463366562345616155225844272868623641364417647311537773257124675156644181525355174853835616165636882466228622728371331881366486286181728341488134736723548858675174133636476346428167438485868435517761214545274752262111354316737224842185671123848626448748273661164871224826371857553443137185668766875174662354271282514461544521875471726643667686513511661238874528561815367614454772758537285545457557643223555634776416225476883414347256278418886334826251721762266658473334274574842354146121813278726246635673643838131313464688332153375451484647647777625762685456752883142116572826785467217351685782155336552353832245823358335564776871613737787628812213723361415268848273628287178866847732768156816835867583361857517487545446227767132481736528848475231442233576171281748287152611881132224243847837527214171346845615586811862334783573171762433651318871633866112368346821268135136121783256457551544746528438842341386312843765438878232274647468567284158116545244163347372735642237644314858261343547173355487321172212564287773224622814251882785873641226114123454345661466543711172283418567723357485238841222338425452478762253613882786565355816418327311126454344588743378565276717287216523113132613116851535825732623171842224171157418233622811133186182771875851457461338485265265844737723377823656456466183576771721687185447581236844311238523614341116652266351651642435374341444555726114638362112345444475528145233584534231332253766725444347527877331444547331514883186537141834634475588883618115424633547237666112531226177184283666676116763231383162671156575718247848382575312325473485111367877448364282483524238245416148714658243668827846321881232413453784328373271664463133243883288247676315678655888268154348368853436154583267724418314418413887817614738153584184833833864731532468448124368475548743786366188713744625643377847582467165664354315636817313716623568336461513613376673274422274481181447465745648464472834618128725858613746426134433623754365327761317373882381744763127442631476526815211118784246247158733841558851246347324317623575267522647243757577166566335254767228444835821375288716246732815637338388771525282273466158246765285635571637826182338641631866543772148178561361163834663651172168241744762885887852487624388583276237624561638532737281616326582325253261318862715532267858228317428716437431312451554448151552481342642454271124148243147714641644525631625724287112126764844578637257188542832613511357347766735252156672564615565367788676331823678447212633756183873827241312561262582732617374643581425115868556326558386232555572673853446468711423852331483627475632673188166677631564361512146378524431183661544587522542723441163413123488518635284358187183218111122367775757134558138748225186687522368422835472472845556122482848146184286482531384855237163357737234528358568218351841353658237847418312835753648411413767447313151647742123364814832818621442423474837646631227371467118151282516866546821538427162762773868676443767525674376684872736123151465647211637266815481333841725852286813173566256462485676754825285555528875267764124657881487176288642315538426884828628454223532563414136567253655386338426671414742214562854325752444876621432875283328424543724837183652464662747161672612671173878122248512443351885733181115161863683524758251851238418211777735714232227114758578478416572835523583724372334882736746262352478318586675528824184348125757155186522386548436813137116357654828377416657667824334681326157251178588862687281328678476283818174633236363742478424353647845424874783238421227861353326271737775732245753875467464362171638564757178254223455268315564243761356121843464466583571187228465286568551563578345354364175882277834556511564455171473787146734336648318153565161768224828662682135832534551153146637136558438617862284246713223583455722761337274363474165154128335817674424218345484761363764416884323762882483138425222255515881433366133872845753142867484683483486116361265427723518317464723758238753545686537785786331677621543275481168438817453746775347367553763768378268672156614835363787264117645537586752138583135375783254634787613358258117177625261156438515146442137815414366458265875543146652552342783286512538626237512374188834271468725137811281641435825715288715373876733428471534723388475455853857332363372382463368374525172476716138857754817812848352566664151754726212588188241266183666672724286476613312335118618542216157444682433651553751777332521722665145844376382374422755164756878381454888585473885276481733182127133278747473742858354447623522334623213117372244241551482744564183373374278411775541548781854851368384323828867137773433577841166663284273741523117417666237212567887313374415765326251461251424711616542877535767248783878586673614454228148582116852346765243461573885511468536232133761481417253523168665335828737272787887428667574527746488878486642412754471244315146786484311662873737273816144328184341431267423615174365745766443764727844346573782388433126451747286547643181346565175147788531328671454351154622888584848883885521632164261517466383473147444585258442755526351658554868468738122555716355657723475862567456825261347144621418326821667278562187788664733731633171757635358457843661248283233542533154288215565838614538543763682184474351427672542812856818267144573677686265326286348641227137586421881616818587888823845355261423278316816553153814858482664776611542312634885376472887722351532682728642747436641546474511364183842825756511741514718368463577463331866333866134475122125868723656618133386785214612574177621882337337236716486567676251823527441341154732547852738112164133734557363723644531368371257526461783636528558863516514326644482271114762476371312868161345771157737222126455453325232835111276556247341872284135627871557566887513113617877177525114758673842718668645511118767367441868733668646272782888445247178746688666687123712652516786685545825547874675662884254431216331673734332761134371655715873275328583133815618117144381845251482427487675343823374373173558368217146862462454658776184326823441341517615547873857236334125131252277628871647534424156235747451548122815841418842827631262674618617415151616667758388163232313333641353873356212237614186827727272874263217428388138514316677166354747135573113123544134463361513644224662177171411824131357175151142428524483231388682674183555568421438775765484423587166838455164617353718357751676541848855253531833228122557335541512556768682672663341416836587327274857784668816732877347884686212667554887547287883777374723532367778244188817763752576834844671257773372748676657423275261514631215434217233418856232414265617627727245638835526848177514131853445836415867271872576313425578773876373756365438274714756161858324548581227431345773867532326825876785527337152516788323425826112767421828682453218287411667168722531323253414371866677341224616868187178826335122788231813473746322221718412813758737538543427258831127554725716641214154415771771542864426683437245216614282836157745886553655468688451746631115746145367638746612354147672477563336563813876227451731567416238461776764152574486466583131614356384677251415544752466471542543373457873874587171786545386451458755648844163837527347474186232774128878176431388623567646431315676241248483277121134714247735463684778385311172755715326711316473537466685668744334563221721225567371656223267667732713785877445741525214236664413681866255866121768358478145286452528342484266753758454368577781128818756364825887513881555432138681673366428875635682346746526586362664116864584763886347111731263811411216336611868314265724512712548531858386373878466555115855716636488477173362817338786172368612346775383571446766716412337287188677213237762547835546666276673526447436213435824467725538814236837461187131527135824164634244817345324134753666824387751872332753352461816773264563315153253135151264255718722778276472617526178716387448321514283431662181757445162575414232627856171858535148643411628248121772281275115316842277151542443182316832242433236822726561375371572744665778787141382815741877883276341487163844863734417115512875311326631624122115416823163337755547271248322537135326681633165688227218241158523152482424437557265153546357311623722164273648566733157471326475637612628181113473688287735561613463312717814823878768322834612125145836684245141883521374415214775868214528783457461514115233577264681728617513451176277367685163543324252823824632416843678386617538152821222352583744222726457217771162151872182872361258864372766741612411676475678481456755648423261411275788864721826512755654576327133673576154126334218445861388213141464631247742868514756783761674471754564425312338322686144267366422477586283826827684484477315827733372812168652221326765683854626142827625451568382644364256687868231618214737634417882127355742732582418583325746333585131572454573421445767122342687216825167485444457182483334181767551763578623134544453472882845481434472321384744258286443216353165512313412783767757552743165372838131162316682446858713721357546228733121476282587467741742283562554436262852617124885538425662727831354518465277233786387855724524318331267452245522721363844863484126711522415154815543883461465474652774134516156227424431567663247123483543228541158412224182375784284558536251853713635284888577167478843357143388658735835771656165136357668667531274666852877352454256681556175254587371535851164255824866244758815613426828183177568133656713468816847335382518463146877625552222823353842218715275773315737621528724128886844157615633763635384835443118314611571748786736462452163164164445461222162354657511676171276337441558335156588841875351148667123765667871386286855486481837518473658443263458254461278847387316268771183448324451444138867457772628634145866111724333275622285337217362764242234336242714631854631137212686576178413672624715765547465383651338768734815856211434377564738563425888186258875528613431714436447137613338773145813326864876621171542541488418116887651157376482212466523153138785251825454768881287425327386345722521263215285872673722552342874743425615372468515474645445644675824554272185626265236441161248611136211416167354764417272383754536256854621445588147425344631171365631168724434144756377456222228758555433546826482686588717136862486186357625332211526517817565721171573344876614432287175743871188144848487764227133737478367466847443843628716361358267212815368271174113551387334312627878473181668766833857751857681478186462545183672874721525475281616113254433382555837658854271251557848173127744314265652778762436281285284875175453135763746888377173588653352563536121165731356754778421723548887266273332427218244783765288644532856755117474468547732146572611716478685444847562824275441312452666533273344181288366572617444377842825241625411317135753314432282374865533233361663828858388525724771141424727471743637654363724762562614652481561544175561742837784822186213821672175343374176553624871311663636585688884162723685243771843773438167537644873857143131672158877845668243381553166368447221214888246657844668866318324632723278783165835363858586574554782771768673832527721436775716386235267745218157718822656747543366474345522124715464648434875372586671742124514742272272376764838257343441562623541638856543512587122133276348563343288518736685514426482233151171368826861236454782582411675441446135782572226612721657685331141454881157741461328474251454158281386457743856577476513615721487436737623567283142467448836633443623541417887258816711481733274146462528177753651131146721787368513734338174121221284532517185153312435318421587576546417764471466676777335445853324121417812545364527352555252278557387275416881152857621385111635252536267746848784266355563512827772465325616545162387711737126712657748416121333558118783585342164854562844573815865842216481317461774164138438883276363173778323811467567472167382878374353854252884412358223848226722244211585381741675364658571833154564581181272315542867533626587852121286714182525778338661887773555331822887128357387234833677131251353127828555872755854828472464486467251772866252617785634847153688272828126738668448628773578824818687668448816822778654672261327286664674562858617641127812633423786854177831712333811761584816383654758542683433433465535886323257631581726638677825275744243468832556345178543415631772385318763687427686551557281877174315257136565414655472262256634252337646481141263722638424153268153486243216381532785313777211663623884312611763118248587364142468767286336113161885514817428236713581283851857114364422354247525841568535576187174523418838372533551218637113712838271741774584851576311626167852575651314734228353644623188775511233254643635526572623122666886828812133315533882268132814553722422672122241545353332128534523634578642463576228152834844113346414467321548337313213287555878231646165826428316336542167563573226683372583321851222477842261487156141261282844862271865287716577883878685881856265348424364128567762417884581874227156483552525158368225542648751523863785623225117121545775652473736725376355465344185243775823816255441776388533138521587258246532676652871831818832852466347662538114268868838837783836337664837435513516218768644686325753322762883313521283233583882267168342542737781576788728264857764485658488344883648637222616454584125635526126177822713831675115223376887211815663544787433114572526266183681736876324756164173334622872346318683175452764242262284482283581158466878755741653878878767226781736282247427181455324816385175727434327156523655257325144323784315443317661683325154227641586127322528173743765446765311165643565486185476651262525145647372515254851167731424665265646565416827871857481142415623844667717556154241858568578147133268858764566657313868876557337541145688723487238473161436851371475625683832421438636435227755811132317561728522484787476253428533328273821778527664222817756765667372234872731317675866457184631235455743633458737482737544674456888541471675665222455716241376673514548376544262816454178766532583124642366448646382465353175812311632467723776173835137415615433256861742676182141653461581648821327862241426327874881841121578672567458161788654653456225871727132566178735651186342628817588363226481471843623323155145562418477626435586757786712373538746651123763382677126783681854585831133126325571383668687451428162165443675333438355322666727622578131487887836763155237815446585265222671441287161353141655172387476641341438833857338114262317753274825837527814617514682538174858342714363724252577617456451456452312415774858674544151352414125823753841483161432487234442443115847217847214324463843376187455658178761557671183146142647283625323365137762542455721151766747466354564322565417688364427287645437584135757488765612743338281383248222484314776426367511226355371267117447736537855773515287422547148888348662254488625885644868461136156834745772624321585147885587264823186573725856572176842112784856255571538672141257518628565851543866688657758841482361876478241184753425867722862755721238758538575524211881756638772865746466334575864633615148833621852587387343818367315718362331485612212532732438755416313543542728188213482584271726126172316174688511716133126258762365155334688346186756667451117731433636713614323665443884184544384526884264363348758755332475762834574867185328862556141254711881458415222624317568831655686752466814286437535387352424174336543848165617232466382211515614828278775423842658478315436553152531575686677853787384837353364537246625478735221821461716788347663184617382718566364822382283168135465884632384172273418288462165662231414538117732238228652835153272823143641438323211174836433427526781753783434345428722225157726265852787136257461357236643285713164251138755388384717547526154862157126863288287265685116718366542841616586475888135336174827332283224844382557226356155124524633142215282826438161433144482735716874481382884417251421536726356514121146735343657767521818584255333487177378554112821821566553753158827652514781573641454226282417156482658787722786882323618728322862614574466612817716766728411684764383315663434311884662263838473572412665127218214237454714618866774147356147627747658631762724163564466171712383228768842781387252557265223228211186547736726538655547666547465534888748581321253467341865418138538278137736523831651716157622571157138577836286222868662514357161843456851346867762685525841354314326122716418873123564735756857888687877275773742615247331173473148413382466752527113583387515416153442685837181566886822643851355686533725682355814383536432127354126385534455826143356165877313771116631662334644871346712333371487721753656121475228568688577523112643678477186514257833742311366117465113788248342132475213338141844155434125148827136646846847683114237335411483865546841512132848338757465122468533224844227118622584282311527461458751342743622541621857518425127611714657676746828672447441628256213567136327176544644555374288718126586328626446427543267247284764233724483187445311373717574761241417744724564765863848477752566563427518832325567753416352215562771532274123566427468761882245183253131248466675578155221342711732635746751137376253475515656385558648472154878365263728152351816446481566552274612551222346147383187224476382628744832136747376246635643168237273245445781574865317762745768244567773358874142667445388863487811758641328628475386486151385756887731532163122517827523528262551181154751237175876685654631753528634616481314558288461581346657387665114182344243156723726243662444522182733243217555746552428631683853642822811665848662514236213287168337227254655382423536824211173566375217338868177137436746522867266343273236614527351612158316133467443755433754376123735755165462826787182346472144436518222738681346745846372486586754746626572676151325841758465727282461285334535624827858476657165827113615768186474841857274687886383633378778474865736525674141766111134172581684236587134247222582285568728554847387211581172237454621368274645475813533646531343461414122256762162372252864665613428782614852154853174342478816858787655227183475453843687348844424886175874238332686663454127466523731127416241361613848451763475634436246657685465636338122436568118734281836261488183684733458151113227877564211278547527833548625547432257245853876415265236788348757661264656814242437821688281266631656178468554614515665384177647464142885547127165683888183736664748515768532245672666563525358434854547261872458376848852174176158211873662823811262756662176442462151486575533351136481614348545457187422635162732277244648611812327736811573366574365718336824223585383352285511816477166438741111616683827165235541854687233831666336284682371584556872685657322125314771165721276864621272774872423511367718834282268874232226438676421752742221143648152333176612813888738522636656558783786224325374257871128474741676632844366764855344325863124788422615728486453184286683655731747875256654118878317144178261711657341616174163873443512534271316711778186481654668121748866187638526122462413576548534426732665276586631542818321264373862785473738417462227241334338373468116171882645564145248237766173843648487368475786366851633341315645255178834273476263716216834255461545515523522215283463762377772446156524563783862328583726365171676117152416484586246485272486434132514324151578711528633563275345513814128147684615265538446142288458726477746876584226657433617251712521312868625716268178828435422334151226785465788457325868576421726718584687844776377871488241827268774351744783182845685571267185564165711286516352831245262767382364845661177671743564751634454356722354263817882827313433475572361166571472347436833876375741536633857115781541214217836176146711762663827578668678568747252818586721723576513447183646533434158731513736573587264448788117113156714656372642558854531416777288431715244474516267322328116582535273484442563278627416474633846231531874736215646284733812263485518564653344575884443634526863484122477777845414545775837622831112756511152562122311888637722588474712813661747667624386245885818878761113286531463417222477564433416227484756553714382136774333334146863825662827116826564553883114451728373144812614321476445752314175871274375522854668324556677742145134238452624771712836312146856421548275346685433625142816567311844858451738372211464662177825578672687666362557585568436378443171355688422547457671534322733242764448452372184753722811784268853464378216125557416616473751353661187877378515346823352684438685662421155815211517841666111676823232836184674431874522288753554447586815873173762788617581816426746547612166441338216755723235811231617525228821716478662674232724884315784475436731786822112284648771428567771161216588368554528413215233516321331856473418857565753465383675615761425532124562126828555823181537348557761223882374818457463486387844771468467663124638463728127518847654517164333716444475356224114538858763866813547872277585563126123655622313634128816753478687155832481387521688281533732461263766623327276216732775237865648176344343167748237373565467533212533664161722312211454666581521361316711558681516623688325166611747178234113761518437161673121784618273384336453316714447758885152858375328134131712223687357751825624243725827115887227658512314765876235724321876317174684871864268752814443582232116173261357461323523626166286456634846148573324533815363587281863157632686824174372467437253851253885724113572175333766557843555721153261587416815873215155178231343561381137474872858152668583276541368842746744786683735672618331453854718581668385368813674674378372758377341871514262545563861615846745378353112484345717215863424268484838116755376767355758762257657156657138334166418851536658274561833683235388811565528271768222815242234651321467528214882473661355267311342158527438577432418415128541542456414724773226457164235281721866363454887886237645168644333485777131281148658331734467817226382212321884836558548175833314144251158257312864687582842272543635641626247821341665851165831314747866372671464442813671261217352127443676324455225583627444238112453626127461688347375126411161826255467874153544463142378356457631374173244218612563617214748328426822843358871743161782343772633432323525423184267257173867112121343355763278355171445448258331432357545531455621435876557452254481214754768137132335152786873137258382634337127841446633382311125622775375656442353523422258337588643847473724521833272163115452333386114473741514778655852217187336536542882642681356428645242834254525674848778812254724445588625746311765443188274663114341268353641784847744733866844867172874355115455846481456211516112866418868422623322164644462773671386244752833255138211317453427126442476646138312828551462324122466222585258151328361877228227461753527231643444837135716385613777735228851215288167615115675531111683575685722487855226674847654473442877436365737348865138561128151757367884534867832445182751436427814611724326661574141886131377237218356345623666732881361354667564181774153385666435258245628145551218312681864566788611843743365175172748542868347325328354556162331225166833764356754776812375577686761253118531776851527455811548233245225164752445283148316356845351467845181312427787428122425817652526122722864643382254485653427665877238383734658872877543485823427336855717243217382155162553512844586764587667467531736183121211338113438815642262245521572588688386511481631556647211857774444333588638317154774314385141271524573513218812151476513777715864377248528276353811627116783146575315824413237235266664328334143278737877267676363646148677243466111585178757244278843427242155753577676638148556222154547451816721688132533555346258611242213451286251121143536852877558746182217584565361523225164836521275163833358572334322725775534223786185881524644635574263483711641456552613764346512875834762846158314445438428266434124211182457355788817751746151538525335567163548216882136448262184336851356377888554725236143328652827621147843458547131632134657825377478748845411228883262637178624428368354862574278255435888552168613615753877312837247736678556224544726172523672215648123147621734823582748777868231132433874154246465225283651278253163166433544357778165332826543855853565536523466361864763587478132887227871826321376468677233116213124582241542571373352765145765144288474247312181372565168253436443452465762162611556731723155486618742138316144756248376553688138861274162445737442148782661533221314477523666527672321484256145766324263411657585684413424737115613771137664228455765276666264614153722688627351743322687312648724666833564186646168335662886765842512737834587815885462637115556723855725845743142575727335472138133674268428623568222141585467476624747678621634356121145688116768858784435218581213824243253536188177477114564655526846352322132585444814467788151354841747616866266567611251122246318883764126734551817178682865386283238347172214312168144217447733225241815735835618364754284877358561247671348421446473818163788414437283886548573832788685742642172567726477816355212776427582461573352666463267458243875632744583485653316584138643117332472512851476474213573256554357183323115724467545764171433837384686684263275611386714454713313742467472756336423113224552878863768224481731263448461586755647625317456286224134177736162313141362123433112222575458733654137752561813871783857554243578648225377445443122176718784222775614212113546455651112171413277427734615136367714721628736651552112548627445383444516455727744142866747578718223262876455331312457147563421182327563227317385412822444676672873411677325255366424355731165354364342731313748257341734711383328718672323563248164253288738766314343262137453126112177142625115448724836468347145853754572173633375647152175556112154113227557555136442626738586312618682424761471684523812732257388355267245358335357345487611511245428244438158564157514145153146375361311363788252622783887268516214741844274771147876273681557364328128517885586274518838571467816418168735154338576438887112482218622362763866824534224535671552433368423711463515124276621766871823834375383243412736557332881188158476176116147387843343543218715651238745516136487423746734725352161814235785244873834216685281154144254424137283176267543137784765887418778357233741312374751716383733771363785241847135216257786736275812287412553365472257613376664224111556413686341536887283868857138184731761482522861381544248153537817185682558646765481772483416313268417551574257763522436777477762612524563555147451581368274651726638753128228152772815523558386161643124512563751622831385735588331582657775227358248265725134864174718653345771652377838443535131477154457633368417881814764167676577881753756616483251687162548754353315571246556567587362275137263581654745466724678273382565487417171525148722758464763586785613122261444475552265617634324545723541371627842137258723222332574718544513416576163842838133842483346364664388685856155135138368261513161261148282717171544367754822324182182682847443567512377448547644721548413244262577673487117468726572428414776645421738281617258814655653642165574323323371716467838485435538656178471475465713215213452665541326824832445626643861275358573611863355568742413386475676534462457751827687715712516164474536743378476743381576747122428578258257683136133687437738842588272266882715267543346138684451167254411581724268561231268362367281382452233656328818122148276663662464554538827527235486462747172825351711463731241788583766342184685736741628444488115458743858827552816874888144625251234186185842683356743426777168673882566257887833574775231647623562435216815385628117472423371217151531327556287114613755748851362385127771558865435477867524357456125461176671231468732644666222588116715263255368747173251468524584272456677864755323517342211325611545274177233752772616573212743714413516338372468616854342426414755163785321567188682785147475836113448672715265142731141875147755751725665273484246257223426368745524181568524138425216148445376437843561488558581767443873272731372344454128845628453332541488227357761737487821553755676675314736371853783684316388733262412572218215255581587827761287184853241667388418237888364153538834747872316324786385888312225224315153851673138354844542463174111673867613616542813137264267645424677227575235485417235218161678126545813525122363742163676624573847444756165257543326671842111411824386653775686687855126237875163263845733458638422624417863176413357841745775433662713351565272527167658316425753148165788326544847428311657314274277336365581651412483135822338414246841286232377224134385485143457727834226114523883123563663178467322318118257226525542524728762551481357273682821574332723355572536523811366265231253311333558617438331137712822816813633657535348377177527776876246516563482133531134873632426116437782147211538242346318227787581861761557272256481777715544414262725767355477273762542266364476667722557785578856771863311628173832286563686658336131436568173475254477754138132432444252768163685743275584556486512184261744274454742866323158426286611655243375656524355367766585254885271527741413717131527367551528237878731762722582353246511532525121688643825741875861337852721172647622171255314862611565344442326255163155673741576633334648567354457763117448416766266381854648784546544187885378655375167412182422836845782138865351864665571388543346476685352574537664228854878763427656888746361146335237675662561416715686434117731821675317265373864184713211554345421522435523825135166174248264473434244666654836544847367875181431554881623126446532135881488237253548372353567376176565382212126142565667684478787525744824286851724187856864851367748822336683474558315618754787643534434264118534255483375451385525665243258173215442348782521243375551773456366517643578647423326873621865468126677516546345377145124671124886432277413217713367568144743213445631577467827252517218671162823545364112563444515133167164863287774883645651267347325138273267646213164346824754286658343561132412778278762857463115536558528666545533578472775243313164186534385447656312148361562734311863182533465762846568526461581263562422638212155773612118138652167816741336538224151357227758836524887537842738844646438374267585872432326266131282814432525131638547676181763488548687826128248614548825182117832417358562575553176847524322765125412167783145421675286335517176576451748241652425115445583416135432122836567426187683758265834247848142465216826343635242781214168548776367735151333814681777875848774272534231238221356484388478437523665788577261363513882746455726254311857761556774174735267655431566653145288566131274486263673448715178415867532456786261118323312571226671533378827332343245265884522388311614265685826281624824443362367315632881283463411517613846663554176873158316227347115381163177456752727644363656267764766742674825717238633817635278563216162431126711764131864282614185618558536316351454422586664764821465337156452454813652178463522567766348874231386533717344363421813637683772412251111812818326827857477625863645422512762361162526362634871821463574436354436378175754228812114368362184216732788172213158861853781666186445585288466343318165422175454655324518556277478175376482883168367638644168876755874388458753371221175258144471544664678322358137115322372388353726844763854567377865682831532573267352316764287855312182612858343745875658678242332416377461162146514736662273123233851314166767438562818684815828272762848526165878771421721112676763654275787156142653681766635878841455812777277854881836311564168212468517133884874847374111514184246267867256325671114514335635725413355142771847855473825274456164861564423116768127378464816374671614715123761468283118561788233853441623168715622632647434323325336418715355837767538178271578123433368814464841761377283112821833761752864337864818587788656641633468253645243341288148575326875382814278454474411415153254558157848433348676784814465487548424825457783437726264271436271278361823468377728533522654378164662721734657541251512647833415868612474556461472113273636874231262826467165724121124177632751737638363131377376447856386467521174866846864668424868287712633741734484772325867434151832665118688117573475678472576646413824558131545851437373212735173432556258771366171574785844248553374886564567376831461564155572828824632285878372378143128677435136556363531425624335313376686885312814257816548572128113742447165726343638444318271147428338183375865745771367252756355255252275642835461216572764266383575661334274632747216141156753726383873482432563483154735222454748743243883251155331414122734217783263133424421624752751643141875762842273385357481546217427473138824287234738235348556417823382848335747227711335887517166855246748434842688473568385712567743424136427356355218117684521365324776185836222648216133585382588837347487218141661471681885144616547856667642465113258218471551215611344674522238254742671635423848673622268353234317543263621575511567452377366667228445374242458476827226841326235148344754581514716628874122685366882146483124584863756738664382551764411473843135377136584181256838141887248143346648468747734433416183566572465246771665528537838314552876173363642415134556441841464357836833313223333657168763868815658158341223552587414376344312576278273715736176474528823844167573156146586854318637578571556412724528847214632381228274248551787216617227356186765783264738868451686215517374651318384666351766715223474217574674314671163246436115148466882358458784511675335613717722511613355314362186635755243885613444668251384484233615886355525761213738535672654182351882244487178457322545627774821668871125534436837678352738381337823585254254757386337467117231678645736353514343663571181778427178263864224655672831836574583181174862183225671874634887437644412715575883252226371371773323634512168337524416282225712638163471254143812152731558786866638844551562837141874616585858628363635448542425511642361755484321651715725837345118233728464486538678757421225425838327231677816535111751532133333865444467838577288841881164117451685118513437843586686464761373458656623536186356122737812641852524243563262817275337728671645587828346564722248743621375128565134167372731551284536352733486151263612444466586148362424461246758226161274733184637841186162423342814622262562841785412265816847647226183246817176384111567333684522771262462236565663481328558516785562674867531254583222747615152514473738358475512873234685251877422465462176233332311738122221568715323277782284822165666845818741177166753862121284351642318254868446622174873562164747645632624637881618754122874368738453234666563313875453252644234241461516838261324751742113586822654772164756478535316476736285836164247623337381527235574851154726342261211818527316521676787771522387265256225525344113652581317444351873252474614122446366364717211855272471447855166484731276687773876225766222484144274762537173861352584226126516675663783251557553423881211721247422452677311225254123731777513454551435265747221582572236176428845184661852671381227347156485851555683475518648766361133448844551125451571552185782512715686252853265224865275625562722172663525588117215778457574452621453462121818425564266834165387848386165233764337744414717437787784281778156286536176227836615552842521283562235581323665133345418637353511488656474321524855216235852373187634377611738831517721473517477347475823816455516355163421837633246437675131358554162171161811734566415864616633735544521317382325165233388152312853874612517341816185875887778844843461336166124483182246683556646654376171757714268854438655888665188467211882475847377814514276353386627774572673477848388364615885333117232416421214284787757324526834347554786773381438222621163522853765812288535278757138746685556711182221241765441224157484848588515426517574725843318747218837557181512336617888336817417351213172233862583183873271126742568537652514464768637852631375237257573441787232712364546634754368187237223616784182152675151254164444365333677157853121313328482546131561848424268177717216655525878843883732727723583171723361528421468721512348665644622525667375333861527327385851877211644162662554313115844285751662416471346467515725176185677422538866812217135626375882236168887755522748342771217454566841436323574735628866584418823324367186142581153628145482144466868378681718762111625831215628865761335413851721588147738356744481233631185677433117871465256216875258855483743243586644821646885527261618684175835668767587877215872828575853226653236155851366765133672243561785726272376411256458624518522662851538466723888611371481153371273215148782787337432162273222731156462317247571378286364683763554256184868323122831637784647553647423511117421613446872842664847448416417858176471668461647712516556864766364163216751781566777211586168673776766247334381147528675858836875568873773222782354878475444133355252285414353584642386881361385567386885331356622557217814841264163428853647176742638128571313678622664817413186738637656777125643821877427624416146822356134288252845653532642846614535888475311282637657722123343413188534234841174548337218413451638388613784862886586317855881831528278135428678115745286773575514522235443117817258667126462637156835148141817428353164417242143633316222863315237215523436231261482771166167257165586416231814654718422228114826236876616456728861718127588541151647165311658325182164481324121175558181733664761174288381783767123887572517682715884724858843612812435376645782441538885575846213325741122311525365331488181616688343154282818216616446145172452346527633581412242583284353284425644274533374565324688635651268414772212236354783722782854647644673513726542686875725177157783361227416737686171528787511155142161571721688883625584121633336211267821175542813168262814234825837431484657418473416287627768363763578141852481786426285848873731777677743873623462746842518858837683236582454651512363431425367713123662524856617731274272378756737155323417235527612786634566245622223254647285633562232455648322513835888475645882785137513215153125572228771346135334145132234435858766625715477611272384414753125817648776474253862756814856335785355313612784156733471573375724856544515474458238247263581742336652168527658348253661886861751525433341613646522585242414581512754245826257861785178326645456547723312637582571177676411543817756753833472536584138661484772367813382218457174277151111358572862767188511418587118776728437322264861531647267565544812814383518873132152578342863831271321267735235312268161856355344136751643853451347722724226721324866881873384427811187178751558825315361211618288265674636772473161287884525442425688733461314671466253324535434813872788821877624416644756481781755184856644423533274238865815656356328874173113476418182653874326827422576786685816822747746264732373137767216414685831311636626824733666156716273446147217441137276454266827382216816327268748566328485154541661152751364725642461378552615642644581274363737145748764532285136553272364654435511254316473676442336223685785453167585883262563412274223388884267624271313238476555633863838126455444461773482746816363623684181644157116455236834537586835135656752363174384556668185645844171643578843833354632347572163272723271632135132281131748115431322281268142522342441584455655773663355361222323463282337763127375372714873725622132832374676211417385743284653533425254682378438837418677224476775111466564264253681268147483632247845367485461781826431336566786652877677232822113323452728457631775354247845613635841233138517386727717588765218784573456826715174564181573213648287433231772846454561577585865555365345488254886843857577632384526622326842836682684512175864324652754248348177754865778166255537464848471357713381474477613823766822765452342362875471256225463651887443334452325864546358862844181411444876618362786433886772247348483547228742181681685341264555482725537178887634484814172144681532252521478852388358726537166126212151167833857451832354157436126728826388342276776123285638341682554871724613486255274617548318524528561642876363746327248768682658375448217841735534147875524356371885825366225648148517751885621618852284716141822672467233365432374214542856827773816721146346275562683875547123823354335631845212331337748311518842145517567775877121512433253654857175512371475347214314581655157726366262821555362668737854265144342168251823216144834621716117437682287375363167426885545256585435652155372685217754418184351883238131668584174861372841373848332841814554832474472363157358783844611153255463571464761665342615636742664267285833466113634762445671553146755125823633683638841417168144476154546511445725711417372352381585126734578756416154547643563517816558717651356662623546811731672314872626413135813324172754888728274453753664361383751843182861555161853381623758684485684452274671463767411742322756384715673627432717225268112754288548264246888136656243211856375816581114411171442155443448646384553533661767417621824235715285527871856581147865154244334741173467423773783341723337757718576728232516553574535568421287653315334243557823846581112877654181278614831487473743758646572571366336381135864828781632476612437128457267732223788562416133275654511124566657636544471684178354771483745571844665774758837728884118188617668743372437436778775286183121467443647571884668546735582764871371522166255283124784851216252888622834511725136216268355677747716556126658338156474368534427868625833368713764428725778832634356725742337275324265421413272514846472622218747262413428416564154668537627383675726134165437513676688467356232721183567611537586225768562884132241266835687544726188543717721182727272646287248445116477738548777515446235811552162476321271768386436258421133226152674667724654867678387182473785864142871122428773472382111888552823611422624568876713878678381553731837711223672158356181521545574567325836385267113318157172341483885184731847627655537484237234273383732833664216468368357247256582465638883173626324755561142682845164134342671113447661665812755367742832768765161547622762857242185788136573281814342428674218465151524372566255688747465883588152728347165477844514342516756432324215172238632177463331125335254572641834513667475427475677883427382475413768274673231468357366116821252414133262451516188586363554641487867774536346653672318662286812714543663414668144335718185346573147164812378853473633248433652122425573762334273513583446462264173617144867463321661871677512126856661265662113136184633571347844626413876643656323485423127818347175134365631138348777758446331214767882435235231724261211444434861436571161354332758448578183276878543328444774836746482411375163887335861145514867517754588183152454117728831336754388444421625567677521121223585684548741713155731642451442757337457433171473632613557567744344688588413212465313554121562683137576284424327418634733778655827473253211638576121288547261667413478611441154663688611226784612146176687384737783634623217277378854328255317684134266476315711465767481877453836341685375552588645281255582851255221625862787657874655325116228417268636415847685762353538322828636565813183743475227276267151883241737744284283424747522434223214757547624184336476838247356667154574145552852281854544361634515533837248444531283317614474784146416772483525342662413446886381687176375246466534641685371871621534828134776281532386785881547251348353316185728845635772732327158872827576768453883571431653467133232846683338534853162734147542551322151374744316363442826666588582786882846176768623665818564524361628723287434413731832784313748717458475228365618312181572732468311857436361582427634453285412831175584372347288158412331432482486555154758564336847136776885782427673167682122715278554828288381238112462341477565286577564114276676888621434272487153568148136382642371333712642133386852764261134268852213845747153445687774774866863741241685116157274832166534276267873127377651565867772584673118854762661332888443881111277445132224481274478824371452165571683422527636734733862166748417434472311274734827361247423468778824725841884472778883745648386385737427426552641686646827717243376788517353234763187785546826855534284871851344654188623822676216322776563263615121843842118488137816531556527178278144255765744235854825634112876882173268311734371477112417666135731256784563862575173881767437622783248582548717123463545888726586827736182647156353277773322172468828585321722424412775787865618317323825514422753147626278651387226464685633877858627146172717286411848118415881538411667525441652745426434531641641625146541623586646148417243217836581252884214574275783676113463773565661252275651811275842258534451834115783425516331725611521863635133622654375564615773532688167342311573861284554743763118522416636652654634158241537438356584237568435764361252824454158615785252254347762857158162266747474516722856644881363341157717316653145281832126654644656116587764264654326225856828451232871334747273575884478847744856122725286662138284318883666238587678367635715782322212145737477322258683878428242438514776631123344373261262683742463716166248471867784867747187131372185668677464228313154563833151255681637162274772256213213467288438487864188547623141156354263273623515672515447352154788266355523441617865468364246526518385426437484877532537643381647647276528838434277387752652735656234873845475863483245412281436158245488644312357232763658782116627733714814136721814838718176344717775265645887854446134588281641225738863263564168438884771525536276143458372475428878426568688823626838537472181875586211641348517866871334534337774265318131872374133165278317143265355857123857422734428845721636268742341642474353664558717872315348561534648772127541221827624758463473427312423846858627451532277173435733144184488151766486611128427616872852386887744181656665367645481355184651535634316148636216623648854471414676124385357835317642633142753226585624256628356626546832716684424573164315887555821664711276687656821411618432121283274868617568767577347877251261555647578485178714337723638622344415333233436476726367637256156484136328268514852577111883287814314516588255542715623462487847378715125141665443671877724518413183665736863217462531117465376373628813551876371513511147646362618385352845374485423534387582432351556646372472621863362687831136272433737666447533728688588658844756748513256666855885541566437514274715127785286655816821338171215546755312731255443715418476184658845263322187348571221657164518161386524734255273755532115556454273512171113671663225135377888864825288818237851243423646143141533722667457744835846212825286326284132867358418813631723147338854157814415346747261248221643515177775826522383175666648311667846684873645532438162715635368258787886236671881486576226423135862462271835575522348637448448185243137776444813287736241772652372545833663131116551244328274318538638153135133645368461178576138617561733133167612528323242511176631673183881737875417782613626476555824321883457115742622654413124666764761265672226484658616677145422465458626748275317274752333534476522471232626746632177316568567831775855136376148326644166183776564638217436116617378655462421134456143586867538133165362528523538313267822474853858486347366238721143584618751226153454771518282762287335721532214211585643367452331634275344231342382733755551771751847447551675772624818555348882876486348177232382682314444113886246836832454644778516816177366687882372523857882548311117712242841775584858455566516214642866136712462433137555373668744882364653756616128543761116677246164216488626374818273853321115418828225186672273161362384464522264772357636814217811786814152245221425385545663433518268362486624636325771344653671516284413161531322416517633151226543853866888672838558822377886427613656352388278684675571171373258125457556242117246481567315227288482824634515338536583423612487147848478788128662337346367476887657552412211167867652175784273658562472512566128755564244533514122251326241543487122233245265564451258774535474342135346863285632443381641285386418511886282425258585321346732542162258544776312827551371831754162844418776214163737723573558132823433871387382634273431756338227126325114541721737247874676315164712173247778767352211378565773231138421787372224185188626881871651312472825716713877821275372127257353252682148446888877222334111543467614717627114613272422433243481831317748331786215127236447787551257818548688466874416722666273217665388354752428866547475281171524153874451263235576485611328437443417411536428175484522658253866326634677181187383345521233481787261635244223653854565275585334157272785275246142558644268483514383438626711572483367354283528855854486773511641833767257216262634244427368438183338222632125245328337264664678873565615513787826848333668234177215332572732338871514741438714625747113353172641617743482173524115562564742116643227237342584661887645288185641658432265482438277158237144364331271164374423142414127782328752446244642681154262663458252683814325678554556644772774618474445867116867221755388167517122565228536784663657846821672158816284146733755737283542668441442757232574561111835786833547557434227165288381858235777837654263654167386783487472168551183478345423343682847785867571375574524766167136837367531187173332751837511863462255628625213146377361687685687524242112687582385223857633713651644552777544443822876426613638661235111732232231388636466736384476544633426645472854686131666111465817821551287881425738713173286644535281861465577757317612121454774363456111354686433884653787873418414675417877531876153883482687588167327272532688181451788565485478812388548375384486476111356854522446817845132542855536367821373227774648858613765127714313412621168513287155113521162488718562345285214576257126824734671644537257337783278156447727886836371262882441724638363722317681185618865618342771664722553427227485342778424387132264431378287634225163175111571687282885462832324581858266874851746135643733862881686568857854647347462722625775844577564428574874437311547225626774317611635623765383316728157712342678612274237763764553225813186861712181221553846152471531711153213373111666131633536581346853331638538663865117132677472273226256271717112268662546385268457743526217667455332473272385317152114781524166588413782526257823731716538532242788168831523165427285847716182862874464585518141531122467247134788315352772473536215822785516645675817155161328686287347567243466864446643371816523427272613651326437652175766538837356536788786281865748323666526123672126873382358581532815237881764166434661863423443388888378135538878812158317223228227125628748734334581287876888726577756411141478515325623361852276167467573237247761847845811734486844453672266811815466866645245816348377581872148275542823584774174873412556636623866255174558534132167724256887772264673684536848743325637186562748326573625376156858538814567743361678851255722523136624741584527686357178532343653185466285554178372278717843875284317627748855873162642413452146246818481455841223174382217313136485832176237838334723844442641148243346137721443885345388221234258251533862826322416643625444536242254257321612858388532175237728682216818641883738773856266127677765235286756615541512238881758542165344671357473543666352187547725355474576822345677811211532423625263371578714342888816648777758333332186164464354222775434325826258867364677221283447172273765446814737863744761612511334666762568628165345483538677326743287121873755186636586525823654674473246133682435671318511536181218483283133365411511467271476554563548753771337147252568387141266522567743445857733886835387124736651445656142475641188488287547813823155755854115725751431775542834848472147527785366178255328273563522333254534727435112618536451763612884113482831542677631176234182851332346541582438868666851856158753587312832262737685186653464341215186888623855682787533468861657257827485777116883625168623488772533172236686883732437156482171213567451131475767827383618816834357184783432678537334315286556652431516826671634234524211456137241882558737787262338618422632525612436418885773522551582462583253465183673367288452261324273455768144423446366877152654277124366831472323116481816143251838835628653552763168228834855515217736468425667565554217383731141581387236783326478811636578581328448333578712256113776482136158174164832578454135428756858632238212514728665768121652354777117537484846873131888665566625483215552122618177747362425277483714331233311374758646587124433718723736763467848774434813156387878837262527318856386657668355724313221342738724251486758452133131148253833575856163355867262245246132132175346111842217122385471754533437852453433643252356864648713755522424353377361413268334872256374276328624251351546266355436265384833754271275811333158212885425514751365353554356553431336847285576323715237563824367117662277343131122685422321756334662575326521527457551683745234381148647315137561335162115285375476121727471843842225423512246342643782231771245166315533444147318378262741834287524776172483173177854648418577331615474381585818454835562481838166315615435822554626761166668333161631243432344625188266538463448418483433557635235722462475628335344377511873462148853686335757452576437483345211785661468622237382682281485815652738842811723527676783812168684874467328386328174438786613642738243142547368744254784454785665271552316181572654643185235787323148365645461513667643356413812315218441174714167883825232572423181644428888162522718838256485462532673538416357485485872627734874227262772414823528126757532116227111777135173415373857487257566867155535643141277541855772388173487117267343356617763456256164161541364784188566314316832515168734431711875812338451158876154133445523277777611613325374685655188317586444222883881575541225372228148674753527416265676785184222275758812323164451838375774713682844744133411546616344483548815686241218521362583823338383251486111782724441561558758475677427137264146251274831575522758561371756347851747716555773855762515552172747772338172266252615555222125366622555524611422282727136785422751822561511543437378278437846723525632778414754583567121875636175257183144286642868776845164733854451732241523775623114221554856883142336475654385353362484555242255457783428424616114711265751543247633832571117427468455187652566438438373354683418452521186358858557453448825365767181115437873736642165557751344713773322221211442347811376176426715614872168723146584687383114772827326581447448767234531532175737636886811711684266331371244487358554225853682177417213827456858711318454784552418835277631872738821732862136844743462831528468431264362262526681816755874532444552854747881556323518264227453575332522372813632158635156568426121768866764783868533118465424773436484666113261133331746175233472172224585813515845538314726751138811351821768333483473844536616357181147725624668517562682337154468431328441873542487354156733868428421362121174871613118757625364375877281865153173852517378772211467353141542721276833651348535232157337178251844247573674233426628123571563257678434762882883624332571216228687542584651748762782126646158127738688234225682872654834535244687624536625252416373672612322782351671117684815338217447276456387333341278348763788214682444738338533521542227464172251371454173816857662751366775887685617715213464232424551888255125355116374521141858364453875547161562818832533637555567662225628446584256116341263388253144663524838844343143138158541842868331374345776182164166581372577167213236765141244526846574787212872862528724545166762435565182256244365857328523256188543722544357652844442188425185656537648771225476721186138514738478823712838166625725577114587213165245814872641882426887426746223334582178811811642482333874365315434238186276727166786752248445557177556332813371625286377823465843414287155488167677172861774474384721235434346762568453442446876155144677672465383835245481658452565134762524714114537734818722567247274113584584824487555283356741358468675741817844311828242886628562286342432384734422113352534251466162821741283332447734656173775553351212781221831771346621518731736843122711413247342664431814186341558711756862662538862168165381435162126711647582455322825552564677851311462221335534636778113176432462215484587752224561141314157312238778237864783848854652236657442425345713747141683767842674227856556184877788738112886731243745487766262157511422617851142825531824617573333471227564377446581388438286181185226841164878688385245764561241657123125521446846567621764758734686515723537232545326388762624741267651113483357775122765886177285667635675811445654711851668555622441118568374816383458223147316127228143166267584818537713381612431835318675432788447385325385217817288154364553264818232626316784313778325647651621531412718257575764485638152223376883261175531776283453257371265561546522742728217251436332144387153661545683674285318587313788681534375755278368758428355311336158474166355278634543265365455752761873517683552685168516722187332828276655677756454171662877377461154436864448252261314288584411273533888334826733821116666164778122366861362542511561343556582411616384181722667635421365132372318815122163738668811844217345133184312467657384774875356776186366386583868754248387481777474167614153456813426423763847445523854366668158366628162126727161833165683217135463446357881414116468838856736864377811468166473771441132711467513168113621127466176181837145562767445673672575784568358154311557187265241458684157678645243785365152472474153237813744127114536112846755256541136372453851421782183338452215724528434426427214364384748636824446875177686516613738221173771374548747223844524584116272135221341825343637145284662148858241244335556838614731364147631555645737481143668657345658587658774154758733751722656787326747786288275234511258172731353544423713687821137123637761853726335523853621473252224617714743266715751688747733823183538124148678234814544187148334577356456325214362735382686538656243774413624722881271456668542855814322641723522321152628344545785837162241463381115364215328868258823614751741856244332751716437126357643774578251373268221433812536467326731456452465444184174314647475628732267122526682611181152566245227812411532257137184711633446125576633683577472751327857382851278447726742646738536132757621637343232513347172535334428876121822335253586354274314722615427218487571435732845875354485113588485823153215355851273232618667363864837757854528384627758422258523666558851472827478835564456327655816712611577375345483518247614712552423436365561176437852337468521468462255722726521173275123572527252476828716536231528622545667271375156544857547681667432167576575246566863487354881741146862236416254821768362656542223568488116778362824522454265886844581461248643812123758265732126162178251634181283368263415516821238615755754843366253184522118183651745337683126487617136834713765756175524786133883373666153131672846417846256416411466677147622816223117488216427465738644122368681168777465217835215745256241126724668225713663771154545321838671654373534861745757818211761687464817326414155631137814182762625662263861375725435825484262118563476773462124653325561857755373627852317228253454617763345743165762682571283145312157878433711854723871656662288462238778728874856321166431556213382846727773768467564717731226415316857786774436241387277888586783587437612752545564458244611451718312641885648365467352438234262668843818163665723614726436713571441437412375853781272522263221235175426521113153146385572481574178686128636138413742356215224338267838518217128181382818281534126565226614572277866134144167248513225755721117585368468756361777116543732812457145571565887676483127461521463336855578665533837246143665767212553711676286251162643625283673485765841336142628458631326371581176377176647526123182281728645623127735261827631546723762332814373655348842412162713681581671767211445315243325416442557532378751511616827321736261183725118655315342634522661384164342553578615246426447315412777873645154524715224768656884142581562244266357565122674861342382155241533858372753637281884221323517536823421366445232821112211266871577586383636816165665545562821145561258438776153528771416316162524311823752266485173274521286155442543885613158636652621718212455511665246222245576455485475622842565288777657716222666374816686544231617243881622785573643313634146273584883621515124154475325635844361456388425134238634855437188235737463325884313246533143512522665528847436434718568543464672458611562362525186528431473412657325132235186663884514342553784223776565172414763838421645524113372617826134412381833166325736632763322624132232322587821468718182174743852271811128527331811876745736282365463445883482578367828118627814227422677836745778267247625573184443512162446684377152831474454885825288841578624421373177431871478658258327848387185484816885611535152148544448345452743218468488662546486542536672853241257713641584243554716141834357364642675415486442838314487723326457533733473627576516516145343678537771777256525233888382785233643482276682451648588234361873826866652427331384844766864528711364635437361356657282457528166783723466218835566156218521527883775278411451564378655227335685171658315311865368882573313573271822753441214316813151452416682471632563544845642854756814273427441513864838183357431282578537332888355444451456817174243782225175116357754816384613686843252361442233118166785823287553837262223836836521255457343267252137821271761272887418813338242312753771434523668125116815521727684147787745273685353653322868735786663454133467664638657451483678415727237231863486158411526585543774216587681181483811153428838217385154423283887288352218263151578255564581578315812132645521575252427737483184641713564733756472228163528734757535858838874582711774785644186558712762668625585671151374454175665443666547717443154148255254776137185636514117821484118632661144741123638241648657158678723526517528558434284155737486847861327175637671666767432267738335857756135751537215117732674264768522824266328616714383437544837455614632428171367787716557626163631218822826551481767571352155188666667425277723811335361543712678842454162452717712134257235153653888863815183843653237526223475442447385764155121381752544748181281821516578177777458623667663353455465781668226858532814437663164577767712423718737524854416614223618158287246628572144244811383553235254667316251432455846142184126588862583775828141631885752258625577784672371744874631226813564178537816681775873442133621173142881452131115364224476455431712661723585363881817426758412158375156372428617465726513111372278475764172858456848665573562758413176154846853644261435652587447413177578864218386445572737642288456824878185585846464357288117824673731346816287715336826726414563726546846653113623314656386411483124727241152373671242446787834815843437533437416177383178547885288548352315722586126185818418878548445343734641453157518245714764477118352433445456777468656181247145842772215316182838584254277648213152238468267436373365758324212526417154832374668662246245366178588381684587662537721214781415155555672141516736668678658466168584733814861448166144666223826746828828372126134684652448732272474363861263532512844777422331475573848833876243816452388228864432372845248824721255342324317626455341731778761883284326617245752472135774737523712234862352546642522711743612857772735132282536457635621656712686575748834186433862434515844278787478833317157845255372866171831437332368135536122256424128172735654582562625186828551528586371853177234363562831772514554382854262142258163852111237374668835327273387314266463255871154116514383328225332548831538282388815124346237757678563382371111867578124416358726741671717515363131183141735326652788445813531741511521564162444373784454464224275834881157817316373387742764357717764871636146762662256488432362758243276587334517424631663461652373367636436544473455578733568683626588237588847888517287414173152667362726677573283662473577548676563342121434654121828873334863321622573226687651458313345538757488516538365742783481684844776532253876523684543747527112251774116854323348618854713371586545612817436461382853114348488658781177537231831126127122832584443217551371443515714623725631644655477223336576767786147627653724463844277782545825688227881242675636254531444143272784351374228473157477538613836226342345464417714323643514566355886781443751336728681626261516165351465411448277756485213863631762827435278617541888476673626484682212778455211766412278412757876754833745166723451674385146735212352615228516423176566141438125742673265773484717255738477456137885387566722253877227166562242831228163324586484863741114787857161644135155711287542248337133716561844441136124547633652152412756441865534816451233154831247123364326541641385165847441254866818812626487473646812625432874342812141475714765536617327423814754835633221314767244666174442727761334426424786271644342452584376127558761727545315726553573877386118655717252358511333272236852268284764557484344146465244411624533616233537868144476562127741214272562434287252266828786562358433275325411336123372351676777322648847488477251187278844682221354844774737613678116682236115141212685665283521187764573374874665434167276486515342661814158586115262886345553253121777251218465183842542717723232266882878536285156221462741251146633881721286312888183876567262642887676456186882552721467854725625551386815351216487412817885267683378545762853287618786352875314343366741616523484141645833431754757433313565872372355525557614775588585748146732137676212163127374233474154437641175616561843466457465877322273851536781842745586344632434317514523862856647267818442371312237346544481762658536436265312285171641751744526168473118216172576326882646767461418675483611535234831252747272388837567415467652251836226815244737542388412367253823234884265347718587447642454355545634722846423378274628532663386726867257411414328452374256472731437818726556555587685711525715825315853515861231868541362548181587773718416425267183721641227846685563513221417326355386127712231384645834744562817283764322244373644814877112367685142262385778721862366747662411672515641785466521454188553664412558671765827361416873535768218125681636385238866235475862458432586546336518483125354726662662432782574732642623245683465283445232858438361543534653156376687317118123626666688162137466612533831788721154678385556118668878847637266862311316538735768424328247564227128716265127611523152565488476387868283655232253528642877535234127636868572614652586452275755766616113852888862222734137364757127487483348235344217261166418877626532565175621136751536877465224737654868431232774816652115383476318485845658514882234111241554745775348822462527312662483427783476562531336585375253158311786682157361884321757131846544623358564157757848872475245711338234757354185581248184217755558443524428788154138537855417151514523854813515167188571782384321363565635683256635542421556548676811573748164416137261883657323573532876748886351276835217588754823171325825621645148325174636127422431683852686786488886161638162881838822171636465862635368273832631522436461766861783436324274146165317622685452147477178286282818488857737334234143726313133871486183832431451822864611678137677353223156212351456476254224147444435737525447458167488417778681743486814115751734263711254223213418751862453585527768584814374381246243185344563458167265554584618483412883151382388715432786834864221166473178215753315252554847125783517415183268565752516166568228238845245468176637785462225616326772463571575727683218177228547335447715454535162352826448414733147727421571273377271531432571575353662438444447333883745853617284161371825136851228481655623483511314383586372861526658826366574321758275711686455781773475714713884562623758282641425331872162426734713187564747586721774181788543631585353387723482246513483824276885487636215124815666865864357647376625133515613348842287581154748576786257628843514481215817858467246862731482413447438626522458244841781736636677582461178832815411145735418764688583362261862567342722467822351311587772777832465627752643447465232571627277831512154778733646826271723647112268431578467433685468552522433315728866764664548656673831238431512288743768834511277436216221861281645838872138123535856677665451424673572452334577743417831163275621134271163437262227577672811263736321827326714623271125275858348561363165355424448117635882523448533486832241371387656356265428162122672565214384166767445856534333267324542841127681515662474524532331745845616143254436345684754546672743318621115145768818451725274157855533544714357358855613282354626368681677223117611732221146177612632368287458835178861661167545775673667174143312714567575116572745173786361352247682458638184765444338623627533318522274758746456486157386241246658764228281445254766365146757433377418128138552617314565842652158415314867521687277242783668432172677165574653467852647112542755674287325487712256131887153214733828656866613537347137711731871263684451781144564367227287873668815131718573536138722381786133524286774487457651613712877671648725261568175747827767633551322868573518214684546138513738857754478688325651265465436475342724257287638885173631748587787161153843665452868288771488775648352325552684871568224224762886838161276135421234722334621571261633428172338123114334682328483265524482282254564586864765715188417726643858863383785772838247145776252214282481346872674655268724518336613428341817773817132663131631461677613361224415824252262231266814742764746757145552444567652117288865416282566728864186422383117615723538775564536583245461347717886358784426531376511614718586883624264662424153663442823532731168273248452753281244343583446241737158884776256371462686182426458852821414131454557637487515812416655386765521636465322648288446762417652213862378476641236237774622446563436355318844664446785353457772782427625616658154541145157536462674255773235242652656832481637866177636658231865287782616766533842662143626623813688468216736621557667186758726275187178353182754281686443821585715664215275152471556356245815575213231728122766587773567264628816236877871634383272487812144634324822466546575858768631731864186457385526261366341263724861476622212433141273414282261237835514622454435414422841624747231457485547171682638524555636151285545265841168713752726246748535775183553561222166255538821773432837854376888782477681688643676845682685481161374641768314677868515344881853671752788731868453371722871843262154238273845577466525613314682586876882755113856577118115472586875245376787744488761472585615481871228764648745433136286466174672653348771632241254874586885823285238714434527613186215762453373753438778842362577854242376322316556215185828743218634732534652176783863262113423373432675611825254552464242473577431655233871466588483426532551481235325521636473322661114258365148377741528827226481556673376876515355813885327633488126141618228654221561763646642251565615526248266384477418744568623758177453375672788636662184533728424231467613882562885785257216644167171522421643443177314271455738634356415245251457874363164356876428638821445247513128126457753552415183644355126887881212684111256435411732383558344135381367144773433163267224625227314146822181388686873762813425353334136332162147313356446475672875474677872742342663867623376144358434282343566441714266151442537266553456774224254647821651824387153815643652744377645422578518172843526858634137563122845863567662621375845358765774567251477354273226312814451645283525634225234413711561816646856374726735158266444411267513885624766556132647882388175815385837815337841762531556432532237471272474765557671483786856748577363271554726554311678172726745272258322451175425551254485146264178677821538246358362772375167173652221768651175528787583688264546327312846815567224863743466877221816711457125416751242254752371347624431387547884815772764667663131564564425874461128883361286211834881118516511677667611681117162256864771242316244562632348715582877436147835525562715815453122876778183573115567745185311328516244623667135252112567718536444127286268643255436354244613427486316588563585238725215376374634432182627876566147238736222681634788852725442143536526717867186276178822465536886228585458738546821863725145432223778424354225566634813227627831714725847338773246316375156516584836231823667653361687261522846431121773716663588638255265168668776724782457375227738153556483371838168361715827781412623453356455133858631338165672824821253567161333883683566134883484116364762561866736253733832862468262245813156746157811263266361786112667573827221822115222718784212838776267856857735346587233641843422735372873436851271683164128136216435231533728816573546118512888233725437616267532856527245814837215415875368787173322686386778365766452674263138151338564818535273585351473756358887525123865554563185288544766656528671874518625632322235317172413866662187831211337122623226366224877784576614383214845254576318467246312637134315415682746574286872317277646257767334228733843611747222186318255658146581872743483375542878484155538378133217233451175733678775414118812881613654728813341325456523574768431312441447632668872334652187637334575238683735431651125885655258567786656685847811178667711375823687461611384782755683268867166415827887827154741478383151563264655544112877358166513718525442764185116384786454121167681731687286717414551886364157723486463272838438482572765831622157465681553466122366221614445327255632487614823225736554867181813143277628621118552114182811657563851728657457373254258356183855812678625421725281226738515781452225274686375855644336876433238857533652355452176486674434427818637684588142846355824134145733466713353863637458117162172332638826322215547188856764672712145547338255621225772437582448643767552273615424168273647753424712237342473832887876756612641637456851185354424863354675516575132623538634233338225688741568248811831883123326345561455577252121273773754252456113226371786665673837823134371841833556643818143446317217632626418332153321834375863483866287545265142868853151324524816583146321525318362643464786847213563865123321754837262321115432655157221243335477261418178328451165747568568216681487315847451523267532557135464511442682547268576415222632277338448328531856871521718873711611222221761763132141731788776444235456181164467552215375358511884235845627265877717113535243243653226375218453244644863577468735126425143578818434436545188838141483663832527432541352457422333177841213163772633438672278313276147235232126358582235844842766541123546444138655838233624412132734157468478152624237566176771138445843487868142562184652146221761825332638618435541676777468542234734856437461681735414826746166216563825358475258666667453735515263134656312877452137838718431613826153378447374183543231134614153658686532438435481713863841125452326671771481115143181181153617586361148185155336586215367347787474585262677876536353451384761518635842115563376628835622717835557142258463761238282734521474586452343871254866773636674772847553356645437884378658834273133785281562222872116643512826721765452227486344244825735636375163267478887573684772335814688865258587543861831115218485822717183148464631481587777324723161541742454737546562148742828383146187883343786433583246446135346612582886763572441725535238433611531776164122232814536226736713765514276375457655778257731267451162155483835762325847682715356434216756748483225778647485521333441225781488427166587143562384315427854614613278418211236463563115511577615883533221281544881262428274551211168477267232526611513427741821637642458872688436276285178142774515451344512424713423137587766873437258366485865727777543181345654276664128575754348158437163317323881117835227628535437112812441416414816234152562272678448381441247217526888756132256212212752543353714461155635742558341225366518576181613345781616541558253573437714861261721471742485381645655136121216875883666823422243718472681672166236511862371215453362337372545868586654572668825222442776182685322846314337228411654517274851242343844163782643364474863464248361434432777617842181556588574277221651747368161366882327865184765532272117572678365556151655683226831782656735332544751872257436638725642481881745386875781614164622286412281241661444528658753735142352567653436436488432467756857784647573472772437161373627474861834758786642754368856335234386381435312633577112516815438457253286484436675243311181638272616186742745528734145641774768135315155831457132582666721864764115366731562344211367626314657264367852668764871164515343718283628521674331337442482182143858731478426846878383238118373338227365277538224138118828554777468213471714773252123825536622428145472432416472654522742218322332866168786435357376166377875218355158617411113432117713286716413874742372452762542173467155486351485531433365538447355226633154264484236134554588871263715717385684764467583628527334674752686233318724634615534353322764548338535226546116258355684432583472445833386854346273417422367226426571715262683171177838626244746211257474621577383242174484748255336172213867313586782847382816486265383241676846385476325112422288784778746246765174372788641836463541485615478654282847827577325568278458864541858754312768552115684346833456128661762147113761111231734136434412177258628663374487546628863461374116137585538845356888875781427635318137277733168737673833674224642221617587865444873243172583654475555312267368454775283823848383555253138736473836413764765665626217467828366226836774857471548838666238252573735523615143267151634126532456638857887488776343372684124855578574841778734258444373371765334848133177631142656175111257756816717725548353485763161142584874632111655246286648123687856411533741715371616377371551812223336316346645415711387321417685538835531852268418435867864414864756476278185843556258556156551543852648345846882577448744251321223446867532827265576432554345863367662484386168324167738254457445863128544722544646136117248881477358361622465536246516327824137864757788646386677338637235347282263837882377622422855465885474357521466362734135331444841585527448253558638712182745816855273823418654384264141324514266674663674521655643656745213338857181158572243776758233444643518317171638721757543425456431771677256836778852312614841558334168755247835482687455841566166563458841738147776638271814221767711464414415888322816186177234622337768766825844215465171514643775527264763157545172381126472355877654741213656245132143756682246673666743778561761574535262175743126367622378126172282717523164163365217312823227136277636843326551237837138122822518163754782147236821681312281432137871428531141743578228336148248643445168261825268187787462873523867461157256438828754551455364656161246667367366742867618735367864645423818416156244674554771543627336276724431724243615654675156545234623133121345266647625286542265384217528513221484832541312285425746655575814621723837654874523763438587755333314364131285613881384851646865362417877817135124214285336538256484377744556165246263466128112411785268682464178363628137634765825143167375444372518213542625267477352251784733641537842723316745367553533822873845386435465255473288548446514555271584147533237247668364831485564681712534526188762368458465128257334484525824487384236774843764357764275347474873156742836278312255231434778276283543333112648721144143532425731255587758623565565641688711181263672464183151274418465412277384553466836247855183815126835721743276441264526723111672171228313382846828172363541325171112613182885274173875841867263341426776665851335223717462855271237866531625628346584116213721411367527381562153723734551788531536455282725622164153465454414264561255446525778784237641757342388114525873122181121842834727857555163236548345456247141488881642728742252686212526377136823843285735647826514453682464763733122385535374614146473231373555837753823511577658456476424465128485783114767613248757455818212147284262555875316882717187865771568576688384734538668275133516263732267187171581137652325366858848735532315155137511642835232733615835756468878488431323813772728122287582486885818147118357535487323763177674335818716332152661168154167835426626386826788535313328682544756124644412677636866865414628764563644654538388143438875847534657873457727743427652525716666737676823464825253875746384766446365134347338422778451751834677312474468288721857861645735261657715823838426573341415675362316274452615354117412443567712512876382233657735265476413771181885584716778222648353883346346183252613176168241762732722253423747865348845531573453334445787168533156157622345381521132616111664531346165865182758822658436588843646121566776567521485337654655138437545773246157767167441715124654465153874646433838373334582664612214217363872234737267377241672468788683577772752644242563532478335282216171866117523441761614336522643127215866485736463213233845728737644212526656413678618163512271852442283838266242228125446562626837743716474715526585746463212854385672171552678148528326243118448663871683462462113185371677582135424248183281486463611764281413612185612882687444614357766874245114671771518141172213158624717318433576247713826144341877457765477786526316355568168624536823556113655153675342824873316114121476653827883484345431731187465214876737524568553783763578385512185348767724741726714157556217874515252144278861547528475255654771486556675363174445488872514682486623451183852316555251471716545327631438682832357541574635386585138168548688882446112532731546748723376853523623131253343167458481688181847881381363314561123828687557328717416234531857656627574115717477238547562666287468824325866311281742377412682547246645813241368112235636815636417673243557251751571154615174625258573735522387453465516164213638676666288425821236683851462344263535351858452532761766871611286156352154888718156641114172262546233435834572247523524638825168483415855178314255274254245618557585777855876158677788311772416823417283457664512172818154714286513883136763388117365731327433151225225763683613485645366116178716475152337364373744462658137514318824114846364427722686585826157845126416214222153837344846522122324832622631516885421772483314433886124857824261718486526846886342544181453875626663384145444735181466222165647461716821534617214722548356837735572274283323741383513245444327442656645174168114125131544873386528353532835512161661335721128477363675558615863816138677678384131865521177635682312848364363336438681765515635566626554857881314268822563715357631352444213348363864272467564434138841432635358645134766323733245636741873115141243585834276557737412568476142166873272561826351211824562365537786112327875522388356724556761358126825611832767364113468216847528312442545422855135372861264823624758678877161674712764771848217671227216171117485362746517228884866486652662572615551866788745742272426681817775311117753787872256818364335711417575851311114881677275324812642558652777585681438327846113267371755614231681748441785485718213355526115745785431578687835455751318668243488132655224677231412428173566513463387726385774825133687854371524724315612786247727277571817136477525745622345787563131127482218637212461654744586868537174255787214122177267384151174572164253841143857672212673641218116227272273264513721874328118875287612481764234213767256257625312667826864884415472864578427548626515852451767813751225756572458216313417555322387376757226832818546783345446373261443331824725738127428161685672623146117286631247181553388756685666334753226217166638137624454531834475714224882332235114216538238367424836383275415573181324313881748842646565763432787438736236872772613138522552617247782572275131786251622864712583378237822275261876654717855215113183774613738584356414868558156165324752645681783431727733415128626712845275352314353213244612573351524732157254286216427758123427138473675181575885644486857356165624672756465852235331836453638351685531877143233452425266115138767431175578518412623736526726614423282748355816167127748137415726713846878261544156581561121567845341614587243648884122673445311435463822713266633282468311811641386255316581864841256747747528615177678144217363384638471737464843672383771517416866764757552756184321367424365652385771313547754853888437851436363716544868425722771721226325858781554112823412348122148462636516538136837844738632512525784242514187646442821454512434518174232637112723561626744683728627712632447681646775131215476425815677788667348177387378724236624857447362712761316284643166385672282138825153788518674156686832651521477684633681355651885644486245853638213247863185781332741265657187868788642558735434678482564433386775346568443872421156223223252888238885788784816662381273414681323377537214682368255773131251258243885725872275151348627641435841241787375561676711333264826517282867616333867554684662168476286183721251226578127272384888625821313184116464345754858158886478576776356814137628775471175734653437633474584832868567273753387287166115132431623541168444643233815513716555377647724366616626577217145616335686248662112431287864378721521756461117214127133476871548581245883884312474373287886151576612356343641587576813413264838365281872223363782582418482852477583652533837217823764421565474241512432425742511557615638367482118853254445353428751433428734685686573623328657333343282741321546882864252786621625841725723567366451446635157128371152311664452753874216717281775782638782386148814474652542536215877424641842547156428363235723361723844545616212723621644322625317353624752473632114167266187534436358441588552727732315815468567314247866738511153881452188555443754552884721585571636785346542534155722761521774844573724275844311547734556534135144425411181431253815467721383464766126673785577778185764861767354523882247486341846581143131433855311135541235836575641828668834425284447237332175326818872742863478784316741815316884878733821835724312683351771148434177471173551657724725781764787786682318365886778727414572821515845166858258514176886342411237722325171553223537727248851163711543716433752714582473367862823143871334678456573721627272448344317442578521878226785574427428458263177541384213587225334166668552531481188116436855477851324246168165244755455741885657475761563461154185212685442126535123735748745821542427163731574755145628661833656717364554673168378727752815762527342417746713317855616857241883774182535713214685235887312466445824137325236253746145742857618856131622242567542253384268616512872843237854615676576813544211167262542846376815331182155443445232153246572333565635536761675265141454728818735155517852175313723425884584474171211113761457418657357614722336314122867124725486388736327227848126213125267424124186635226862778511878165863874352671312168754564568245482686737863184856513858123816246173662337684681412317816363677845228422872347357175572775213514286715883734238617256131612662257537187347761316232412563645522372772376138651441271184335577672831654134116611434134536772525625351454852582232642762241358586132846838747167888775886882427281375644635283848826123762621438234468538217113184365643462572564811568441356233358821866282348411233774876358585484557866166674316382748565532741853646123452888534728333552636432363862326266635176671883266765612885783461711315678438653386456323788723583324487432384283838267217258115187443872777216556271882473154553154852238156762275245871355671646248132633871187672866818444217788652524818177422318661674112856483541117573334552218266344138737683454227421533753346161468853672627648551571555578256351352581453333745564538274766482274323355358611857376855147654563181183534254246171636741622147144121174485576341374667616566347448516653726512641113541887582412333688676137368861831876742573785622355155542446145244478684548722517213437368878561827574517588746254566184573586557823474233777281626422541585322223426516864371452661824541262441468221523642754626675741757613615577348511445714242723768235166615435882636774367246488373586227351826286472867388637535581363115264473137774621571141515383511676234214883134277278215735653622111227527571514473111543727146257161787543313722627763221635156754413864354285364747638753864526166824445535732224883838832483155727838473626545814867456385667358712426678148518653167714161753638532216666683368536126528382232274365548368562235546755471584727215465458376115621185541311677265622857842253774471112732466388531783273465344483558638546843782542725262466722634677313654814757811583431617877322742774244621122141474152526347388273567188617513622783824628148654872677427365544373644263776518516444283821531568518636172733651385524712435578248228526666533633271232172511422181142775247117486276471212228135136875455163767286781527641321521374738136374218558322253784542541823582331356362814128464726631688657541233838231247742383853833864627447642621412285434476371646678288853712813133332741575315568487151131337317247322145533681615221331134761674473374817747868287821871166182516532188773231745583382414674511854151114837677287537334763733875181167437885774384134211151358835632144818144263643153165772634254865123636144127371657832162246241422672376784223354717122786272323177326852871822383761126644565444272537333121326264863617132346464674226185223811167345224157651738217526684182188433511173748887578386166265361271247345586483241741113721854642752256415211482276884336387363215481637357167343637152456381216456431232684538563368211811827358868857737371214441157217766511516163842637457762834745382158168772763146757542734775324236243787665835311634814381588122683648412685773856124221268147814837747624381353864445163643514514458826126148412726131185323468774373172453383445754724155388237365331565462776867458425121531446566584732175443374835186126257572211381265718614183312671453712112137724315333642878756563821127387768266468631888531384385366266541567211743817567657673871556826574862126124561315738237754215868833634115458485565557483471637626581881213612265486216241374615462267877225412547267548577117345267852444844817682246761532135348611845321616245366123143245441311162683338851553754727148643341156873272764788264353136187183165451747635172865186368665265453885648518717862131737681317424478843511577331544376623741652666322377432762876112773134751133635463372258423621765247524384256764667871438481574267886125447275227166665525348753222528261644765533816467512244432373366337724144835637484478437626641843672282571644561167516468611785761548464525862538156681331176521575128531184857563218288887628634743466546833375362852847661313784147752425341544748631464484563874738561762533866536573883141424456121665524822262881256552258362664741858441564768552213175622875825522426241226248135384863726325846655468182473355885457481188678124352337273428614725655435861842464317722133684743315528713466611787261341326751652321257184421561476172623354431362346633265282286865744676281273174756761351241883167142667485684748122223736476784367541878525885484372555311188125546534255412157275417848514574634187428631435221457227768386335634243215325546253174757446671253366584773834628623768511347861314638767267531263545163287681686131116578413428368846353738767566244518541487182186373552247563356774718445324288727644855728122418841552648658646222564723685742513528384338781577445577754314254563562582542568428567118411835188325362486244742414875726561746647331571761315423812268723557732355478162251412458545284516388232735412626634575511728745445464224755674426465672654315851164255647716217522281133254618473717478335553125284284526854583474887721143444851146587753368576566435238471546221737628543211837361754467182323116835451666638253215213613741752211356384667678661351322363425586337167141575512543341467418825558126737572183753776881631388752733276532341583566863185681646778753426357176342634811278348587271483274887378258228346767734347457363332236118831525218652153887372622415726676738828772656522421358568241574824726462647315527353228714827111558286121757175772268255214122746753425217663351477163354632515357311886754171784256578527475171521678322438477511827776682211858173575435443883875431288375177543862415818884883186623657822375668878141836123483764685287333551547253812621821866816523122377842754622573642438735247428257157881832256181331821484216727383278748155365418586533623165714778463437161276786226475773833177834264636455244453261355644653425518838375785847225826177541452618583136565736324716462383337268275184712381622758166262462887766175456352371253231446651745683386512233132154466126747438158355515785788884887218853483418384455111241185585126872827767764876144267277713415768527461854412725283827664172254763521313743831211218536111882438681782163132223238758151125828885645428427688578564566257641616766328857686652278633317773523265864451726352576418446285243138635137726442316817547864448442822285874678575246566151554168857173377615261754127783715823468344372118386362448877337826763654172848878572335224626264747773357253211637856545626331474368255141832611486752373673632754771442244114121756651628152884378173214312778732256335211181425384411716645234411183571348487516843681324543874181124158558128311368361732281286357761485187535658286875284328515147187553325572487653377368836287684458751167814771665563262871656267623781387645528166183747521283135112732662824487156112761556838146381127316322137435372844336817686487785436316121648518547348174424881118438117648251224625283634771786786414235251748311488767846533362678282667428841566143836386288456333211118651426182351676165127612137718662718427323187685353684814655388431347266572122523883471455871574227112326438381678873688883852161741663173812666232511256458353113246254215378563328432756757655848634145361386235745181465387782434517142731121514163716813743872142823152764884862348646821876176177342537874171875548327413672375876136784263321573214824848177365865521616118754132488573552875548661647144535188217636182856472347178484853528431764278164773573152112154815825863371274328347658528632633321813282175224148575136666848761536826122384765783883368858513255856335565522257227454855816283475777381458445256888854552831744128757561414628475362483253746848771344354623651856653178433723362112537565717783268543573425758568578346587374661234248572664287245636476721256848131848722741524784283742563324837882731821643787214467272523163467622371414388711323732881856811638863524823884675668824876334416851327771246524682241614147457751878467443161236352882466222667723758214276381582687514322287641873561587373843218568167354785473781726224517586151624458587113188742428841416177741252127588888548682656383662443257331786753316233164361636447651554338522717237584836151411833877877535726516356428285732825871377247325645447648457517716184188514112573776531263624162777876713814237123345458432735673467625125285687132334233173551554333811231785255185475474615452552813122667173248686282363874641842714176474718734224356315776741531885341786366448572822486132784551675734157763437225434714854118744476588846878417821152556834527626433887673333182717151438441328528827653875855632417246152771738381123471662815152533347235365265874382858221333553587476111387452771143635334358525853331456763157722182224326877444473478163147771655474875368123232578253457215731475443171888163236748254532725824265433237215127758674717576275252712182812123866534674533726343271458516725772432418528562212288735752584762172788457314182371368445664648713653287838145233261862447518156483712562273486688476576114826356584552645672821755221876177771141583334887271733152618424883613428452716385175341172181271256488332273827122626432311387811316346234123731153482538227127658351633642181756663725484216538232784265844126773732431557812785572158553631825384187223511486824138542575263768265657677434175455121164587535528781528167466672854856173842464848182667572758142117413464511564241317725867568458866213621647767857336888316258745432511345627474874331352643524637575578147582185278225878317772336755335785651275287385886731661416548288354272657584743435258281742431363547424738324223717334475237332375224214183224285184133655268383572683218471516715278242465862338417484333374561255761614211334741371778764737513158226537337318444172155214852867558268683281141427381517664857618633567577257261618421376363631363586444821727774683481774657781611424513274628668815643225664715713764257321286754385314841476627114188877513357376774374872624422587275843237633821117414635744613526721111534732533178423867344686375142785377187486835882636753556732122315725624824413346637653346524614385557126537562712567558727357656128471213556436658223214536467666685362626136483174385354152535254481528882637846463514668528214248168667832422135342428167158141746663155384264668826531385868841367678875483756327177273461434162431187634676427883311647641727637346276222758317645665241377652175461173834865335813523217143222555333523671223461477415266567421811822286874831568476684451757528512481157447311728587881543484822756422866653545412857572877378222863266713254454546871268667376473486246238635756454266284628336663843656225412626731558627521874868312584231317648614333284858143848687777724348226348365421332375252138786882723554477131638527141221755554346357713565314856637325482613246473268483673778112744451222585844726435781247158814415187244714786541776511472468471678211542186717456216751757665411337187357615441132473455878221323637534181542322228531635327321281114224837265376881648262163787858347632254648445268286883348145638478384655366853862267253643213751681733456722115887772655646122257746658131817484862116676388264525387251851651154835384878565637323618784531213615282281227476768248775838856873563788476825568288137337781478715742386144212176881473258366727187884587125273848686673566357637526873482871344211568435137811338686133216231322468378582343172841622542324823266655572726621772644764853155148762138767116254125582145127527265335328688374782312213374144556241377226744281421217235316662386181722283372371461874525248857356115821348246351348457573447778278677728434736851763321552148637613251181274766523854676847772328535345358743414356431222611582541165277258555652814186856523337442638421463887285664851367512853272633446316775428714447117781778818323153637868821832637227382283784165138783452525357266566753638285785445386517114527374558537427157588784552123175563885545156758377234448552835178137658754246275667213235877282285632577117723858466746815434621871684164813217854585256481527572312625775213657174665112651577468316784422346754282752634653586227787115248822117254126562427211856453833635733515814331348628771133386655814855423733523585131838237518166558761221167436516281111566244785642434231841351178651713436873247456761561516521176233173431742247882647755264778462568778858644243364758433422434277766622683276224286715227161575463182137815623743231623236852584464536437866127337168158644811343366127472273573356363246584225522384647822771715518523347366738138168822715753123562553375165167541542328464743788552851463131485245334877467614361555267532341551254228652513838652765628758462574665648758758774566185647685718846567428112848812322845421862756274633583677344565331868625767286225475421252675828662234472267441155616478557225643863117784348354471738772283437321672432555457585548283471623122881614826132577113633631613675761546688368573481638583638587642782257785614541678545877834317554436216444415134185673276273687232858268616228388754647356336211113585556835764316771563315536583552174367724854637485676345662827782388146133265112661164582788244163676471614874242214664421314722258584362668151862484743778337223163216168144642442832376868681167884562233616552321518283762837634756661111422554374814271841473754228238332254582148154727865227341268753167533487311673248737562388774147561516486162476138745161655638555313823325231834478683725885856247446447867621168615547744335821432165633414277747863446736887112274454354778338226166611111467386382734778722631486134734542466216876445326275285567827163778586855518216722127561163736224741446663644183384142254214776852112474728787223587328436875572388233362251568877321851627766562482577381426362261863584442615521668315316641827872337743513265817837435718857453546181357331532372732462167568734481235565674523462518713238727337342414643682137854813235227112713628744728888385775185373144882763717886546575634311547728367452413857613327886884847436333745172343711143487284655285484477873767247328238124278668814452826311684223235616232264622264163653737821731462771663732128122354344285865873622487437638247344474883481148322236561831551355618288515376778682815818651456536512232426114568761337851885625846765167674632674763258235757357685868316776544187311833165466346584434112466735336335333771572241274652817342565265487743882672711763133854722185515188855734171167167423851757378474141628634711213822816748576482515546276526344215163747412712857178766288438721424458286443335724667477826818621253643356657335412818617155124686162877313613323414171455154484157853354321523523827833248645721613617631752111368133443127566343564333118826143835336634252772287537848436118112234865171234144464328868648555345482187671272337631323787318714153858687465385138136113814554556558488313538233613123361435542387846776236111147328343353866656457735225783454255776278535812326156644823835152546834754345563878524173143348561751886436654148667643657853568251351511346416134815231182848565562488428738533521124774175188225452814776411458561525828277111315413452262724761438681525475116624668776635163773648481815426747221765137535813746676474825511177254666236774638487732731456125817444263517871888448238332144331142128476741736447166158261281864263772455545855662335822847111237515342863254672675274844415438841572334326755523786252682212215721621742436655632446213431221467581562721285658753571481422234573511458464146183121156164777842363128133243713214876254618111384362735148436447883227675285282327512175618448718232656272462584422521781634322314166641883648751863548578727547521245344675551327373317248611462586177215737861314515481856163787563884264822658276385377655634551545858122884762111615277641763426678677763221136757472713858866642211184463172734532628872567812123787832246828443374848186876265445838248717748647737734438215628713634362816771268143453433864553885838271464287282214147414556725875763516185711682183513655334532177145645275152732142116216556465378821117311458224422712237872575433534164118832131277182478336751261366664237137625222331351613388125648233513164382474271811248741375358278583578734322312182663761863582116162645146244354526454551566356163334438714218336163435248874551551118141431834631641862728345116624677388172524355848232733844613141575582611715161641721771327533357513644681857637471455587417313251282526323775523338874675273585374436234418567811515843522567165475755866834625462832854717322868114611184532675545442733354216177224331374218454114256458561245856158244334271357468172637322874678311634222823456335584116784328748828337288232834171551736837723362251641358453457273833525464481283356143855387173175314811856175367678664861648543743314816361517145828416141112145473543271236631887738143728874227548456446716886746357345214383746788218571246527853644861458444278688624447766557533835142673167544275625212727667536281155833683212631346588835685115717411446453386327634537766174332172782437426754677747682886438517473516148631768551138225838878374644128878626373482171661227153224525271223447453551374415871288627843124337164385184431188775626217416448813113528653757645766557418628626827871716678223686123458181152724367357873581431213145154126888123724363338468288551655736533211152588577435851566518183713683718654213123624432782686647117154521836845776371156336666567833181654428813482217786164476241216878371846283461711573527318185774612484783135173732654282111347678525164844227587634744822556484853425528532346278652613865275561573281241855663315476731347562688517381185528555188442143488628246175672814465835846741186628543727473244376871141422187658374365171414538274855686713578516534712427567555122577868886724574522463237851222146811711172215524657741513535336137267773588822354237858268418772554188355847143264138525433416232332334828681614116535257185767611813382821652268528114571134785752781548625587146154213265545781865637665885686168575563137366161311647383563846812558437235518638711318663636324535478317567588275216231513315655873774346756671312682442637861454713733275754841671722555147254514584768154415363822147328135255312457361371714763674465375551682534851158645883256363567124773543835111572766158745782568147118888568223116677532717635615263668575214211748517458828178666638587665183266784618282116643316832688268282837887524782155143335512388714157527376425531715145316582178542484782534174754137665374252623823113223382774274646235322288552758772112845363344134355575231122868766562165185217644352432238335863381286666383757348273386836431738545728417488271758255448757711355733441775761456332743427768562722156635372323653517716388855136313665264163135375756453345838325588766733215331876328351713432151114354364514652853774832862164734338353611763867852124812214687771423754417782256465535456782366178321361216333646281713182825628242357167767742137767776635784715811617244875767515188458137175666613134583665236383344714623341612821441726136736636224682885856655781537347872344556635874276822466221151715116268717186211753868482253811412774764561381466331368272272288467515868167611111244628834253266627222177455266347428471785763414723877488123316255783748133343434388735613144426853837747142444573256683666715561534315188884317331851733528633775873452147148567634314532515871575582463266234666684256176262386745672865345622172464738253442183266124355786152865147563764664856338452841322278678232178543818642377548272161845557766737187633866477413371364736324653462835277525432751754833532157864853442711153385141431473555352447443681413412825627663628321231672612748151247471853382731524572458381285876785487726676637753617633628827683813675413272537887667611612147437612723737151751374254321234847315553533318144253267566346741246383653148151535423366162342336653184168661771432636183234133615664161614478222451661658163313866144714228232837111763731636884685633754647537818672155135774821543486831441241128831211755243754214463527543222774581565651113581547855765684862831144571376316351756384861324413277635431251753537234326318626144414617731562832414813634266846484535814637831147214536651844558863261531883114484847328161133188876686685665215366654352462742615165614362542735461513656881666244721814167817455216442281734524663653266627561657462277837171516748253584417473278114566462422786478634732646534232657885114851318347422572324434518158336732868453884638851484712727421681546448745867868168225864675452215856416184876844423628256652771133673472545386438612676458316878253152822542342727876378775463485667568428224862761154643851755483248657366463515577157413188637618344267414362811373273572122742463858386732672625643857736822725171616458525356526528482641522131287783424626868626332566228128184544753824627358888215533482112433528877848645331222361381587611667526317872272213116635482822675416717283311186114744183272446853334611617627134467774767512264563634685436745843486474382225542812441541384575485248368177548311442365315753862583278787648671482528255386384223447426857882842764655272822118153783458845218173117683882762766743158551132638146826263158335661173534616471174743531735734382185835455211225688818588732762642231446856165514265782665858123813843318173511623812268761648536581732435655337684817471224244783545385721321788741655374767244258754433235272765482136163853378832165155333425662434717111417167232346731737152312443258851733226316168643257355586473465124335164641372314718128766664265618873324352247538531474741266384852251552475345885613156161466563454471628828415645842324347684548187126618526271442264317234288287566337756132245153151531158877412235561371155362363136212186543726871667774426224424731611162324112678534872353465755576688531882766421775616654785454181153722114453281437288275727884161842728334551353163681848614272863645644751476751726761447835678851284531377551648885181548227171288322356778748645314138647422447161862511182132538832553115321134776137646726668538485763485164143743524865238252717344271686712146165157577254431235351326163247444545464876328818244263768253584827532528257725735823266777234586141263754313552244131724347663164162124554416631144275266643156438332656784466246522747218214736756822367664887321411882813452737286473741316737545644734748178485213184775467888524884147726666243252681244643354651232511846237458678368784635787571737722212556522457486461126771531423581455216828657162144437452588528652248531113611774884648864725352532485412438427563546288572724636766373236144561782212235116476253467477682714884614824425733445472886652533172127271678262172586475637877253465373852734548767473645441266573617858713366228136182643638346324621681884326275885721188684175153128877115331886567243778273388667533834236333646131124833868516325624617116462175673256251211412841412722525788864358642327155828136725647226771362815137541237682148613182465263453653473186833246774254867544478422636142445626481572838354618341273784137365862625878715745766585534844367534713452112586631155518558646466513648721635865661276148171487727281732462628375311672651716258174627534613532732586763713527283532474424446636556238476415822274873415841378535325753514165841345383443442111382777715377563367583747257838855218658774611886343626112882487865811585822622126378875774881374544268732118861587143687146772283628663461436473384653237713838852877832564378277621631127476862126518363457476817662673476144845663318312155616561434647123414641136167348511237767317228136487212764387328838723228182681141751117144836436375383262132116188751351424264462681823226423782374126137244551626774212521558684712475385441528766344465522257534572167222831827318625873657587545413232134276524186671656462386533525625284422836252324632837572583752442453313138332614617432372364465276217517417547665127313245653876567125525348716374122846577462288116525748326155227378633476315262581165114465154582125431667855214277457712126442654864636432828114741382458284135572545288156657218217824881813422376863447222888718361426477486331127837748888745448272888347162238537472178531275283873424876751621528434886161551547756352837765584134188486527563127311414351568868448385643411413843152443288253187687858218826716722126843557534164556476448126417576861783653738875531831743244612365442473765454576666332646713841252811343875843361118774155428212812612551255182753747751363858728876242727313245388662765636617363844236533554173746584756424841815377511562845276845822321672732356776431634222863261313166221123681414463455613835833831328321576286631675213163436685324215851548878146334311541811242522214838836737121447213351364233423516455734316421847243346358567527834474814226817387323825848367256265223344682432858342515142723518737137217421223227365568422778422885713524336227654277621555466353831252672118732848726563125451614685431336321465153761678382128257612611488415517845171528687513161841646576716587186735664485418551224768541861646428555162312223245338371167618312863248366148463665661364744645417778415771683566783836366442687236174558378312881851686417273686312436332223178765715213886356654713216384382378825146415112434424435134231467831542748326221252612774857182554315155157636458525361435385247335742256581235144377331838221144685426262755435551384154175756776434147383515752852354333515354583164763284666552454784712836483381744253288722666743284487183133277551566527644136323752232542538845818551182315843275188221168154624546352472633111326214821823155268881715147318831332623482766874841627222128673765635571736125528247166345323368538154136448856572475768452677337814373124678314227612646572472863377378615343764512673132335423427242773327281612848857147356614125363664481257323815478225543152587525154746575562166187348522666237612745161533431211682358473713343474672614124244761585511846276225644422724384372317454228736525241287176466762652414885775217673462266818355422658727462878726123848516532774821587184888737418711422145221577336613282672423461513376885523323673868746155163121124671833232486451441626333312814442432454664876827151388621476822765826248216815762466138146435672741455175773426263773457667335266273487672174387672823468288415134143727572112476345672657267747843874647528434157332257874434227223254115155421723135421553844453774342556155246246457411372434613217428734818388185583331568116886488167535161641781133746646416746341264337482272751634365163444145732755562778531211346821722286668555678724436556587745537626481843221262512337673134677138434238456164372224848352776256718323834341338557858844788275762464426726851515111852832856288443472733487448145712115866573533431521858714375565733828647656811662724681288352585787627184771456348675682376443122453768244351671247473622856235131127818335161655511562434724336135885526688765875118853835124436876535761744318568552734833465751471656617288156618752824257414527571321216663134825766888641713227351136764167165611118141726118732585243626128351352832113773433548763684366368472241342385318253216563866384817182224128321743753466463163161848227281222212477482147413525575214183612738144441554262124548735334355544224538682767166182871578515131247661286471246823677782653332856478518844867326381131313215417645662326618212436511537528725586631832281271838348468721783828372375262778837763568457487488374367484578238575532274883317746234663287711638288116253483376166144423811164553538845362565863643682152225377511283785642215441416622484127448265424175813426537255812464225748856422518557271555753888177257153565683615433455612666675117871834513534174186337482238745348333658668746723245582664658848778721474327618521771827178533276668463762388847183644258623682464812884823774383554671627576783881158247486532857232253527356343427838477117318677584555452776188877436817685363181512727883382746688181458553567528481851278834581288312856723644681475458158277214184846537863817643758451348735312383146511411334526168283775163712266786443536657331851385553748653313653676148442544333758741415713148476777688558853315748487165446154438758322313313757486771175651784646377115332676233726525242226351587485535763273231873464356878117544263626131153247452476672552313431663873174158851618464538731268815711214611266336773283735752418188115534226811284571454118756735335555877637454862824125617441841215761234168526484816163824567585242354337856585642356324662237642744847633458623548231617471252412415348244125446151286535357458315888821882213817576846238875572667335325245485341614124178246463285734858564688736818427337845835514166573858513361772565138522648713532734652647632558257771622213225464746561114335712676427314226468813536344366837663171411838373334347677613465842741851651657847163411362575736821573447421174777277875741324872641144553536111788347527555524784755811834532376312661275644721765343235255883671426485665214752153365546243166225554617874461675818131544422218322452251684332528183244553431162327218848362281718621745258253142553546541321411368153344851344586557263812142648322355727452562326211111361125646767418352227347638615683711875358261762874464744364813873147371267711187215685632173847153746738321386617333412661862644627862883178451771187861627782221126373352386162642547616183825684373378464742626737357134382551855874482835713285877441841712767133562345525712166427273358215824332165374535733142768664672743363246474746176182245222346481423417245536844341531757843552361522486625826457171253124848763885782154356868464556457757412781146318732137162487231572133828678321383413866722582238443381868887836843781278388517422422224614554714284222222668571378261547858141426815726858416212228748512513324125253728765285114877517735166145652613551765163232888433688418545716738565278488254267144642515256535473786416338712316667837224443852247848277737855388151538574868261824518342744148642664338623345817125851712765446324446375675276687251786174578326638153582275444835675378717346178542861177687787155581542842316767864533163818315551572445636813786226233523111663426567281482437151678681517634663438215251184468213163738553621121641333488715375687837553832611674714618551277454326178138818866124454121135541868336816886851558664776456111164114315181456278142386847345123471521176238446827756212132544542564368642653825711272875215366434556582454655383472366556771533555312217671876285338884368488414612822456245822124528643658581121228151735834186254735711736448236118843115425187557137877582511371362562781111422382271545762556348564743728557687862536178835531586867826773517164224587587622471744333866217612631241815644472522654148738388467443218643286818274348227127652413478353337685571174513174816623852554744323547546673882148371643788241272546467632136217145761258744768688316771671361241737441422567444374832686633317256811618756611615264834353661176676447131767517721371313348447175426836178788367165153486137735144637813852575448625664476836231664265436354785737812326618323476561713438575127525756426125362687637866582664535117315117312461833486156323343813443124724662362612176375625816817816157472328175351587735483674172647586777484588355737337663271354771135562886522712641467775476564346411365887764845152481115438853363881558436576148387155587551776773744446182466382767424248874363544645422357557744243633322625665641243445882662753676675556271451542456843668822376555721115747553714167345836232554283763454211246524157327617868178453417475266827838431717564572274521165252744384737528345751577686754378538556118567112347313862617143655326887514114347745237188568712184788521522522116576145663618728884815534386583726532787628617553821263362127861683568182557374645668115864737786758728872328774126833286261126787468837258714716565544867868528123122734624762425148233886817425327257585673531785324578376677886613433661188168312438134788687835845222772755756588282367213613786364223118544818575423738255442748361566182277136544527211725888423548855234544867476887161231878283785317438732371166574564352262241447872734638616351426718635726657145875448178375133774444182356267466877742771871337468438662357782186741175774764311251124328785681845624287345666482411882547116287661786671224563471438288158478822866285827331674377814861874463325145314746762318756251717824853234465745282888575366327271343636163324711181554746575353154476154872162132784278834536542548345311526781568184553866587452873271283768485182427722241575471784574457317824235576762725163728276638461238348766343183518872565247252844465452776753124168736426882155212614548834335388342553753137344222336238257384278485376351674713136618322221344751188674658746245476415587228314413347423163774382538248531466813817625532875115834845717425712288532782846224416787338741127314237113864555686443362726535453842322674711468618636825247774644763612772888436481778414347373466616582677381116771482473372224855214458744525211345154473211386784836572143251282566865283378667237576647664658813568775773626518154727251536273418174558511222733272186728484434318755612484367582751248757287638561717156141518652463357743623548676153766874558653654448726147665472367625137611565161627822658384586857252588652825557455331836345141834683354546213524244846267743583662884118485316727873516141118363538886545173435328248554552274244114457533865167188844168757368345741218583711315266563525158558234724773231251474187421582447461753217226213846353755714155457333321112682686882363424426143763782783632857224117358417262428417553733675216517314851763175873444777626333151877864557523272125551333553537375231682254437341553652527746675818835751761682347663832326172378243724486263364281284483657582475354461286131411525634866326564716723788518358317847114736453531328317828724452355155215752872563488357331362566738158612488555512246836651776226727458585121377587751523567788237168585117782246133141117753463331855433822146716727787371236526273735674855316574434828848561878237783258778144546848831756542152587873727427773543286242552764688477438767656666186621575438787783246721655833687335871283737377687871816215165858554544424342667565526843558745356721858348223866288558764445872338172676585557374288676237386426184253573145563153837647143482182577436441884381353783284433338557882242817434131168175488438441346137327736345313717324867418218773572154685122363615252518475464682587133234431487578446874531866735285578577434253756452822678327544252621258642836233481555257878465244828781578363323365557446854444736472541534555468125836227662624462683415767125183576717632814317243274432338417733428872268278163347776571527461672361554172175178537283314227845178284688566162134548841127413621516646564877151272133715553522443174731785561375258488534873286182245282747543155165834173117777888227858414725888542551837412361758614552684888714666431776161652533658675645676254566552827184327358827482851342318121227676275811587316118214131548632286874142182833318328373444463378847242322272123111646151184183156467361385116173247423538585861224142641257455438872381756113234385438224536171667563227728212536731722874678636173481873713632425164852486828536536635573745647854346452244173436256424454138422556717178456716283444771358812127414223267415285438474228226338761257135573287642251667375575257243156274181852776714288754378251236724831182368616686272576518672164233228415163642156824542471484764745652858788152341562671325362323878741638312245288123112317546882465518238348534433614842465622868438417843882185342436543615818728328224168878473623833314481443344823336324827848213244351461354456355853142736427737761466518611846442425685346686243276514465426766828245666115435424262577781464222646861547677338443661245853142215588224883682633868674376341467684615712671811266245241565577354435665748436514324518263372874333781864573344336474166365264586543511158358453687162758375412152422174676522577454211214445227435334768487343257275855418532831564647556182363787443551518413535616433737135172776742768466371756561441313417655881746478227764576221327255187557387546524467425647435352856372127832381486285666228645517333211864718845234717421452517187478146583144666713555657474282185518825718265516867181748134214661328711733153441751811711321353184175624188434125776754555542827185564844873852538772343557426226463834182454516285371646174765428473477323641456155621884471878576734353523468234613463516365221754875227552165312617535352564641615323747522148866438144882823553242423875255623464337483572547523432436812271573516355371514122865717464373311527821157178247444882434828745467361365741465216362414586437175427522716443631356153523832681848756846357326312627866735114265647413714235866737382875582668848756687127664354773142256434175651481717635766825338155765263485285875628883672771775837422461181675726423447525661863475538644462851367562132564331668727452755126644562462584826644283134821477153265818637285561886751847673464441138862481147683447148877831362145888737847315351161138522324525774667252158572555337275876145574152863735473588132546732243762866628683216566248151414634516754136613838656436118141163231866375655515546751251261864254752256672148554718735527512627263388836737641731674832752634547546118478223213871134271441562326626362244235428523647753418616878673866181518162443274185663451375343142653665576761341416748544167448224272735173266224567273586482373416571784662184426345381111788631454241577774723556143213888763565688354783374611122382352314357876527814283323482287423228522168627275662611618437766775617874853442865116264676568844522118452785658838613171316317735136848785361751681155685182862544717476861653387454831248113224511127472257486388453464174186434585141365671176123336315712121141322444678486255277774155734815546476825451245651248642724375446182743187172614727657746832275452532737413374626487842382578724574734365588852366136866121663726868486622577312175642141776165462467631555186362415616475758312218148614371616746174778352757175541427525372123437415187271157512321672276157487317524438414832723587425182546334775285212354446485833513353655231428846762375682882818741176385387852545461718887748621737224751526451685775442385767527131563632846123656786885243681413221441541753184461238721685613624425161223187545625367844574726335538522531472624246647155243536185127761815646657487261454714173672167725351633268585632728376323435327521253531488623412381132362568181122365471418455272254157712611422645778581285611785857647518551782476113122348837284837775342181385685816187181566661218648528627777865341121776511522283745676252658281362856417438315681724246323817812716217556257623465586335375745883618135746388582751581124588757625637861555222317153731356243875214117633212418722665781261437656653285223424363248788415528155626186324656153464323361523284666146667741442558587874683612276441277652413627276842412632546282278655763232548341156271235722511563658537783484118784817255416453485855785611212786357663364876823414684251842631423888223371668571145238223483235431823327142118111323312311221438536824338538416225516337356888518352482342352671281833334181142844774515681555545545544644415568843111536683844567638283541257638685748477468872424341362444283253644352715381582136758581178885836332112337357556718467433437122611777617243855215247572831688531677448268522612325174844823862581312884513674716472475766731176626873834362658157212488142756137473672118844756337174678422231868817225668224547355421338248213283562147621261613852644368278268533387261257384256332724618335854374117174474886535377758653844473578456512561331837611345586144858752228475265257785435555325422464355288716888635877441632361173517624684181534187537562468466486235565661471488248166823736262555177224828657548226424467171836211182184156572584845472756856263243142254422546581735676463686176352536875635455245714241176681335278546176633253784715824353355541582718237131465854222257588744563321831713441113424641165616138162621782613413622275747826688362144228858381257335516478115542755243218287728643811617278743825218485125466487788725644324566174613812457787543134655773211575825813127584844324461845365121673373551818111513848511246445218414328426486244215735718241757467711618327637725387878861613448126157555188561115581456576732431215537236674452127138377132842523762545321336484366812661534775668821118242582687374222274623845587618581416365661258476514568228548265225848223717723163481117843551242413122172821227237745638152163873872148831128483876446813776161335531184262772265576846825677771381411483372167572276564113841146247784272875744137382613663437222817485374735888634862737277888258665281348788368432515131788772447534557517211641862241281745171718362783218871844758877662766427411658561535288662338253148486237263826846236764183168863763583175164435247784888356251217233447624254675234321246838548362372141535614283324444286657555483314326574561812343427271115224111148767822827713151536514225386116153553624582466236887376415726233244425445688123663281717478788674223467884855838258786644381755866211665132322216776427546383786174742312541721115413834524583761242173213245752168452773318276811215176412574451483272362286453234448748864118725243838724566858811744416424486866768452564358225861312651265732578221347661352855642524511141117826111474576332713121542356853321672336744147234216322113665613762611342455745332653761717365613561562673864486663515682285766621344472567824677545771111646824647265123512645111575685628177458335536444517228844423672351182874234575813485388717733657636485525661262517623354186168783143314877665573351653132437474358685748526762664438618848456848414158176321456481466122823377225677253775881246758527421454243412826261631442283755684341731142231454536647427414861181143746131663232555467315462467142425785532742114622258656463364176365728661577128782734461467845368727484128421418383686648283421363677751788718445362612582831837882476136874524622788657741511866212874362781338128151534652358875243266126215276678618264251157647662343551247514474366783555878743146168283121125453217221728411472678284266367721717331478188186362882477614253813432476375855358444642177254454484612116288424335456361186213247578378615554656751576683363387243671347461732227246512715785265541332178728142745182848587222433455638522476251436537257638768121674612411233845315172745438341465585743433676873272332465365128535716625884342566451667764472815443624321442367824171454553728834816145176814662676472845823876376677252548876722438633872366864348134375348632864513812685453473355454657631477548885665316252557111265545644217787432627841255836611361715835412821143844866328586524565237475264348684681383842618132214648265656536566682856626288111371264781428675142217738228636454571521623581712822672384766518836675627534314513341576831371341115246186187245548314856882685456571856565376712487854328268615138125362566323463227241267714816878473341863765257678462223311617326546384272767233266157858825446767487572655144352634438187643171736375226382784656216725348627466152571818288265743284635357784561414482177882242562631366643761816116324771815252472175456733481267818184244465361477633463723441316863356481687615575822854215812385582837186737172333425513683588227827473135514633645366343558561837666141366611162367587724432432368143768218263186742614247156884767615425117427668835126782577824482834132848475865567823767538665738818118826221637236413363816481142548211832515124635627178777783514432474342458738417375254681522864778864126665363161642712764826162657121483171386132328282254537683565271558284857185862286246613826144258674261546284378668136337812124652775848225253276171411261238515471831523244232811547262375812446446268474416653417834137325438741567476433764213883865714327888155853215272368555753181482877753115433617544581242247756112757767167318268578368178855532774231134864477336833736423543781218873368473226715758512563712513587485443632177551526334572442361226326388453378816631658881683415243762464753453233714454431541152317352317644853811453563526683483325255871843344878316555284443432846212386531625642187573683136287428617337186232487822271554861478328748528817657448334441843542473424143843714624356787753777132141245415386725321686547435784688713124548887478245451318457824565763887586815825562258162863426563828337635836241363848183131754725625288647258755245725625752241462657682224168341872551716537642426246155437453122336114463716845438742854756165768266571866667812742647228586163686351827551446232485876735218168462523377888677784172332511526231373377776721558164813734783515614518483644781766234126512733151222151482562644137446756115827116217827175816128731413761167748456127712383182541257215262123848547127853828641763574162861324747341113184668643187275862161455375156325487138435723416323425553255746183755465856254545854411432113478634267453744318464825634432748612788542423811556657272432525543782423232528544826415245413554714622545454377448176311741263311472613224248173652472133226257382523444834533775671884873587324546576538178164242287355514813436672415424177417384128561662872348551158154511381782445563336567224888455723512557488826828333145581546774645857367365826548751161122466536683535353411255126724583618853632542246274281462751825256747677542636144434442324865556832616561714415755868187255622162843655736746182578255876228433236458688343657566583686477877216523483127458226535511217666256874823782537221744182277625347685174163383722565662778327447377753736166424561747873514325221552835547851364247816854353534658723344738543854714166117332483345341634374675623238486288134468813845171417666875585324727322228573771787254851428112288682821438776453347638477344234788152652648151375628654285564644626488553227343774358635883423585744665177477656787432636568827418742446854681476881158423315723616526318747553242816854245434464633131114555746537878412624157387511262333867631135776815827447365183732285527387862323782646234618588477846475838152147322812162687533886641834716122741611574413253523776576636435678326462712784126462736468662347848373421661267524754486334255848573582557245184238375818484855471738182772177412188686533178337377776635741256356833345611231137772245485126723262416634457437315286613814552538466718345187475162412683624876521711635811345723653888751227536624757844645887251245782778348661243513876575862853582371871847638171374118612564774127675776518124123221151317456754688873384883464382417515856213368326653743178425625163234822857841575555754412134347262638425316134281736873176511334266225323876413155751665476226311628311615126838265347846265565633234382863355872473837551777316331725872864568476668412575176675457825773335244517227142646884436235474414887128747513474233672462618126576375868686614124843258826837546871134163733811315387788248664127132438468338131355114138663164577611344744746578286366884262626456246537623367843576366673445271765285156851645178766111452566323513117311475548586783548762181441327757783857563223273121836641773527113364738112135317117668716638136433873744546257654227154487182612658111452746572581113552357187844441546627445362167321526383776336142428233431543442483688676376672721711741454487614644568816632423264215222367634215253228473632614625214132715382724186111868211563764364444641587866247342352415352377738751711663157482586484838764346288876818315622761271263115436725328571577228413271214272781143662335881672388316837125264377342172662416515116766568786874415628753682328538362888574238378517581525624563181351774317283743367126558866343845533621218451454855627574768263382661672383448834265824117874828155232161472331717118116752848725217371824224355665542827178667276564663741266748863722381853766424546782515248713784131635167671732561337818588765845817462348888713445243688342845443851755622382533724254685871582754538766816756247524683347884141261646444171711338385588185166774748281567218347867587563748526867874546457857755672184367821326175245752354236364563861463582866456512437756484811764827734621353623855317656113751347282553355524478176747124211241821743265684137615356768276251128184171546821756153635358845644621137748548234531764166157388662441385816828448433518312141674787686887546271281141547727575832461258511734524225875624562762818174612645216234473154417354212176247363758147576542688481522781511887741754372886863468536475412252146688127876431374214858168384555831813667171615286258263162234434525448726877264588213468358787325456447113511858575533237114515747478881347334857417421882412673482481282182177885636733633487714824618877173543123462685612247511577545421635644846223343167825674544745878148414772226228572256216672736347357343521838787123681155348673475861232375362748178782376842285443462351856737415484688873768313556778544374132261386284261162184678333337781524613337342417326642562511351428748748378481828383116864866824568518146655724328381674271848182813874255484532531588123764663531577561228373482252728286531471238683672665524748877586826134745311545612233624372147416118558776841467382531654535865673217256746644463683637241645213521115655326461441668553386474413514645147675725488315314148288418473174522181318246773757664574288264526483424445628165547862187614235465727728381867128576775553663871252581485283611558217431483652366223263742728864752364371546771112485641522425566781377123387454561785756555727284273154188732854134275817151565184811815558624774888451365887587644641886734873462127111275134515841146385784611818366184567625318871511855323178676372715277675373111186388563531768616312148364545321856473743581267784167682226648414128213428245531187867175411347421416458333482582447722463264523533864764723648771232135143411333326461717762626448627223428557586311181767118351272113825547164614618456354875664431488618515843128164456524277287846724765436314376733452666156852243675885536854614658873387171261148685717461541673231466865158758488868476417272182218563647621565458184415781686877745628277334446426864223273772222483822712323865328446625661458687686443565537131562311844588425875225543762664417238783257786455674345572325755338725211686433557882216347581223712387126436473242868663588227554351233845371254457181118836648865885248337353465262373865625613887468163768725113386281322878244147154112858261251775817713486762344444548225337875273634163321244555128617382651374654627621742866564132522687382437815477422277582661721586485518155683112228635552314361568788615832832121654216417881557547274367537431566574381641715326131234856416453617616767727111411581182783144462342625164854682452126356266624515434642116145377278572818536674324677455768157742486376218544663112523218212555762586876547812378142367875142684524212553328527428225121535452723384246175686215137638658882173367453626385176375127641511614612423485122378864275151662717345286233411538283611862646477322586366526546255482278458617486342168381154636845252666633243767632662663713566258825557873836688526481377585871763335778672327371176121841437264114548526455788587266861171467864188821323762727315887653615463568531362557416213313735615323276181626878426616143886464656872372354627626857337624131585851285387468387681434863445112367373772585285662774277573771823417486323713378563656165111667128725253514713355676464565648416888522532823824448786828174884681613456654543657683875888388454285231463884755585583178177681115325168327318535181168644418276415818712317857536581254262251587185176764365125475562675861628587182448465143557224858146215135542445888511536315711624182564185838435153215746383332431354434623326738116657856366221825457725257517128645512817635326458817571331117663734884454875387887743742422378568537764237437387167328231455478343776266611535818421434475174674863558831552222251884827576855143464167783814726426567336682383281614243114253812558157726623113763754254371361182886738266467612686273366364378245878485218675722481334151155178636244434388861276728832644218672163415845718586348888758331764671832523668585375865427441184552344463436155553746458281818362256363623877114485781421166661786284252421332347787835512345331611123365855771568828571474823644755147314773518417426154252486567248838424371886718414586445787368233672675475255673282412687275188333462125232365382113362276653285583361851687873284527413138454671574648475373583622152135547112661111148546563784816721171742674681552475143172478737535626744778835278453452667351111338814152555241785237151442258343218515767143237317778734155171311837571382271622481141255721527512166166352323238843855114755673586283587626611381353754846575831526445874525341166423423232381118628327448531634345274564388181632631161821674177613728738615735687362133287213148422381837211646233345255675145547453516824854637563257482556227653174363465888752144573447661532881186144541223376415646228278435185711854842361627242564457167667254346311217865656874888485258575176664654147324167126566272146212565811875673746558225583463254816414588136172614235642678684682412557437846776215471615275651852774387277463773426155563617451348637124661844853625243263528618243754277772864813476664622558274425734377562552766214266487413445888136848112858368686185813246443353517574366214241446616182433724144452585323317158685384233462436848717186336738617213322638568734664574874357224511843175683575843167255577866126267442622548811716678744541848326137811261621417236721841132664146844526657318282761865635767863334653428358767122614344482345377628152544587158836427867613231567534485522876871328766513423246111128367466224823786117456462178181724236855113153651266723877553242655126624628555668326325732152824582834382256321223541624788687627816336252541332583355712432813384184665531354588732167312467414813346716538557516311212324164225541887547568138466576665742253674461282518512554818645226848376421415566426348336251448748746275272645346647341163177532512721118348741221524527585357265457135128511377431852622823631833645717465488318485563454784776222468815152153588222254381677456368221422386253731153473527138353244846773264447248453475747431722226551766377683515828283143675813238326624441311568478648687375618586865818126761614248727343878418785383884632682723764315284214288735721354484262228628345326345375554548155173882533223755158654716262736441386441662114321342333826111711746582234185536222151423638761524231158568172461562374543288217382184126884737841267581415486832237531288372633748365125535734114825544448313554287688848187265627777382888315384153624588116547433338237225654666635154664388787682514125541626376743225314851688821327543612118752748376462517581283144172282737813516224144851878854358447327175183725788882151642637647266842221558648685861632812335248714682747722347814866633733444882151214843774564827386548541841153278343221564633557872736837581527417438483533774543432271611658268813527561725368228416244326233281422865126651648256571818687626637522184466281216461232286828457816176273818671833825741513147884613332377346846218778588711355733135731652845363726766426143622182344361262465623456217573442626842347152764345382878736677421211312764822423152846735551112137734827171223487373532244245354787385254236472876845621245641231555242555768634424886127547331873266828113176274541822333225321386685613561855366467362573772527346574847533231763368187466385186454847616828563868877722222382146432868527375572578428316516472281873715631788643352758511844133781242464421842364228148732281545356258617412585817772562352875217833553381428176532675571777315654111116655334176322768424824486554665111641654443581317618724571824224858831332552273628681125276285677561261485571458128281464673342164687434652617515284787266262864113846377247165251381224711684115466664585858272321188478545623735512621823511638488346867135128535767525745575525428673282458328853375568186345747473657584585277465828517832572128355211631844677341256556364576268351438173527413135751284647135867616575846477356833557878772877745514667172726216267856812161641767332648582877684256717671645438828178115783652743534852136345736643623763285178337784884274466237165158838536266615662788243525188611513423781561114274764133383834884813253818678164251238558542617655151347715462774576418151827784888188475133817325635542631166463833842441431331583256876671484784747552562385312626181465515151432284121345456528784541212464417383684685331158638184772127268515865811243318368845433515128875238381424722328821421732341334824454412541773331372455258858442487517458433436465376763458358215555117827352167283878374771787351421328144211631824718186733558662468364452284272333717571814532347372484513586736274542687158853371481517467756535888735341232556375186744526246645385738528672175672825434658381585135647372288453545257371726535245681225384845886177816654317538664443873336523221677414514334811412418617156445121822867462567278425855737261742441317242868783332834576484445255875716183632662454868575675212711451136151327468556274643368426522381116714521373851222445457678825186366717532787515441853422174653371666228467777428272521484458654471188613551188674783433874826424282152176273747887337225623322431516414777138527342154382378438546773832712453384166482381838884548833773525714821535452525511634374222271631123645187221367316435757163185717148618281324154714175558728485766717423245627764743184143578235576427448868725386316461435324863275625628661856554851511242688826185333866822364631481411631388785388672344262581338371451288165665281434726546661668362476851586723723764537761886431238832681138422657777664424233223773852622568615271143255265257582756536783633847828235457541181366685362211252144134546411411114463156274818261674188486514524556538317314322475555282743764886648641161218117361576737125511345268846654634262226585414622725318883655185212481645386655886186682637714434248214711245632812572744335744857845886112341412656412812155517183682351171231453714852626366143817234743832147324478552345628126836827271175576825576772854622362161757835283572641478371613846121266531245284465264618746681178155427213627232427588463118726633374784163553654524157138176751744381453424671712824683212653334753468712336326215644634788238325657317432631427853326415488176348241648828652523755162667375126632615367231842384481637225627447277711381484681638668272458764583141768775844874522438242725341345378866427725236146161858454575174531273121224827321265117532681153777648762763361374555477547353317162628482378473548156577111181766687344578187143825373751751713573116135131814783382663628486724172584654624781286831363712451567776848121116773276323251215268826362241851615124322547328833784227423214344743875216118588847166778788284445638826676245116511357234728834414165684115375845877467546518528832261362816252425262873531173145768866733548372864732742751732128813385611245312474638775454655253542611634235171413157263617721244412145535741552733341571168173288484627288344186437155157566452482854441342422751625882445181841283244248371132261658564138231748761241745448655687324327387343825616771185157376675226643444425673337386568384663344575836837513585482247746221114563633433353278437613574366874482462371566585444712766353557857762885623363566554631363324278556422873371233758833535763342887538417635455611681553615131386146646126622887634645626226825225451252482272111465613485146555711873732855626731311525728255643487671542121484482123382314444644277232113248357438455673786237546136247238161573585631818423244846357141654777736381381312226571823784855384163513548248437653454438725421487748151671223655811413182588648223288726745712317827334254184116183535876167855654253235341727274416685367764386478318831617476833613246673273426127811567483176813384852841787551327165521877378377634577264125626582623667582188528677252561712257328283828887541415822244274118437823272161822148247328346716346248466374333217127718641421755546453776371381152548274285877188614177476472257118833423616223183157583212123734433734684416472454321242111363612645221637866712383123381126354237741568436124823733722821323645576231274446784276435327341621848358343484774263572224555374367851555812476761737121172666718565322767526864813761477325882824143781647442482468574115262453536825886487546741488761184318263822221861781465572238784285227271388182162275313222612731328716516423385464515584634524323213551252551155225432785827141366338422236113581733828562866611338337452258278352651374442117747762274316874721645468774854634577385685381738763116652146271585324551786876733711265376151771378445535728418788565114416454273184616785746682548725223467883862138727353687412181673636483448358386288127865744768737173434866583272274566141284746525524127663857736781264381332153314472728221864254262466266373514642734413565886171724232838271311281341554751537516186288274765584525341723435383653377353611255374724553715111366312637164656884342414652253358676821374658115418345412686188666355154436436147548286356663635167633173435285521445742174343826741757187373815548281818448712145136543361332773487488383338144653467412534378225131561464475456754582411418487852128763761423614234872122657423675237425227158563666748612451788818726444851874741572553465544245686387781777262886213158568851228748337363156855636818466432241184624551563234487655612821734714363377434324754331756655635815818236836268544874651135365756143836538846857135457261784868331633352853218112557161718313816565816262173181725328316833784147647421338287371568118651648754574872125111835573488135268141185453662862635258465477884455262676624817177283218726362327811178446517112787728367685833424287688448346236165513377742271315245178672181767137133726115632213682356445288887481747425675515542644357566266873154565214631872122427245857256238586763736671783184727874766245185442432681735245274142285418185288133372855245661135825453132656561587341855287367538142355127774581135287314711551225121282136485465654175432274263434451363578286722826438314787641743776744738461358868516546376162451131273186723771436157476183815825643523312558387683237715785154228276216332762687617257617864482821637432314448761582453821355554227626747852838584711717444158546828664128228778231811651733354143578672268123613384135218231615868537342833383537641827717565232742543345632852685574824777357233884337557324483612261347244537533823638261675643438451862334173134464382828581713628413542826838466556355864141372823244445634646363684281382381288214514774745542572151176375114582613156247663826623482185583622873258878725667446646442167441348652225166634245768171387283836458672284534647722488585422471126651546888338727657677725133633417252527421188834653142614674881776534445242135261445323377774732255285768868483516784733667626812227664367874214441831356635482314241364252547683686377627337554647462774617434768116675477731365212356623236673554178536126223633535714136752774883712421133165427585864321585574753164244442548115618242751428552738843446217728455438222328873235631532848781632335823755441623383825116885665865467753113142166168571848513161373134142125223635554554262148777152555423845314736847325531224828745886357575634378781314132481433637163577641245122723832241884254836374155765144326566651445457821258334872272621167688314856417481433786615436431866786857285145648684365877337374831326282613846816811414886732874113323258458726227834484746841152851763475466185554883867337438525378627235542756253258672572211637551148513355636858483341422272816512538522174441358681782826164485314856132575572246826274547177377772272335564787176752825671418886714814251211724486545724834431216366743863542656421863835464454276532778741166365432624838374458222161521674322464633785624226117814833681183238268557776718465366425372451661664278157344782474686322466232267572157453547376753174787517481748122836786325187163253874328381863126465717374772283242263268263234732112448584673783861887811284367437341818344324622416854843465788324375821443421251743217412181628727478122823645425716527784462454252738872852181672114441787148222364338284481537434748585415837232232741281811451715464862565844136312487175221277624727161262644462367643262858472768273318533665558384277473377134658875788733178177286541845627773777364726175658468738483134473657254512321476381831846818356388111236158763217267853541245542128213818483471386153823114257465155413128366384168857837321767168671678315112174641548142174577425241261478543627668338547553411675663716322678522125165781737813468416714568582711363823686483711427188553572357352623653418745476843464773515427655621137562286572734312263671223655754372481748588128243277886232473811726767436335828813418283836874166424254854456827864853753552134476563127421723277673535856731264736737341438456271543117672365427187821623264843686163511344775354723772264628588853213133477823185178763385344838256136465223183357844278764364846321853245522546132155143231682423175386527432132844558868517615123328831764654548111584524885453484447282326362277834355714826263677156347672768351682333432255178755256621767784461664513688814746362633778555663618736213658644346515583225673121553348515148574785421432616165137122138544557545156718676854436835148184121575157417463664274767467144425171252882488462878333646517518723747114851856142642623338181843834711716752233164235265242216216544621816776778213476151872667133462537876254272288815668586315358472338852446565223388318648362285825527733155647874474444137726178537467471814468826826476334633685213547648185143315641144516743124178848725871327548523861621133231182133332338674542518642711631738813332135861121372245176658788685575784151153272162566812777424643237683768253851764454318222275515872837414768843358456347566777863233174151822344758474311677242565433748516417773782782766372514147188518326281441626868214424785382758771156216848684521133273417383247851542842812864146135863768671235351144312514667147532577453465662463513331657262872238844857481387555544621146812185656642587577118564613614164371515278134753251277225573558184144233233677661675273387644528624143433357724551647873727278247328337654443655621125416281722314246877138384726528165444282328611167767763224564446642756685635638272828311453766482364133566736651828511253516856641214231421153724765552562723557538652681463624267423535427344784338285342571516344367766311446778785885744714515132475223257545575671365752768862771417681444668834137218156851748475314425542232685423177674454367818126662584621358567313445443343814567636788882844342546182332323446316853552312443666373173121164652127374262322678176352358353788861785712811235718214338362516161218456324387767775728422348655663627148248883432621562655636784232533523163176244717644766456535785616174173367757378665117361816574357656151582131856564311168323615547823563765552274361146865813437281553781853631267368636834266656377627713776758356275478763535863615445321113818387832487317711732345577645113582842286877434427547815346816736831746412845356777575715566848513354554755852536154212765126137858175252756676348461453864637181168372453787183146172335765572557273385674573474252174251675511135334868124438754552665418831638768335737247623275413551554283266161621244825881582454566585818685327317755155615526874513661685837334261433611733527547824674363613271821351431682513864437422557746445461261345156453453875136872225738435526738434446735844612421111514835514224657132582653814672418787827448562365232157345471321251828533281487516773214428111283855815874173421287575674585374668836122581532356262431746174117157366285258181466576367835343727542231753327455728246886211172843636777621523611684172662778831111657538577828877153728857527337383153676438184768727714243865482463647156156118871437412667825122353167443141615327756883472683785168813874822543185655184758815422468434835746725381867851842451317721318751233762525326171283728512388874817341213312816676165882182176446866644674861346813118327473786471751277673413154162681128488184675714338348622788155163868545823568511532153318715177445881457464435174886277264373276473237862474658744233811445434748152555368714374717267873273557431353771437833428715661577511324155311144717115173318367735837833248342337717413684632262654124137163713543471421858265387411814476653877833874848753258865634672423472862265338873787683855388432548636741473162346773165315328168113457182167218576881521128533584718215473763437726735547266573533541658615844376136381613432474615561147388737181725583783132162685485832771281868524564734647776873563651438433442517877143786545888332165677872638284815381625812811114262136811421726325444832622788213465733762458257452845673852578576758116758474371142228562431477751732276131256761582218457463848627786268872534581412853761251638268785458312737748541886663642628265621327582342785855682553485112341338757587744416565482716824744547424878631761586243173441775836647733665728778161165868156346872452415676622387882457361611455262127583824721315152558285337825734648882878161562434153553125387637577373348866826322344555272524443846232738281773627168674712855221743683618687628136652118384562523582552487358738111871715823244483525434856516416414252744257384325738821247878385772562147464883546135728613248476548424256356666841232658171538351382327128776572251126685754388378227838864377164736515677123622348688352671553536847273881338153733658783525744238526723515577561533177331514835876334552761526366274174735384758177514751523316532618178215351265183167238221541612378817488216772658567556361147243738547535761145518124657453843223744566221325442454585317382571552877251358714145115615531448511687224341286252767817566522262212638721545237115716331152334222884856516288186344646642545667764828245865531235665131852227512111634387412531666336133344712578513187748587361164764687245181151821712631264261324774664744548342188222335328851435458723364815714636525627524327861442448835563812351722341773238371182881247418381373524662542448248314435335755881727342216321845545177577754141632553674375171531248663255538318252486814213756846464785325845837177734855237437772221458641214627252646736545121312157828118176818134324647258371572841412125763775877848665651314568221328565721217617645766717332748857475136644212135223888488571462368532813323276614584283241753181611511718727144518888764558725483543283772275512582237271232442682672665774114368448857847773828747124268668662366363626511758644512535168115832567536253838761887711824784374241181472732478464315117153452575242385238473136527125581745883227814287635135776355774555722711367676221621868582748312744631637565876625613362543244485854686411817361541744655178124671745276246848688443718177586121685371884355275238376775314813878216262387576115683477867158423311686885343121585518456238267267284773177158115332377887475388715251568874552245863438374561457664686675246322825867583818822775754538613341113685152123625751435475456351437456668761717884887243757478282847412355885782842663844353848241671462632821112838888485478468484147861253738183887887245643652163735848882587757424287668634716758423313258111418737361234671353854351363731842484321311337133335451554737482637628426458233262714528168524644223755466181176264686281742276217571186713722214364653634821546185612148437527852326488542562231487313313164731838334388145234844762118812445147868457837127573651436426532233686512882711637581533342614574754474348231258175148148768827381414737656438487868448325827424454584365675675263176875574835147487582768417121125674387687882717233316857335434662662516815743535566337152361647811131736117332575277643566642138712742228127863451735743513673353114385714551513352836784733255265665812334181335588845438742865588758553638633357852511472375815747763733615612486356452586273327682644812533678464711835313615172855123363242244272875473441625716128116436217686842288211263423282112611137753527634614482631641451677481343384234564114733817851187534534553843181286241531433417857877333384313328633776586486348144746743273572141435742481725326666151478486362321555761712142377181714651847645711873134848133513371312416772453227531622575515788431672468562451218367186313778413567611334271767764571711255715753681378764741534672368152617781758454441782825151384785836416458384435272443557346633285843377277337716142366782252551712248154483344645833673485511372485166413716776336651511167166723138646674862612837187752568727221654123426344416373767672568351183281238833341667524178746748547736856746641674515613683164825468154486166114224652682655124351232372844631748875744871272524287432286335426474865133617555145455665115313152424676824766442646821271621123731387551144647573271285726535714814438431762338214783475714882442552284747867577147375433532743687864147712566261868277441284161523887468513871166545481268373812381714331628672446643651345342462248542618577787258474275311527418853684628267681615723411438868455735867452831811448486518555517757845452552612424868531256463248118355216347251547567273586711772413521355246317762286445286731662631733857645182317827414686721682434426352461687241551836617444576138724666413226342142673533872652213361176815388514362381658772613186764451681616142746813552727185362777753521372166736172851431834113554563682565244523665474576154868136463325441888833471518261667271584525236733423626766354427222861328512872288452715542641462325324344248367271151574328423252681775788632225727846177671515742726816845624315266574153611354283781174623651347183257135231351588614736717813467644257632463283728268546117352776883466378584563258212522323267757112488858173387375437335352214612822564172327753463763467357425573481717616287434627131455784127427265645354264316678772867446347735386888115416235613816627813775121611516256531717755486884763874122178482821612476673162455721822788346448515313747152886547617576228738345573467233438781321144455815511158482725735612618764878571631712322411673328481436735443123781822232216237244277726167138325414234414724515128562234637638741851367446876175187372454277867664657113767272672461625714387252576187444252436344462642777653777587847334244547845726851485644253553453864827473521226356581812267263536825368622318112356147231654866365713432662532434237527381646471626868733653565878442876822668612415145811257723457252814266717624228766588841243664525818371122548174388283877311463833557338551254284278474862817777234667373865472415424566637222812165451444553788316451184525475648881135481336837361448766224448844117553353126721752417221332825436757271457738772883722414313745187516222112146245284115532572781517236143717488625125345184368121811564652262144523816422725424472418561774654173464672561263521732354113575884881338282218267226823423471846135138624515438817618822835185685868747888512268836478578275424117652457174382841588223117248651226438746842636483315372216173281484148613575824222451531844831141241172135335414525548644733716722685458677725347517443523813351175632361758444784615564824746422181377868764221352824363424666762861454347461515354752253531764131766711624361516178264274867341184672414431556852477563561452261385485745561326262126173278865181541785347241766638444328225484527386788518383833466515483883454871321751776741174732847337243337356337176756535165865788523543847647453615467545217674316357527173487765812633743672277474885781611256744177468614428336325552533554848116548278517131668825247261331742553272182811646525181573516581413621787687728261771438756476226286246812553261325127551367845352875243455462561162684322775412265756763326234216146568343851677824682588313634114622353617643231361136136356366745537888448358456265767254752232752352753785681116354166252875237458345271731437253238755121318122143232374823645137121272272773154347145234475178546562458345646742552762871574418723868888424285121364563227535216511115127214612538542553425813363348811331662871442617616267281532423222888754868736514881461224333325522113551131456723861857852871483213237317144426671345231135232428432332232344128153343152265473326121888124272154377658473671828686376855471285681125161337126185778174573317536548715447321525611677736664424234675236127676853871731114252235611783262148382686741821332552778768775848575624418456156322266143187583247788886412227716633334211168841685375825814675154144264237732866215784174423584115127512382244864111565874744812428841148851426534572731321477576261374846875387653513542658276714588673447647428431681726634171531415426271888532657648178476236247685374168888254888513212732246572278274263158228138441381424263356374457631647352863657618773678373728382336758522777624383662316648547477231683877325725157874556461828413567433264755162726877585654381344187372426631562266615842867162437845177427465358688873676458663566232673476578427116872337214527212365371145556457723845453511381184388183627158581754411327454238658535486267727864361113424537568123538712381276274882813156468472311852281768557623814216523552357424283371843625765253725237831737257286386235612377335548818853777287883315473671174634385281134851316614358526382662251436148532363813434353672725611641454874217117117438714146526287883187267865566826856157378164521525342218323621366671524186248317737125626877125474432511235752542428842348227425565726821183824235287327848658315574232812213586822624114171866272315553341461633754262348332121827534565673745681176222722681687522565613174251837326465335812728846224573564354286513186383162132458767631256342152832351264466572555837121351523475522344447186828522121626465724345145271156327238236368572164554667355131663455135728377251566641446618472374584135631245763544275523151888344627371465653666782123328424128551385112334511876744276635783648445625545815668444728257447778684365426823171671738623534312242367576237243227867841783281424317765545161858725578365284813144836247652456188624311431881882171365711852352873374434483278357471532633558624652114218284188414557321643215576656764774381841456785538746114746271538624424526316735421276326832155514545114782144583326848313515635286467514777817735581477435878284712357635576865521358268656363653577322866233784526583138753288444845148432671248457767324631245531712652838514555113734864877117257821178641152322562655123521815484468433115333251132614625613858165865872175487417677616864338243318584712317755688238736326846747783261861753377212254546816686143128123784188828681222463717212474876833332388865644752782618546815314536433878511885744812755523643263563761432487563128212434465677115472282146518462458258686764644241168233551586418134854531182276288773734854354253248613378587773731611183287564688525453478754136767874383726253614321624681161653227524586367547666318767532574583452771164877642173865428646713244323838477828736223662412772183522472138782365177121761148824863172882841774378652434545186281518487547326621546485716476615652217138557221342586274772147621537111855744435254877836246168788585577738773418453353543316885441766528513418325327577878544785838551477425427651175864474851224161267126228171688272381783714827812473182561636552772536415866354562467685467181838172438886388742685235662241334788647314534517344857471515384671252152415433356458787824144272384558711128355761356218588816743868716417411583624185521572863821466717528365514614833151824316853631257255422788783168751357524584576312521758744716653358212257573871212277737818634168646568884382428213176773343416242785752781188528826362385643857716458544324263261586623854246837344314716733211756235521615415718336476136416183422831681736327826354834634311352524672365164762554656188281223444567662777731186438147733452653268616782245844553234616852734122142427542713768243521365255554637536357238525146117182316568888552347132843253858438326678575581422285881373245747461238653363122332438526712885733522187472483623532474221821561427336735141378332548567636344372772454655453386451124846571675764678122657577328121172311468623671652574342741742416646488821385821266261455485316842576548364566351877178285723426542856854427711717373282464772512714261218158136524741184173281142558376872552274355834438437412364262856768856873542672585115847361222558421124838284423521774277865222754732385265377546372768265784635227114582228544878156644838818576177446638551627571855828525463277888357723744611465154522665148538435213267488442617666718474434346764256186587438383673672121155417873348167427126881828631713358247263146587361655657637727623684127872517484251433365146577854825721572182474227424885341783384566632417555534345414645775174237857787528673174234364753836458225682414462346638256317212823514763174421322884576817485556824381387716518368473241671316554854681247855482446431518388525172227342284648441184712647368474256586476712756825813133538234651825624414545217415678132614166635317644258748376721671551657187537818475135654342471482564833786256255357834825753763175448775111775877461433815852826561118628354543485238585782671486413142636287214734344733667614821824254571182431865825242677168237324437544657411813134252138618511544117531161731141452234285125631146561543326481283325732413533647862885834643352684844141114438833283386652684834327721531144644824324558725227321758722526176448866833575263654436328237543356711511865142426426255668573714155272345458557861652235144122487626811452177861616838433712152428776577783256326861521561735574267826463677376143712767518766281148455621225781766611262145431512146575383843535356378278333448354177217558722424612381823256788756677241187888336456447432716683436752466356888642156865644873286563426122722453557314535834824377326817248372246134287742344368752457362851145458864428518643528334256418224335228351872745254186178778487431122154112283418515223762667521588482853742683341737112847686425451516757126826186563667283744376117678452751221477741266511145745271285142253767242365683463815233228423615672413386455682158568551218538764664861526753635553575212232618273248317658123575583624586764372516513467346362772258518755381251521524357154238145863827124148787548842426518561664526187517574315888117367875158217427847783284771441773362543551888754334628666467155448313624421456786737762214828234151183531376856548185812363886168267482535882522282377575574876784311428827748655454372448414244361373344125642374373584244355682371614772323252545564857871415444122456388511335573647215256452561665412321323577718328814351213771476678327362223145115281717152281737425258462343728138776552737776328714417248282181677333276534853513641534544358426321615867154421782714838151813682432838742778828665238642742272874274737873832487112573753831735851433781771881412335517562321713823862647646774524245812731871268555438713247386627364146232828742341336352772258846352642831464318312113357163827351181254387377225132436231283625484526512441833133345635721673332451117352142452655835466542542476254858761862144313521242163317583175622328581687141165843231688864286434151728534617863285752427737236313372314462237423615843382765583431626752674486463524753731151388132774843452655826367347143748743621172426353441747678581564518467576485181832675141861624264622236763142612431642717576888431341684865232145121767325821823527374741851134586373612218857328654787871888428613674752457246778267653428452888333725537158436321752263165762484633855761611118172887265422656731133571347147823218585247864644424672473246625186855531134257551684548734212611166688388614231761871864841277284523258126116784783645646722616767743642253817856822183472512275721282864865621413378333441364726433681673255863812781735768321861788767158346513383143628226364153836342363684888313562284881885858551444324778418723817453152644668464812858885534785281513776721737775861835445875112762116485537825528268573142253445546882125777185622531444635566181486665313622241481215247462272876643744613536643334725362575334155148411631162315483888114646618314252884682882246413418544822813835181266855736276484445486374646742737231714483732233742176411782144554612721181873724683844678851113243324171137121571541528222278113114168273144718724862471668565562648566837114876834258325748453326271533341785188481872252164386662622655482517126122884216315678722553158321127435635625453626557421783484165725448617848276838471126355468826331787588576736774853388533485227865631348633416568867526863171567111711441382624512333636814157844582336352233671474754421586846165218432641677423555866676461747334877618647285552125483187762364732358334624845754363338182325467511283632686367664617526715153778815865244747325772614152656811551154338673521685836842777447284365615344252387882653441851368463811534551451355277137188723761751771216852554768577146628165647423511783628713636517266773424862873668117578747288886361372645543566176842786363237565581435855313626367556851874787124766333528476774646812186245847321624635541338481151366571242661428772116216743847644388178343844823183473153117878127582573876168345253235545133832381518783211282377652765444787533544281521285481826111344773243464478587277433575755471734718725268227516155411846582574132613778767337833161264434557637767143621543116423186548612232817473754765765473478714741523721525461523216424428316642413441168526378555387446146722527568366385138585272582216844663236751481653517783648566732355547228835851277633187122681473813482484576665148414875712721727237366532258738431534765156685528422761186845848587674246525244675858134375568185853144362575854226125424167874231231527772444455754365768636128638487266161522784287445165633316825618115634518818618816148446287338348568531576237225781414271824524232181228732341776536642614252562741552512482271848318546652575638472317557643434121644416224787445246188533573555635763285532163356536541485652781436646816161316168474221382547571822378876876251787711748661575347562551828511571167158685711335757161753323442125836755146646272158234243273182544331711261768645235248224238341761421214842815187327731721745583612732326174553871761522563133183265864333687653415457324686886811273616542163413628447566826324832358628485786757467282884225625521148857517884347736826414666285856752373138263545343654227483648382425488315366461433851451431351162617515748456281552564316412425346714354318885642564885685513187465711341811461324778848265445843581571461187726264236228434825774713817616185712882273225314457817855626332768668856747165412362766438667725788745438182548675538262735377864817127826742625835722762888483748322768554372575137875142671532463647353652515276661744863622567588331555424612835876474325568185535652851326271778274562738485857524378317185131647115844574178837155153562745761346442888116616468665887768346141774841852327835558127585436141275378432268137374255624764474263662322414113832324786178484812834663773373543462721224234581381757142146461464555344457774573658131841546341666816447786724276686651421615743438731678862356622357185265351568548577272876547444348736152624338356762838584145136178675523153577362424171241651367813154428474871178286217744776666848852585173752762248133176611185552421835871263157856751582657324426126625317611155447564631528831348817218665677828445724466836161667547162616218118271387781464546311674815535185171226585343684371157528177354553345155555574878842484167761333333737881524863566774877334334556881485447815768223567312441565355155365126218622647575685752144248766847638667442886435861742266711414867511344211741414257462752763366726427537328336422238412357552234545316737637861253651575432522665813575427324818265831534456521776145354143233721178132244453542325546821241288217772682217452241785154247864851618474655462383338545836433525656511165373117422333585214263737158232451667265418357845152315221183345872785115847487884735353123453521451157622157826881282484415767814621142824663468277484744127865313824725388215221631261378176263535823247647856126684438483126438582726656252821561518458421134174233514331578215866877721633737751227346355245448636525377552844133753248631874427766482224176275437743463426837422757141527733372163118328812423684555276656885768268282658886756178586863537224137624478335627322342635558447517875483873255854254124671274535438834833348415471588126115264364837477712428537383385565747345434243181832462881285458533426667152422475232127146342212421873687881117386188888383511422111476333133432241686635643475655311643843755661446268314348715416266457743476121684384735425132347674435468132761211384782184388263266428478566354188478678765372668876525442763262276221757383221675446557481774173651745342533312712364121188586433563784826853744632233742667426334673765536827851244125387788538866851261523325448441546423346831682378432334764475246877278578317533145377332378888547135858781314524713336261738671552746783733752342345858632316337418878237274315518665338156458216281673287585125652274755482127684732747514175541434511121327685237823661247388118456268257633246114172152587188115637214874865646142857763573571623531687782326637773256525443475735761341242512376463122662621768316416281142275823782558787471477134413517382851738652242155613273633671121365135882772657227515765781812135335781848224543354516286276156276456522283353575616176662136722464776855872816573372525788262374432187342243457772114284267813325234838748285831711336344612834253626387724476154756447527677613134431828823328611452774347178488582258241563111823111244148558165281711864745837247328424445843132618762346545335757658188384554435422313856581162517477113568578172827214521283454762363686354333174812121146142534767184485488784751553533347187241821351515445437554724717374188256853618324763528666154572656242847217736274223141413736883326417387767453561845876235825843351156533844387483577861538171116262721625255651825322461335345528482434126278231668512312835154183336414672515343861281378564163164371757875578565543677614717715218774678316828544423243581367557542661216485411842233272785311151887864321761752644658727848822616464853848685468532571174542463726763236153311851775748813111178663576852373135128583578551358883257743647542153678116132124611885776741612474458328178881137186262523371585131867536233385664487358543582165627272812782137444866421646523755571736826728333786435468237218436476245524447426135643356634674132626267628128412835866331665164345533151138868633235555383858851513515575562212432654383545541217258676281127852133423464187275686531821732574383615658634242672144115145811318646262645156384154562745842868518376246358557664777523274172517586712514438883446888874478218157645465767464678177165411382884335867155662131634412728717664613281113538418568575456314642722216864286747661338862351784572752456866252887136623845675148875781454166246625486457623286275465521834627151555866738757443676817567186582254451184166487423123848418655841173288553818642558713411873546344251276243174735626637632846361483562756124414143376645818343357612547728846317645871467117414831285534527758583177785212127112276331753335354368118638417817283885641561216338216731471277663822575348836656346881135651176477683874576248741248313465474287557513162773636756447485811178742363575451684145776533784482163361234546516676832682531875753776568123741125718135285783447433186665641552288662272737672372266534274236816773787547373212187757765344644388345788583771578135417518161261161511266525544213351222175717461532514352476786738841728365618752878474638827462353132557288175871738852538465282582454344822271268132274771316133275661167346868838724313133416632388182575278748622117316347671776356512778651532388186737656415246766625677311416125665437178381843364738358165677314454337254727245684526232785386347632226615278358772261828245445327511861475321855647741424565216123161627226863244877181244651853231287676473454753322835462554546233112425722883285855582324434757235863224811381575682588842184813161388756575214478538281111157455281246712432465488175275276183228334871283116653251644863638651671145224222853375821476416472545521712281383676248883244872613322312282886222516212423772647866166853622414364572721167832488253858221831356471353366137363178341821528522851656171483286565166757718731173748426223248856233724365324188171882324384386871837455586556561531322451856352824651815367574634645472277861152233283326265385668867282577254164343341836223681276866782513676117818162474718434286465233217768266133362358858865672862878733358863356142617511165838233616137532833534485725528772684632332785144864421853571168384437662727172278636783117221626251883245814738787536534323144756855345486578425865378677887174636752417235766151578227574482855647485867422723547251628137833564168656267326661286225638537552565512374716441455147327832644512167765343584585276617487333751554311532547817275813457282233778378187843611235326557447351645243743544574286735151882686357572723644117584867568338454781544486431416366738243265722257828334637377611848534851288125473473516344761462435887617276634632177672658763126666134857282564338287121616118336646688527631731425327348615645876245214546476437136851487658327548225271825525137671488362853613582828866185585334161863258136155243611466636238334331516225727138366173653466116488126438126526224733214412668315876631288517338412478838766614218632656327121632868438315646633586748262848112865515116637817867317322176154846264742165563435866784163368431244527785858388775132338333765875814473855444388512481424311768158585551161211131876127428165177614756763843523611818712427673443838272536587734774462511168471748454324861328717844762775374137164182548346226177252135664163745751165651378656232443515163824515668815881465255151326884885842525265635778855521218868857527446154686834436157748735337146851655671464523285638277412323877511747872381371741667518416362728783652577625668633251686433312257573332218633366242328157175261127427385865262586425382786313372731321824112356655284131357356218342818418212837223375422224735436234134752522318337876757317547366641772831641661534821312253575355383244327885124415216138387788427413732287481717488787624263162522552772636624233612541654832278145231353182424471312166535324325444271556367614411525867286287713726547374722233852427834651481478613537625588584616586662777426447417748485455525742474352268514122715452153512786842477265823332222363245586743214317784376378116214327574254232563323412248646436538874355478683584745525286546388873375883558725751128517358854448444884848887573272148532486817847417483152816884685255362157423323268174834371658872227371237131124887382421553221837353343746825815711128634122615217512883345542123775655726187577848214218353535711175254831348741432847774714855853245644678623363427112242547138144274648572524836383516461741715838161828646235732643475266217467464563136326585731678852578835638772155484651384167564673372525581766163424514517361718134355522688863264632773515652352647268435887325354432458585726677472121571167513123828877136465823222248846664163354828688485584565386857324732137225754764174437663437251331514886568615123253836338725855863462674555764746286731767854521754583124366642322861146518852614754623148721552428471732733563145117473864886737476436365333683211618863133416751268756475625685663658832863554367223852488858285562432327631754575547376358268782631738383845354527323657642271851184181874476548877323673852153768237883442263656458333328485448468837363245272886788137674387742684537528186386636315771368758628648581111716241467152158684563517424235162672388152333888155413724346444378517271874833737135374717528616554148233576865368517854413464786311821378835568286572138443433163255758623846465283183817341254536122644145658237237284885616168737613663315227512327477857532372147875873454322221168732384473353242418642744666661353157566482773571224368442178162476883548486322384432142358233131621742677225325755561682374684436211145753454611254381485524134451152387511861686673682251334435511636274346472628575476468578138763557548243474148674482158827511423276762118524548885686358616727723488618327343317447768616358731175113644465466311674525822715521272445883418735881823522413151145271445655238484586548785157733427152627817456872343728485845776642521812744112333625331734378544752857713811114143565345443164441215185143224237485775836233334355531715727211625884254476317788823684762568312556673176484261222287532487485511875251588882174288623768364785571165132186284371843836751818554532641818385783874763225225732255336474121558814887271487142853252416814831572177865512465267244484172542381267821271187322115544528478675682253242357775885211362226774321535551353131686376821612186127147353157467214788241827736485815647654251877134828611481118366417378685443315614565311177664322255124365566714221457132788831116375413135475767561373263122218536174847582268685724736125835855354758264257126368348621321875477563158535333638261233765521737572583425625678612785147388143587644562283757478555238535586555177441368625551226386856473187486716743775116177424628133413718288861328475154563834513744132821514333832414561864372356766827647147137248316388387521766125886457831752642177623132117326563375167728654522388382413812658877154883767321125155352252487343155242537126138311833628554188465558778277852577331613335741657321857475347285888656551232216684748284787213768435666478566333377383443261226226383886554244472777223516237815212261523113122815637157367635322437256556738635215166511863262322217751214766486551376474487681721363374657464631434168275845583628644271683165765272286356715274625213873275553141836562318537866476764683345641313655476436783432765344345866576548256586245555343864865523741212276743267588133176474185871116222566851318328323132182385853672837274375713432714511331835868128547635773283368488531583756667328673331246168128137677623385234218183776481487862735217114626114661844384381783163371271528886853557173173762234468274385284751222621184371281214222527214378866215815383278816375236816812815335722122485175611233472272342762128231131547765787746823756683765777472542838375265537718145433567326236886824111653481112624567475158657121421283418225457422855421453864116732148631333644431177784171572831712664754187242841788217333123783856113472313264244734327335575547245154342257648182324123342485316417782524457366485464757816284441376145551174483846482858677673471282717815342413623517442321365154334182383484435376732648565167451556773682245441131814756151766532866246137267242337363175233442335146425732655785333316876831651833564727184348777728263756587687822383783286741678216548218644535645122816371428345511581135575228377144768572116633672784818587223887145183211544718655256765274543344554542582673647328566772246267688743513746662161636415585818647573518773226133186313732121141868221664685485662112851253854146538383668818243343444531583553326843275273756187812132672816815385574767144724274184358221421826565623524655171285582211258821574245264531785872511327111183756747151414281347415217617774628114818126143734674862342276557255223285565548874162282161785317436622348483151564353451485686236515718655122677213425265611124462152673345428781212624752548876258823347556546256385448513567873442776332846558355518436353147153216536431746647718417243224131821671821165338776437248522524676421518575665354186426338467533734842468643878845274824521171323474522255541244763731381457186434556678314884432621446472852582124373371378723554355811255822773372565213752163218661673844238453561787878143421456182386411845363128713324633638414644141112245226157186535888418848841142766384668578882557488853857838763417774488485341246643185554432648483533547178753533818554654734763133147722714663624645612184537537733385433788767382568647761321161188512782455275188134487425283318251116353546756426865377887837821637333374835377834262527411762531333357352846611633584382445384876373224118746478637744747863467266457565215851781344728222558143757315436687747742371218431144381827167616276662561556211872471168473223511364427143758856752834748166486224333137321372654824167874673352474684276221153512817712835832171225634126737778841676471134317138668136421284745724357832163763418128721746881548862735637825835843525665824675642474557426616761828452624787322236378237557712581412564628451633162152764354214225248511153273288165742244355743156876678666883586142862117258422278854777246282816658825346388117161147738247444616268713482118865546138844744375182877887214252415175176152555125878778265657485113371873644346812748463588448526844533816147385441156413326868558523771242576232246454785248155614857643512272453667223334318567531484421547441617281281621673185132463284634662252871848563573173881866136561656554515238576451756523223566528265373416325632723135124167721716845375574757885817211623565525726312541822461867457226441558241577612363517664476887388152845111431366336181287784333838131681314447231546236125424414174141776881662685425173385432841822886676454588781465385835788471647425637644683781338588168624447256425881336616616325828456782377626323845362818631878735574723352548848136336266855847463625526672335238538322627228666138251824116237781383552333816676282341652142821646562765763531726142673486675416163846233442234484552516844475672663385588728757371547232341524378377744472164713523113314123227155418714122267186413411568872374831572158863477177135752741868138187763456314273652236117272675342137841376681136825624142275411261634368145717188632233821431244776324774362777651531728532253537838117215373225864826871753773572242167285277362734477254118363577454861257872664272557665562886787872186555637115362715353222767256423177317225428568212273121742471458386667216144621748241732641775462148536311673456346138364852288411854554683535231841546838858555557621148113583544317167821576782358461841385221542424776884274326824125615334385286644134258357126227655375322882365435557573881668244632361461283416752526525673553836734746853373828767485628545887677762224247211777533285758358786538742736644633155432827828415737718858323773684334282173688262648614515551538838157223482477358376617333383846727331546454886522273173177178631231354881148416535481667572122234228374388881548785468286185274686232636575311741484373788326743263382658371364173572456148781713682854878583181127254857514244411363757616173174561523143453764512783561867243688327522567722862626644736326273774546754212388237813855647163342482146126123643413685138436436566447121422473633668333253582325668447146382361637367253463385738433847546668783326247455772134877862383658645646857718354226672547466618371724278556557871325538873313337378486458662266717352826244564362827323751163651252454638183486347145822535552674578853457764458728472341766614153554466843344786715836674314366383648331332721267326181171224844774624417276861713417575384775764312413737584262172816216342737724625814431554668521216531671437511662775836463335825665443153813676854126754784155328753764235288742228565641646837721764273463844735788333184686265822446643544837263765172252545646841315636785583561744125261644117745175755174316872183666612728584712344548548317113471227188115173876837783423231247736685285762158453282241124244627356773151222236156367178253523417685166675868364666472456425626282667113665568836442556785436643878476723468438761525873423184457116347382385842181378286413717364118415334785665781328625163416874884424514261326824586754112768737241517672378862422616775828882476143762618513715542838487147375556814764331677838732647552846262553818118733236216147751632457311551237712181471272637666762388352134811121237743673145783573424627178747752322271181636184343465348824416287473187762461562817113112447157566575137272847685516513614286124337532125266646866523551848611631554355843217781223264237768548551156326546886114178212585245612773215728587865164842766477855713228362281653751341187713215645634632452286578361378221136517246611553472635553656347847215181436453686566188122325716687384887644571234514213344875654241641262238323433741272561712826646351553541483547225141121873214746752773782243535238317883213354811274134314337751742341537853351835444745877631715646388752276846482843147671652882537213377643488543553321354223862758744527556478434434566677572726312631556862774824141615568612147877113688743815461247652388583187787127667835233743677426443443238117434883416387633444775238228675438577885335185328484876515163673241111331741142877446783316342556323446486181855368625123456578827328538834686224782453785223761583422125271863857711255636514631643741135723174552543266537866682643656835783325248456265538315461713185542541254715172315315757514771135788772352466687775131786332444521578664427746332745534827137587545267328114487672231323726335185273112167127576665457448168245563473346227673825552312865561124338353872411612264864227765763362787752183164846848162815252148334711828872874377282353537733336716465434327622231132385735758115458852351172312115811443635533765767663647547625813626181318386731514567333764122383158751675158278516135877481236543127155367376213576672571481644853434852476767272758677777758851753345461246565426475254685557633634371355572138746168135652424487722824178757783215274641853157441388666352247124542173135132745562418732512424837743125675766183818783828222364255154383566333234268147128856437644643616316388613374185672182825186454644441161118465114711112316112544657624422165335776473511366287323655764866216744153428223518331666843326633315771688316667667434178876351377735515446278145485854523324853633354817286257413165274276672652856444833257115172611128344525311122415326784462687411145453674645852171761273423858833235484545781815173717228115164147554677257257734721588418623774641277681476836467535445174153484262631745248876485846522526763885135711434878528728432688146832544122722728732321834158723426346425687476421357351433315624114455174538241263164723641877858484518632545338516178121127814821177551725117168444146124522563637483141522285618721122541363636243454273383531512228433461718221225348545417527646378685345823145261271732288624358875278377658375151214828857868857466112546442647637276743538582138416552813134513372652875581661312634421614154448311568785862867732261841325366257822581144741373418581272474161862636787247376336843837766241387156743266165654444316671184183588744156761335436836314361675185676653145247377132657785531218464141351732365267181441168678326721523315417874472532217273224463275412648417623766653247458812871432382248811354571514346813212822652543448235551311414115172844115858761788855872873188357442528165643687673747116162114724666634715734668654431637537576158423411181426478582532484223525467715471133747387241386477431833421527637562411782871535434137865627556374172256425264677741614373784487586478171317742523354672667676533262148276556725722256823781151447553231586245426513382241823856767682712183232552757667368632817744674584774138775548475118265126184551517811575111125223611163678214264632481167668757238236164175168218445112875562472362548114327747642853117664518783853824323663417383384136286733135177575542788537554636353615175384122366253172714237551481665314675412733112287671213353186526542188863878668413533825724536887166854858522443485746835457617471746387856281131572862473123432515715616176256721164778171483244432552336542788563142526336252651523426167827574846267582223158117148424313661822588355267574251835666164316188848544237672117766331686234884455426488854231517311178758245356768424466581526427123687371465253651267823575326785651288233427471116458776114453875112681132541517151817275387685866115765185726323311788338154457128313772464755173228652534168847568723628215478752334583866521844522781466525551481426763182285244184147718134631742425334224714221284641541628354413615224264373467732552371226633811128215341577827771617611134871182828413161533317878725587586553411422634474675471868277144318321457282636254463135654424454473187526656333748618875886333447726574848343584235723322852816377812466187117481868881653823246644741225636462238784861227243514855546218553743422767551431787744367158122163311587441154218174127873552457677743344121411115273842316443877437658731541257665161266572846378112885648635218763465224874612678578118672888743678352455723651515275641636572755452287766112768376857127732576273417875652547473744222615731547558354526637343576818865157171615231358882422641417184316272242432557123855288841628741237318252473775247437438181172685286627735872415248652667433668758227876365462186568482335668344226571326754121373888133658571663132228514663411786668632641373583414365437675421156626747446715126528651537745846615356112778851662327347622313631266846772673611542162444331614781152731587735588656517831157516317451411884241175446785512323643587315354475151681171517548771781326758866478225271811655618778411753756161873516217334411447155731166478547464271614622662537716574228144546164182264446668146764273756272775854747842574275762856388826761333527318226345777178418366654753664282173614388766763386137163441556635683687635817317627534847581833188368212488281668573836483585452486826853743525564437773187344554253544788126371624267477318734856217653355153132548163781374478766542764131141812567744848887531275837112726423661121512586841135375785867325342124171886657636355732384783336238213818535117318873678228427242737725758826656641675617256846781268724315872523452827411181448463814432636457454353758728868565766865148751366387564513188616283451132613618134857877244715432446251827257267323111582163563477283775562375176277843216434762586865282837512771372687442428644417577476884173711848471638253353727265852136814168623643567464453375547711112568131155478233367563723554634881561575728413486328282554537873648664822557787185675781851628888535686758615272748888672754314364848584232748174841528754282328378317332412476442288145135224752647571337533846156126338722883666484234653847521883235277866231551168111412234721143621174467228786784584624163173115271337151138375435513871287564843875747427425555126114231553147315581332243365867575667321625526773723683638386622277676757177455684661881531853177546232685242677744811158255133844536413177752543613725386861854377675144786656887235462268751355723837164631188718426338214316747747341671378836847567478575321762583352855858343115851474116773187481286752376287748787365521586335122656884311755432834486145644855182486784868113213612823483555134863222665576586737625862826488842763631357624816467131228735421363343848711767424826185147586274515815546631442533843514164677718155621848173213287248622656537113362435181111481872453687117777722531248326156142856832433377721671661352157448585884234137526642627651533366833183513675537258486738872377677156873347781373273865764558486888256572337132451617842814723268185751551163374122416584153168848231253825243624852322683851555434226417138161556745524868632244336843745352474157676661338221643816747478326388756218233754775735121837766366258768743734873456655448215732246181845824362626858484471534744251724312748617364311427262525637328621564231136234236851772415244773746266845355737184167368553532523218588131574251266851576881657148585564688664786253316866613463138245372255384616114486127135344328527348845116674723585888588837541172635243571157864263728778343317462682531582188516584538451452215132884824783341868123125761847522717868345261334815774357458861127514284727527814252687111184765575613771333678215461747846381728245183223482172524318151475236222422731646544362458164178618186338277858563616543446824452461154648534151187647673872477631433466376482281865784787816435465622121658575642827887457782315533745512136661757324161515316868851267371647681523585556257522213221827653422531481623418751176355157883241151266838248182756453164454444526333826716426352167874186431542362561822638863231134243856621817632433263261154153544835214854437637654166143255218263771275684267833836611873564586565251481813463366634438646665478515341112347644124254178452588528651722553184465576855417664576227881613618126562867177441765246645473443455173265643173248624475584738864448332555461782733837286546231341264331564323462435345566888874187286751253288442833251755454721231873867274725177184278421453573262167553842421831414122254273286368785775814816514175857465482675634713111466734782174881286462181447518252784874178445255567364177888522666255331742137281174583152611477263456147322646655262477314353745172483824147721136242532134127582417685611573573863286181157577624554231754278175481756563422751362345336444322567613355366248235431534265314521357374771382772424246634751318814788747836625853473716757855553182175538317464467748131585251466342555282888342786368437144756476633747647338414111841444786214547728581121561632733774833621764326272244266841771134234456531552245431424727466438558162474447538232344633245888522424352412235647843172316552523432754181373457312211416163882231423473567828711637338146833625734262235637564613436187357531778266256625273513822682424844838555262731427365267486315488752724416286287685318725155683348221221816233162358812423148334853564335645827724614523583486578743345426618447877136176186755336621262548274842422276776432655327112365871342278187663475357476857182346871264274647856277183478885171477262678621276452337666553132176553477428234478313168785168773417744655368674624537563641524531172417132661637282517578611161777188758635355271812466387162255554221178675288356288888685777413425238286383874514588138373173185228235531428876112872568864344465144214326712512765833526512624728346667838176821574532258122414415738532216517635175167868776836566531422178717172378152148338155718446314782661788784865885561216652473568782872527672247684312176382245684878731358464713841155744125254627557383886377367171531183225544461285584878672278318367388544857837243647216482122838655628772574868883711451253415177326864188485185366477111821478817514164621325522726623324433131751834485184542434263514554524668467864164535377662673644286563275863171481134561438618688813821574882511561136766384333834733747213151777757531738358522582545363338413287817682374345464528812245673162538484533154561687378153386511363378747118435264888582731247272118688461378586152512641535313221158182781455137284138642278258364831771425188474844427612327224664647651856511855316736165784756277124725233287787172474123115783362628342262812725654236233673666748633555725563235317827783721481331383745112182622261858247344176263456123787851773848568354658136377646136588573846511582567577775651421671615161421431654168753228227382162634666476112478134343845635547411744578271185817111384756467215886454138136283153672144442852522733333883222584753836141243162344344513832776258128424415422613734284254887678382231342773613686163244542178164286887175454478682676717815723318687413614743673856237128261261641556437818334228848317232748528235877444167548211747321412438458816327774515226261688741648342212531378438127615371821875516636576585235746667765856112258782247813176266734376478741153112835323572284557543381372846257116335553448714368664382443735335165582436474571113548453446836543253113457466277517414654157677654652663411134572372424838466813865287448227563661813362817355252467373781357534672678848475866714582572623143272446387842187778248154725286514354854445515478461845334544215336782812158517212265714338325745272332247264682418658247671124538733526131568416378854737736751481652122137666411183475824666425477358233688316126331438665317522316838786484185325438882523841272535211551838557661361478473566431827668652374147744478337342681353225652885156731868768351438261543225164361151244682334343868124882567655457442772661115452831136248175527362256823184286488187418477531434628327383323122887445443316846378866686634843713543183474675123528355528671556562746242271688626348767785456224855441667317865688243838542833135666688238583268254154667852831484734653313635311675253645447554837363614876514642857783133877177765115111337762824713126862738323774481131716618245224517651383576876685745412883224335112231188753233613824771117532713883763325634565824152168888748715172813573188286683456123816577172243286466185422736238235843357243538865642878633445855211512132844537763827571781156564284153357412384256812841152478485561783634421842248313168273728465555785837533443343641234226154676325478347278561415278686311467156314714338845853471841641654251757835338821216451522686432544376148643231852284325552754115234714447332434641143614788851541531865717627773744624168632776738533771352138174442725487643386856344366241657788147354728217711181574318874451132856314825362462488838584638643585833375527755565264823346877736126454876752175212681674462852664315764115371811766541557441614612874885284351117328471885622258854441648762868362826163244436122433416151844841738233454566365115225527527673455346342614187564256417736684846241765613718533157657231816856671734154842885766533423168763446181256351416683453455363316221836812237845525861263418386127727477317253724867551851486268156764311173321427778835672188581346366165467575831833267466883123628133346665368137841654143422774454687162364266567418721723117214543156873355178528562323581311432617112817576135148772732838678828326566184684865853743583421872578333632767735481662686135784652371511484367527352481751438464588321468813421252881843673521148861676364516372547342676638613566345667774111834655673846864731522684563161663215738131477567588468772658632147282264222665484487863745377588415382373556782817465656374711427843271216475343171355541682638223417524258454452474615364146135165783875881343257528116227731184374547237858364282163672161231254227111513416525383331443523248656464382512351558788513524848412227544464586523218228142233763852475728378612687567272112375362415657642328147514388288433626766387763651565883132122622871636836418734572141451367281885828677835768324188714537346112314737622265756263123566366647844327778866448736245258455726321718587252463316636223157346577628664141886387556365531122776327354435134623275527142754883535426568163214288617562444724763875687665553668618566472763716211746664738763783656454247288416551374366851238462216387216657378117414785765723118648228882638336146533721318361311738428557587783225587214236727516547111825315684211536611457777583161153688728845865346347233677175152826868431184624828412375271655543286718577111163814718336188548848581227175283253531433738452345861152566745152172284544578671874541766241656561681745263232385451417122787115271352747767566762822674568461555276432264187464563582557552364452282874443776318565421743836173288176487746237251713574446745641545872735218125765721225511161784458548238612378566558218823857184124887867766428175165524578485454824377264415171546777736532777236665452788117133721368523686221746442337215617856543511441137772576466886424826531577637311275183431186347416168774524424212317347826627267441128247658638566387286528382243224745212231787236623464114224516656863656716585867214215684741175768235512232727387625355336414887866285327566886438151571281375148458856713468627324348867163647678575333331763612786481786231555571763253841771136666653142767372468445736772574827541551636255363824484743867165881142172584112153167543416213763533712867344241456877827515853766254311224335347132434352844832213641322742142415655681542831252273224165366267743878831733715184313488673481741737687671657834122331867217753833362146778637711811886774368353281161654587167258855613111182126124158577172566168581516576474286367285551617172181157476285621114573145772668768542486275324174543524188235728444281868161278581522572264743384773765443566276217835742884828316254785722536226521754651142633454544185845554175662713766141173434514717231538782542738234812322773231643783668833726736736628813876851831764736175435114476343612864864656186415827528663354675573545667447185256178542564113336287455356135252858474347615637154816183666878775438454284765376733483738127862212253543636254883343276185582763875211278751851844263447653531488876654541312486578481856316122628372616433642888517611317828176615742255478375813464552843421277438525733667857314326561428214154165558582376274213861618531612188621275414782828262748668331545177615356685573261342374327138647415546276482418248347748243713314765558858766672663426231127445582624618685323256188672451782322581837586784268546411325112243168122776153335381887838436621634586441256476165232824534366118435668785241726131288628122627332767754865557337144576187836735513445512264516462781185555847585711331247314127756563188378235773476572818171763121186835515271285713514462214422237781827213222483651766644676866713414384276422457511864418715443484778116625561322174474152365612786686138575364448556663511162847573373831264377214866226881682418717182714848728713582882856264625584362432414352372566333616277616732174872187226341673821335165448524618817486681665633656331572113171147446116748163418612651757763766227585371374224185131676554817336286374173482867471447711262684471127126156244147683371366513641617526732123177824247272412733584423182813722614674568621583858161361436428645614231768725777374477136778313844134711653837735773672436863327436767843743576762786118383385134472233274212585635832832857436562754638158315837237482374186451516578582482672465365111461265323571538647513456154251766784273442552286626668332626781248354564486513735388238361646722444417826373666883875472423765566124775271456752116344553538653465721487411672553284318558235468626363263842216182223178688845577821217418278585716274621572748331411727746483841655734583676366313164817254128755384751624442648155416188511172272626385781852733141741356162255487726413288347652483437632826565847384574115836673875754513338421856374472844628526752328323262856284388483725473168867885862134648768414656812774477246631533564217115277544632736556881828873181762386627276131682376147612617642872218837637656452265186354737183774763215167324516726113483357345623144327146266845256262467388761742761345837322714227134454317152145166231138878887652714342727628783573575133638565452553735354743781125285267182317553412834177364165252775355542367314174573878373575753145681483374483811267763237778784124668167214482288663152786763745217272613128347712276426161444532111367241644582315117684484527737522346117236357735361316467217631531337147671223328446651566411163766641175184485186452425726781746411217374783882514413582362315522638237517414332732282385276347327832642288337428688414873327115584645555145557574124572411872437663227438175418712831777866775643834443157265246418173548227448618744115632243744358573282146673554635387228254255174111271518864387724315227541748256341312755354784231422835826548731831623827157447458352524365855815644643447858665216458553724475651121335736764481743664855154625334157346184183173116462776745447441272841841824825533711252753514332475546338321874732547483651658814227427341115255371638761746483865723354335547145678352115622618852274676847623881783681832118155373327113832726565535525435312535556434473552877437656255465225467771824236425835462657381572635413261684413566213377674683562721746862862334842741374724762151632377472315756116644726888162231337743868225775211688878552335434817315273421647366232773826238586176561413246164486272541221748446754712275573138423267355341251536673762336385216224556247833883351284186623313675246562321571722517817376274242636871718837575486886672168472324628455318233743138714672631432513415646331564877525184223266423424885227245318652331343368876828875483827424381273275228176467123563852453857666652764642384886221423525461314661847377226663175183815458288663334733651177473857858262252134434516732731345281183115882111213331811251874114273251441526534526323318364472765742575547767881528521226252148574743183448245766785417734184853117314247238372132663452532187487785216686335547672884816115522181572822542112448344635113354461284476337485328748373578775833552665158865486871868334863533484337733626325521627316411321365387271223722161112518841543665215181212154367347215256722175616812833715782533123538321185525723163123583423784756345151673861364565885884273625156563586583627142631831124376888516533282328134264833535131428446668855676646638723272345484445612667742576725787712846285286636881341565856536374144751366648415131286778488736711373371642552255341685515474754752251721873768351838548154436873784446542728412414825531841638524168488647377484573215811541217312251785538148284575733486264185777563173656343681748287512862158412776153676823666672218385167627563375224872848264474471684435873226747783756671725834658183652548383748125458432181256263435258288233741876786665671187117573268643623767157621858624482716723783652187481832874743887247421665137713653743512656552335264812272152434465335551726656843411537384584811231653734266466716831465785855865612842137665142782444178275437187258852788888236166445258613178852854733637627874518222677185652716286126555854424885768635366444723582316713711361443113538741338277365125313188144114437127142158553165365672542822465863744546413478116261332584446884835388816354252548368488838388683227727124515358243283643563517471338241257773474453324677585444243726548477385731758386743387477651121658584666448147673128526153162233753286587587446414335532714524866355512162865516588253314453855541717872668376546552552564551772828466544467633445266134545228372225578883463767354154174686585473832886848276127274287634153387577446137156434318435367374313167778277151663251264452281637532188517421253438525657576218138234165564588412333585343668273753265723242772674614215263186868386745725881265536656233248545431772854241236356827312682215435563654645628454653581326417646214236511743757731245874585151676251427413744336127565132636662456285543574174372248452572825121431851818376625835766685576787837881651688131278666416824311658215271316718526481746215283867755173263724473282863651871264526234147481447723676643681313434153264874125464482252482288433514821177247451711632571681211221678674318644782425668717735456522258546127256488856886446887316422143741533762364624357616514226126157221456381352754332682173482157468562262887144164318426423687242785172337243226543555863213626813426611572513734258355643615185343674713521714835721182462532763287245587344334876882185857781711681721244664663138217411288836666747563616263542463818884557234778332517825261473361335672564653256473365588284237251785553675111347342751476711582332883762332133556713547337354284453635845147111651625515112437763716181662478524372743114357112353658636741652776162148462843634181863224351218813626631724657254827248332312718136461518574166457248767888776756513224177274781624311767745187647636632558145177465342173383123556825162642355263354253477456473671885668511276128515751353151888175522477286515525166788152751655877176815363535212577144328352558434772128347524362273512217368872151258754515118884844132534587481275266284454823414474547684581518722511514615123252672152476517177387155433184176215427235845451241653382351765546757547212454578644541676428164626171562726864738881857368863115673738812555648514216184887887466428126843414134451756325722635837545888741244356343541828142415736126161752874575438527518316558257734518464727337851467114651643435556581542442317142422884525765322636682585736287438374446123622482237357536825338357457231258884266862382871223115551431145842425773612566684862224737738184713441327264781856265357127676763117215828168254748362643421284512883554467443574421282413228646845886441244218212336144835866536726237218381316116316611854626458777388387828628855635782761566112737436724656258737167351164475535137621252576435838435548876216611542357272774174127347243554282855242555714227386171561823313587168835113482821688656755255462848583218227326473128381573785881821736718546844326223861846543514374665588381422614667453214434723375715314343271357184312422714788178561672588682481587331471521435148176233712822666561225834643247753436473541314131727822482676257467715631737246378741576724446853641328883473222186722414515312365863833362378155736554615215838285587474318822452776244734834713152775813512616762255585674134336224475782868325487656272285687176521761653544874625131211445243512577541865821152351342175511531774514367731735521655731171144778816433775755127241333347127286657357545737335721711112573318164468283473273651432518657884567814884832241472135883728574642437827426382816221415677515768823762268815756477228654472657626558466134518224633517616778311535538833388872455375243586187156371871275764878524685625324786484278256741247755785356765845684262187368343285462817454857524512466883734713146327254226637785632382671737243572356477122586656786631714378513637142544354626465145772316737267542783317366814274353558333721564751651277745853485621321682325362434242583285182334163238132654564885714281616811817386818133188587165255882572348148435188317324737413862726856522531231166668148441416575847311163243221853726467418734178721723734223767128463313753351248787237228556365872268555457568427887625662865453376218754576188577355878745357286824755263878536338827788174814282376764737672414163728687847864187445487355463576735765258143528354513385512565227755871872383884852241312557246632281877674834128344141383776445635628187551663554667354538334886436415756531546878411561513851318818283542513751467534572546274234724165232227254667223846351744823828418621113568147312544677761167675643354376247647583766611373752822354442136711436311831138421272424727622477172717712562278256187541828723531372238173866783513127725487622456348824712586823735364818742584384246633488171431656154188855374765138447822135687168538521127255734335236118375188612561647231363716336637352836787622445357385333165445747136476327457674278423786136622182738126533487726455714517846145234746588436374536177518883587776256563223747352166776475612278562838241581336211558266516322338237143668568758812487217546476361262214131613668428881715251756531347721587724733432213385341653485264773662215458336362765747276651248125883215617334222462385132123681756264644247636474611871157124218823454568182616737435116877315854258373778626451281316165562224511234222284838525323186244333674464775762721678871346157251185488847124216142848641325782816226162574661364265685636823663455222346614411824183633832314546757653383334172287221421346662414848737761748154775584325858751241724267353825168337655222716427556573475346544464316538618126463622136251814327447117834415248222184625763875626223523163344265362483666534766478346628654176673778623476553257152331386781225264215418155466243162267423235748758411173576861764152753273456143841648856214287318145131345145146661533854144471455555588751122688427774775888834251325357368445153712875475335441178665462173557835683317517658763481814618124574144144485266123153713278742368631732247432113125315321265182631414685517628672272311487563446457524264815864643871576844374138471864461626687655464167113562426223326348625556784282612528736445536261618334813178226168528333776161847731381315836681242245278586271168168781188427413327516553772445452417416345856387628461324568622822638131526243625228332477356518772445584878856446138263615856711642752356717552724412762864524378432363843365527168213118566155565382653186248122583763425272417844761135456837284442671367415816453256763455172422351374785452686168743768133745866655141245122728461613366641714561661785156235748776273545285543676353837358433477165125545265484736228111858784561768133216725718127627664351777832431451183643512374217644478232375336146416437665653483532425341443254455165888165471684515736746258315422862874428257525785171765783841717512114536158635811886233424565132383455131581781746168277211714618115317134611752257676216344671641767342418251346112437658773727862765614326421787531862841813655843273212714551813816857854881575418786647783751751123825464488646675351616673635436484832842872511213873542571124753313115813134125118431277385347637648286515176284786415841464214675314162536825352113283316486762412564634473528688815816542887117255384738152631387788211316713388534177871723548484115615183332875348715786221761336467663866252486477853245327817655237535221326531376317818411263655214785524246165663433163786162383732178464867112424681171353572552326841336744873323472126471583485188188463537838347456681721251335835768782575125522251818175627326781448687765487268861767811417155188635218617135173165853664568645627788666575784186353538643274743682268876552637351374315233614873265154371243174228318483458524831286512325311682328337272233275362532621842871227747655735651346268147213811572463284437818581317728638875644781766278548288326717366735481545328847817587176664557711451471623626173882316648255846158663745176481341246827834235481137422886285336122428263383748842374268757157638462457454637588736841483318742785511145525344284557317645528767337138387773368384234615736771263673617443377277657784376654747625173587882678515384322184267146324578135213734323454331643254755818523181473472624726471763227725446743852858737268774567481842476737278835514322866473333373287571864837478827721528857746746582284676485183742754415381631158765341651755286842483577312376351552576268455151355321142845247314438743654865162658368224648565577558485888453578222734818733182814553148155371883165533215472368634615371477564777111127336431188531654412855311221878728132247751723831223653642431872742165412541543552787837137632526771431255718721116765367112368647756737828817615342847428552236567252151617474875231562234313661282163284647216778716626127484478373662236643381861388512117122151136316577766561381821722534611318641487242557684675464674725423174188574631215561826452781142426735443874584757825357217228421668324362682774242777614432834867811814244878113382657256356424371872452451332356483715516228346322126368452384883878116737428757868365317286586542252412843785382287425342667872284444585545161881618833186754661222531775152247777667634328476584627763374258136768643644688414876321327744314182123883458158524746877422853827286182434311852443186845632684173478588188684535414258787657635664634511438858486872532484267745265332875847557225168215633163286488584744568146551272711677784411465426863447714887164842428738872481744287677636111511548182576785568845778243554671611311564723346837115136188127764885847436331674182662132114786355516146448474581334537385474175686467111627764863323153317772142754535616178566765647164722126883455872286211457832638721173667664768774455511851281277876728646783667171311183128286882243214883826435525635614524878283121578572321778413633181185665674737785524358365238115874442526811445163218182375382778874643113157235232217335561415153584812867387421381182324325737874334382127535362177216638782246576115874387535713328158837258876374847164834474423177877461437663737242631148286455351717712674857642715876515827224281571445716362528677414682573853521631871515754333178245484451628452218861413546421482817141177833724416227477725555726237285158136137741257646367511733558264636446232724377872732825877751834668157248564133226164633478267512417837842325314822441357865636833332276325546814626722615845238547755254425675244785665328748363115687235613884344811118641573554738523258425858416264648763188268131113554225625411774326685313272873745236785115148147777415381558841458715126577383741272777443486113754452171766152766812623162448622756622368641424772854236132168252573621542683662863342155233744857336152221257341275477161844141831515673787283811255133174277877835164413828271715465343662226678382682674518576783327351573751776816744382826555855481415781435283476873674441615242853532345555763252535836616886173313216428566877632882633322631836344155612311741516768156231888321675246443223774236143733572114268651864343517622482644188268373226213314334686815631716683327688376364686263538283871518536466151477737252264284247215227462137763515336424588524811473135217572833433741888727824862862547115885715656743434735387272816614861257483167377456155734685163435421858363766518312855181284446157644337314635653725875115418771351454252524776135623281612258881133227348424236455765712886583685574427331748275733361138777114363361213254768348245227283164267515373367742463387528415318733343448665218413418852452188548861824757847875886882637514257144713874677243783182332673187568151814168853333337231465632288252732835831731751543385568758445587487171751733856856521582136355184758534224416763524231448764331476335427855642668753713748873827226768365715533217484738424313135772715852525486845474186124314573433828236476167373742144544868712268743272784372553664775742438545281515351778612664123566718331858516242881736584113135676321815533324211743511626821558741547217218326382353321668782375136514384822612744642715455558228876375473544528568741153524216152658386321738685337343362772287333227758533267787387384463658472311256178113552347267622656251182113377384316441824673817281381167115712233843534178137756573555855513435375618774776532776732384554854158678367612455313673723875132446175678158362763237268564146877356524436461326538326778353647474783845647341888472168665685511578741112845681548423455535745812555563434864635634541213757145212325655122251624147165112515173822487866772748321786364221485687713366545486127164411823653388648142416815214622267236288227783363513261482534347231426335274116464447586425451348171421887168772886613145681381368127716321268457738144571326413475753571664276856567586537335343428674412535282855612334764458782335776516226177655758812417447272735275814373144316316527828647536655823442423558248687158184544378571582381345241766577257367666221341238252375162375216834661188278213778874181825433783868665553261555414823612825211456121573668621232381552613738845357173348877152871813744123777871747672348125211362345634118566541375218711487585426858155812533351547235874713822616323571483635451864467415513644433376136865222765312723861341444348143615334121511448446446542573546424117475543387788433257873247555133562282477866776787356566382514737543752524312547478136323544626146438341446682148118442762734518857473226853736436347234424534178834243514777137432352453722831821115822451761678514626518482548525716128616444352473248175716437666168126626752556572546784436184617265416278115763527856316523841757317683654211227514315654857181487366688128632588178322617274881626156155628744448841217583172154438732481844378374882756122386431328255248644332336278876175428221783324347637437745711465186665445773264614457848478213672148681744752373785378285225188384731824366252411838658736845845837176278455515368881473264737836782215122337862452585528853455114372481624576638548286782133214482347316432784627537813673113223144442245322483826714748116287287538723125234422768743721188714334286585617756183874732732778313632147227681311355647832765766716617488865163617348618575233513271181674771227612572411621642565635453447256877243153782756828357754715377176566463548484183578154211645414657411422352736175657668413118272588632857711575141824434442431575558622452218678747781831263882424173288326745788577347452422353767644563856416121454357468312544128542747544746858182717338558152523783227688154521311238752727575722743578141513613333868212568122813336742817337337634215358832638822616463353785525632365328287176326661156312563746141233152557255538632822245528878613667521316538467561674213762437665124212455463228854442487537464543623866463682344778834444357472653146384538724718757863455213837143637186648135862735632852225625578454775684357282364426647725874576831281682562314756277828524568732827684712618184417351878143883755321617768645785327176876845321448528162113552778674842546234838757451357573352875471341821363858352177885387156664387171777748372555345532344861161844528113637773477682582158753726778746766552455885645711476637413153631356117687352713457771627533853154354231823764125453423342347218644754753188216653662856246867712884145355835616641735551744585751255656851476751434158731866448522157448457788748824555652882721672433137514485456528254851712766678873381646283554438522667815368854353827613138447111363134351243337616164467878788433712234825218668373781377265614684863352743316842281778482833318353378533461224348887834727124628854466424416417416351638116548281547341377637444736416176717326437232861338234214854558888637137821174623635626117264731413723614463744173314672465557587575412818851827355424342786523837575466132124528728243127465768286681313272534322716128553115622352152171311487678341783768442574451564365315248144734762615531862688125353577452811347128368835285664381324256343446217732384518153278371316837342833463513651335551478175678471643576546772512626432331515423156175646874242361613816153262576845418717787685666133388325268824162617184763135315614283725667674542451713713111561686838265141182386143334681727483252678378154374878828457141856763147542547166231138835545611154838678544447627437487828275342744378843444875435865634652853616614617818117611384534851743124384754325322643448552117753122456518681238161114865736622531346183863652567565538213544453586716251425347155324212263278588375667668283168317488662886456175557335822387875621347214748155316116267363751188284614158661257858572177364161658726282764551323876145843456437111686548685336522386581483712528654814844264582682852111872248664132585613153883285852621481364447513263135181166567631441446571846331311711516261118243757213863516336474185727737418784262457725224758858481841476333658715383414846747647418447271143183587845136671512853863342153162387742341877688482457753827232151715546685262721823687681268362123363813125254156375752467462664566824215732383872233371273326473735255414581578717283712718424687828251671645372151117278721261522544562345731816626582544356328244512432673641422767882134733426446276241424436211668763825256781275481538642337382848336442287816456276651743357543175776515456767153627378314236141378845542725331653156157247757875748354213632467471156561425211454451542812127532636361463651613717562358537881251556411635465646213145857754541513848872588764251255627214528366567436676338342456688425547272887742175478424556886814268873163524423661567584381551166532815266368543351776776737835357255748565286472257845238878274516271114623832754517186885511861645455726266858316225572137712766862458736232223712451234114356844255217437626616818582818134485417175588867514852822272151281346245752357275572668557623747742553688735311437362327676636471685132574172734552741275747283233433681767847161322348784311583543768543114421548348387425443466711465636178781631631268413651182244464142687367411177887131136721854438358173888114413816876634488837421438685355613681854584683342284244778364532816518137484438518181134861274842387367716256273748752227383456573171727248726782643822457758227533214885747234164166778634643255173578633226523626414833457674777713672183324383188188485858814455624881233357334718428812867424655654644646238521327225863772217473524877387235857738423467577185146512132721463245744752576475186423525463561751133477642871556787156613621665765624557643467244155676655372868217223154811484886534766314257667481455753512651311357854161847653488542857124722756222638628254554425312121582633154887535447864176217328334267561158428621526874315113546623471273621683611468588765176757286774643728176283113678887548425683737128624318361515182556458835318176825115132283768821356755176583254655267254181852184338834688815177564175452157823356256685653752565671376558852276568214431772645371325632583676114631241737683381888457674853633663746535455351148882421523743728664173638752863532344412453632375674646338575735561671875845143572653375744174641615363554738756622811281687663784887343782377848741466583165314411715775171744728436642157555653743127236261628353587713334561812363283775517518758216215652458576552446156714751476116633565483248151666114488144722254218624685311164664724784263357564146476123238563842171263418826427166365647381662738455762654382158483866486228363717182356352237164831666175172153562654848262545138665171547741684728221784157667514618733317133525114774251823633261123158433572257546658657682178651163573531613536818832611565142715763183764187487347477215775563715724161566872466272687236453644322738543211416622886771473356355534455365475744881544343675171531645278776152421545638154562372356772626428231851424126241368561725556285268762573172486481316154221615273738887353218447245742868831524717466853773634247783156156615255818555548478781676552856684718216138241287767583257821348431346645336325118555442388834766567713445245425167577467467524267145855248642844613226163825117568265646322273621642828366577381867218746634556586777425638237333654585337474143632231614524147318638862611272221433464582113444477161827882621754167237117358754267858318571653631528326752384671262783327178323171663314111448462617531445346612464412813157561681254285635166821351327578315475287277627834323325143462412616872611448332438657238275422383847727562453285237621548257473347128532464684874656477483212232111834772321415747485335222442648613781873631314123323442545776643188777651657138252485658816247546172854578357364483555226536157466657116613541545662858228824632464242512433454621716334223686583576434346548811647376715242462685335668184554628154411175237187382734484458872554812111388265585445742886482516667477164151316441115281536666484247725281327668678855618342182172851271873746371336714337234823728833182836664317147147552658841541811163381436387713538485455228366873168622112887321256463884672355358782812617238322537824153247448328226456766667421378475668114612323835513345787782531156644672811818436351536385545317172211317357862614754158378871774655382187584652684618544582346668287414758372421587227565488735622238321315137776587242658217461353284375887466682576418188843835855451625258435653861861431484176283824446471613118654766422881575437572376847817871837676532575788653857223111568367186448564744716667575456563256135368382676724281526267572587261684324558812477515782546466271828457771766525133512433261557546573136674412612838772215256672415315178128851143837714131758588786381263757438737268677324371728245237274637566184167511584546227346255337645452424864638251772276818587863264326671654668424542847457351566165333417742441564355867688423278628151511325332464152487438747478372388136338576548487786672271625822432254768484811776551447121312422513676636784463185238111137866686165614173486415525575355743528875453437746277746162366757665554765228863688231446561312678342685816768887772422275265113144863468625665223152336453131484477685553281472477572233233333472246661658784533156778768218446336161646675646812687334752662885362435161334882731654716873247374574781431581674416577242255151267617456516671132775271382886824744376136385164718436236323171134323823327482873782514843216281323362511128214253374764652472228116753864552864813846478623742442187172283151446447656578868178378654543748851381135654517525211142486741483128232317738376584567724155765266141377731355111137578672237652455254817831217311135581624288312574144414422848152322354648336282565676787871785123815148673357175613882751445113114518244135843414311255218466747865578573244475882814534137723268423177153417656827346421287285634617513541316165458782777366536616226567215462177654728256565246428733353786765332623414157637871423744134767112248178274617512244585617755553646624338466723144163631265436617838428855344555837357364577824324725422126267461313111525816317781338511827752587757576166717353356877165422537381717425763384681377742484324623661213656652722826312516635616643751183468541418116266586167712677456781652467167781126721551438775224787514427757865547364414352441528876477368656281677125127352823527325618645431215567778572778736238416477671387822615261117857661327862681435827188672673265613432284134176438244662816821451381475588863316287365232774436552261735432753247541163312451776864154563718621275257556463446744846368628347163288111426632112253488426342227544122753572483568524426257148551832726673872215653264588381156128787532831626853268584581352853548363533361855768437854878742256761783628774457311253322212477764713771667762517484623433677221582576611256326725384547572384421377115182681173367638256352414437815475354338356636642846273683274682283385377852223477713737246223147147665231358357114877758242242146761171772425775378735755668541787883562768357473436568136786765635647835526362375632513787562214345237447144372442368657123338464853757338637578476442821741476577834456188754452613564527563821671772482133578315568121573735518577483616522253425377132414632555115332684478426825324262635471152585734768421762814436658264361285647722631716514114676364482426641438362418768361314182447258821133836766653346173543674465857127176664416731144487423828422833317174572734535874432474136226223121245327442886845254566885226575315737337427728335653122541858175634157861647677323522472136642314421213746622413735541651475673724732726585333665838662626344535568457163315538738485266757371747373156456661341285773265653713542524828646377454112878555433756675273217443378648844558613855331747238673867743414738716763185176568433431872288372238575775158623636676462551278468136512713444617142375417235148642868146152288883787187721384355242223538458324361161847646747463342662213642844847513434125522553778666647732873748643225674548483158728568366547272584638143683814543518413734552517542543522778834251711744275135751612853716381415453237345514258736573833257365712714585646733772436486318145383438575221461447357656377867484416452141756786388665461753368428133846887347134811113785688631311514851674256626387364741764415533625651672413732335425558661838267413176377637532678812878668652463366115564177756423621384221456354864287583435677141236657451756358465884344722683416147541536737462132452513748178451762882264627831642883846722466248818186555827647784758432247528426485627218631421865765686448187687868776341158225462137442127786253187488415873431381135836773414574323321528822527631781268278644646665736675447277836121635666711467526375485321673184264786176174443737876565544511823158766432572862336174314654323685568873747181873582827851143472645583773548637583642223327335216655611134564328654775274627315877247227365666618767143515112551871758685731561256667178286412161223182432158274547455162678885627883783618526642444657535184323772752227146711625176716415544782163772385843814223868511732221377336453156327435623348323111718333878851552885534557556434514447313884818215668772316641267272622817418178623212483164771514645533438814566583733611685442875215425116533278258581368411354575283784426415337843876574228677756283344544746232536242561287878368588154235857767153376315661387326878483855438314282782168264885354281255455345665824786311786123222334568114337436576317354663881274337815147887345843448425422588188571174741365836746788416256232771775838853126412247147461643821514284251237764678154586562853521116272885643777473733586348617677886272326214158382327648578323728187336854128155853624248762228138552224535237321653773756848422366258578857751783766248813744557861534426353142885666556517163556328737454425522777414661444486637367273322573637567542455762431866655677813265688423658215148143777143434627883715766746122633871772721353117358542373885727625768557644112526167356622714642725736312768521834738152348363552785532668682482734441634262283868173326285185778238853846632135831863252757146535227273755627877845367254824247465384545717356126344135187523851278318771373575326688387625677413134828626862588267754333862612123222173348518272867186453584413674557773718327572877688128265413457316373374748536163164857487741641174413553123728723378177468484257565571782231728246115557564671216655414387365388561222677113223454682631554151626488653264443458827182714378427166583875125332728685575871523375812888167667458485843281857273444231236668514121561551352131141453443721737815863185721181684711744283763523721285636433482533524683146868346855588317544415336782665462386188325846467877417654831264151635326817545418811665634717713743475273114244682725184235823886245323578164148228477782458648161518536434517586434771676621323861733562588414127215831562384352341354223164535823226373578814615641258532555254446261187148221351466876243437843525632185166612715214834244637658822187685135315486785878327274132141716418586745182685286112474355335142862342752686226574338454854457324248482552843381681243337741278613348264335255172115847573317245266183282417516674244183134517272751646877645823347724784244158315148337162534534426512886168155531564366381354762188287585462134746254571365648528214151276858132626761787138641567634647414123255437474884768575357728321327644744683277532271622161112134515158125311734143675787557767285481418611651252438575432164784111247117764556686322732617254254345155588641176728818161545162585166333764873634622384355763678885225513166138267887481173112881228746643122137534143126427374485141671553722375781787511834441845618454613532271756664363716867114146276431344181636751247515325775163776517167116473264124223457864357117573853512785886317348146142728366657825764353651175146752548445711618255381553367573224165878258886762316153155728742215663676675823223715612853834651887353876475357317748644514848738251225731466883647278348618673215126568373663834422355735781171552828813268268272326568745721745634385572586214413668641838873553842115334652153136566656224546411217627778155824577818631772482213671467131632758221183867176264238245155685837541258243152444854778152331874317421145326231622761632831628155557568667171618872625727846528265687335113271648772158824343731466786366642425383285755848338835322857688432137157618283785778121263712654557338118888374533532238415641684527484274678242552345882425382314158244612233455388445657874615677682138843357453414648584562741516475371313158158538548862243813211717435746628378884561645112828651214455277772662124855125324886877331817675558331723435634728577421477846552284863272425784753352458258564674777262313573534751586477412571835412612621668225274488836254853468531482135146522631631326418356315822224437281854184285516432138631522852741546616135346886668313852746182142422172315862317337288334634515653557688853173773367362445553187141876567773662657454684721188581588815784236888645764343822572316287444756243276323414616734855362275237547736457465745535881234112685445835566874557716373152263488584286311117424812618112787744654248778576438485366834124514861154817556366275718188261587682666726378613331566273116736613438772575246475118424732524242282178717477786166125567386772686712447756683311663876726164834612445337617814132135664861163581445635412818363232765263875312142615725122128832768353351746552778361448621278156683834668412278213827488416178758617272772811827278625233541473154842721111668454125545565621825365157255827533812463678721718186667254343283573486625686473188336252375581525821582732446743676362286423471663688562413156482638417141185267187151888264563442383717564146853427524411457417316243611175446658221327331676566788255734365112638457352375133427314876884582434476212111311218118454753371583632323283821817517524615114128382271215584254112824875576558554473188628711811153557166327374327687565215283815326184436831157787351732152317541326621328135774616358522322773511373372371537658881553645533474427425511623478178631152275484532343561633647615245817235444454585522381552377573644436666213348852686718114527773885262878771733517385755864753148335221217757117813485653135845768341127713564132466682865425167563674224572652754224426828486354232621774628765377735177186383423274268611683232562271841378526742835785555844766874835521278531673362784174451254324546621674658545632718241833434774453271243267447577418588412748755273813321651218515522168213288376346337811171542751666586873877512114712811534426444618416452228328461637652688484565462867175177682651585662366731866231515264533615424651477236271514331846318346787853167481278815337428628314158442717324317887287686567514618351412838321271585455623444812513548318317425144656827238376436458358281887268584273615314144776373262867674614788136666661214748235828756824461874547374882243135686532831137235586424571482611268478473476355522731848548775458116142456653861151241665548255162466578744112723784561771766333566874465842724268535324481171816355318553742238252471588354354156376243123313287133183628252236825215417418777588667846728612381471122837516133885481647618485543552414332685585281731687316422473571673843168575368415285547673617665626633251454381466632265283138567237121765862178657561786151626216825118685753384727557361382617866273113245542533488782832658526231542466672742757346285467188673734541875656713234854261835564514168756138775618252544384851822378232534163648255165565121718144536645753223615723438811677672135378562548711482315885868417667815452575564363111686754711347137341514731224234361823114184814318156485227342737588885875462858724131622553315265722128332234163256225162412684736818537347722136457863263838477268688533865175681584761761417382721648636842571248686348186773535285765436375316836267733517731826511753542172435128482741538282712784248123256434864228838754115854444846232532137426171652137534534127617562762373851524434353326735365133815131185254354688586338733145332415521615242566233825558768351212431411622744267455672255852872622367436272667178616538285341218116756571627122653125112335423124316821672254321538788838232548866637663884183715482451374284687122758624233474531433466845172871136617287286625458612463662721834252141556885431117341614756515838283758547151751252877461622874783265188564616432238632761567153176546118238743562212378146413766582762772725672658856567225118724512785837213368835577151266728366412665572788478516473185676361872158214453156877525522256773842723341775687455223462677333683474777754188445833861244567714717385837816847111417477542182473228468855321127755263137836245234646233752533365483762361184267212831813126154611547774741863453523328682887134185833124126452773662631716318375837831347141784252322117635363736626422823862186385116846561551838542431686883373581251567331321344174153413737754475513183231235634218156117773231756753166285335713428228864344121653131416646827236745442566164617171682426615187443873648313478384338262718825651615878576735421854766614582737714353821668772533626156473664141556515247226148467671487425736857268683272476171857666518658812737357375481718784637187621271331256171238368756378155524343445462636426444135334816437768763376228767262542772868677232128123435877785628413617235155734445775873738882548565388555747378434878832881644362816528614238277546538387468785652114875118884424137666111656782188557755622653223641857181378575216573724185167483485764712426536355644643356786613388346147717244378751655182667856556362613284332863814214842614168756684823113218258641131811317348618266567454476111621776817348311286741376481252838867635158576565826612857133723776218775341163334585481264243581787765155133452477124741752777836323825487484543322755447522164613654361221244143377483252125285467555564284315683533434536225468884217636633312355555525316511168286826281521443657226614432237226517333342182127546827836156537788377678858257672331731215825712318277231723542444424444685263313887472558863617226536585278471465373445188166777187426142558684732243442347883768211564735453442635875716582748655723852217448663737217754115547286142368778716788516158531782571253178843824363831645568344588374578173442778763513766651716311658564877653616556838265213544615548686563481142715627848863332552422244174158338567433825127271332145551836835478373275776355354568771571733476475361848332456871527546336362171226316781843637676321813631737526756533386336163384452774434876562782287822387537571657252656161351148832127562188161856777575677682342224177286164665124862136565766588584471246221482777657372558275642278751542577432887485646335765854736586622235335161315635722477431676425637866144232782871277822658412642437243356513486575344221237887212633535842287846241258867336214176138531421274787574477377617176476115247255315751715383131847253553143735435512657284256256143385288278482858775311626417712116583277227123862457236737515472731225136745782546125715323461541363733523183754266423115353474216551727777238353611167518516834341388274667361236334782648418833638523146463555375364235146616578517572235442636268378864332851511357247482524847873548568754472274617453672736582842517471588327484845861244473263438834154686185575763774732758667657234688368576261428567611376643562532534183468566133814637463336576341725652318172148127855757513713844121847523526487871135742632183114265537775574148242686856735742328577836542655666515711554144346284153327283326867454211314614331416618424426224535125244374474521252768812588652733444448576645731566564381225488411554478753433458215382323423134175284278428634312841163122325681318724435365776561643622553188188647177323761584535587753727687362766664551616138355136328778622715442814635845762132633327871127337577822212455257432433326888428237615526438854554317336135664647127676128581143143562765417438242675344783554737281464575877818633354711753745222355778847785368612742787667381283331332712418345526465733637714147741837738661873576266148626182763535118142736182468143611328263486616262154431664538451258272582722215322524276686543638243468541432658872885335186421832374814826783347234636145343146242537686442475255638883234537228142817222465857276276286346134617585477221526315128488138318761235734225363664232777447474857676831322555522515488884638782566328342163372447644343463443515337838612531641275615153386624827467317552213832183587784333624257857774611583617837423515777811616455475542727672288511185546613325763174762611475416272733251482645843386553362472716158135242312516713534722631626388882115316463741168521481422747636844235472733418357284215181761225637373426733465242633237882813473866327657864484326546482588517712418835682717748268818735745232342312441327112627375854485628758171334163748627125326426188571278778843287636585636168637372316852546553335645224426151755552346461733133257475787581335481622168747226133576155474564123775848438811674838632878316467743844553444317411332426126754318218655166187835637731448775765382834281716665238673323262645845234554232767447815844321152655735371411647582858548172257873236731877123738634588584465364377537626277432885421141187571615168736115855625824825681157278485345646317748132181651632511246441812313256756535367182327133463434651546327842244644576348374686723874512466251632775471115474766721272475661418573232743446431722716644272822476761651582332818281431847611527281865824714862887831172728561156243612878375242632616587442247738716585481614474624361775186778455215321147485833156132312545286614812816726115172672817633242528878276527285783637428258244313811574246835272414323718723724121235358528736844465625316675666441162838513314612741461715442776471643611687157723456514717676884838886835788341382622158824574636323873233124243112826715323453772241468342762633821216618612871252717413545688677654432162266743821461472121544371431517782272444487232411435854614731378414654764274181113315343326455165116543667647624141644646448855233887851425757367413873627284773633484543238553414387626543571851868134313858318315774587753425273172223478165615358618252214728186315223731387573524546756815774272781163718657178231773234472718675683678522171814657842178231788345318332531236287153756748526121226241353175612567451214753435453773778174351264871581173473588774258766768583141111725754763657743686174118314475253484472724285535848128121227648645783132257672773784785414847568148423335153242287343571145587513421344451742651484448553613523554655611654486583646618875217251583158784743213434715488878412131316375431446771236366335763175175328852686432122737257415711377726717664174756145532377558573134472255334728128633461322841221657641348322738783716447638352384755548576361826256587331353258232655361866664851316218814826711562758726288685332113513184434487371833343327426687844324454561184186132321768547812434538545542127331538216127727136256121475547471214222581858632146625753173582612681426412344218641283481746664414252768663281655444771535268678682544522437568724288328435163617763174734552533828511451827888742641733255817865826137231571234385174151557354513363152711823828536188142446814832216484243144164433414548818488275485766177284517547163633338255781877356173513834431654677318448514441644164857386133282688544312325186453547144656134883834825623222834757658132414762721372541548382664218278338472564362276247166814331858747486528143862352165626751522486336554538832626833562227865275525267381258122772788176574268321514341835833772152566274382281742765767137426222865661756565626714157557451678543118241717171736843457361848788761382432816876346673218363728686432562463637432181176664145675384517722782584781768235586762162128861248867444577181327661866778643636224634743628657235288864585737226285661533275885174867124567478615343413426875588556154522826584127835746542751675152518351526875747338643724488854722317465234315714637571126673231167772454482668148886665841723526364518525777452328175336425744461487251315212443326547775428736873454582712516587358687341373147884413548711251652522352876877746284228718772546468354452756612187418155814254517484846788268468775777447434871431781161153616281438271834187232776872556524238343856855164844682476512851434337321876571632111825343447547671267363581354132273416657272821634221448572674463714246852253782324168683727362518674371253412618715332313211826885371815226176134336454745437226422412138484786731535116228887338446245245634114134315833588323834625711338536516884156413442414433823853513238528834331542672785183188815318256658778584667517676142543233625156132671124864638833284273224631418564375642725475681728136561361874313843731868417256168483478267518453733536434358833572488416733378323672125127171315154664144477126355554762636337713866161478377174215358527222662658333476172578868214622511666838432336634748716326477344372632231164644727658356815416514476266344614153525252828138771784211844812476315822621528564543534638626532832574355174842153426555284723516732856233686488447668278331687831733212442152682458447861616181778181342416375482482758838615371358178387582246846232682632258851768466825115751178348172864451514226718126253856857532427764881113663332853718212822253616662763145168731272788581663638115243523276665774624578356285286726637626378837186445366186366557377728447316716427652326144316785666577125753164736134745843522148416874526534174357737122341455162651722232331635474373316358755187735658778543661167184438372456281462456367234221626638353465155712113641434522674423848883264755525675387458684685156553761322463617834476145515721163426457662642215658854574653466617321757877718131136444526731187886662436826586516746865527334184657567266585815256853525414763718656441615365782283512652718188622326884522766573814168355234883284771817175441741224646348435611758455334565545366647333862118254618333458812537817712158765772252782736484516384741145583746857626586233573871864135354247781662127411628124667272614727367442314151723482868776613172578178221382464621876721157436572171162686832168166415222124447653628588358433146756175276587153332372873576877553866143462267117313111457726538472873281116524325322334765274783177167164423524143242638726316315278575184442413737857548268566744618874377238517164727412168451421125424846564167421836744675784583114415722325637331125548785215572688771668243863641882546167376416351424117362246333456268684812347345656248863553565252726277412713447658653677635226188676584364377621555788458541316771588584822481425564516436257435252267366115243768836545321762183378663474585843582843545327424328886334381451621512723341753352357876816157788726615811172177813666464666523265832232216415763738535118432757312422312628212574417175827781682541641513183347458826474154174734864135884384648332545142521514651151556645788728534245156114161743775546735664387727824382715581447658437665114443342672738147188551464237385541742618868463842784817121826267252488183888381261331138272588472681686853572255887586575332776615434686814236625245881184247717147226877381738344531646631472883711487784567567532353832141745773883478535858713638588753523282451487318514272555171166877314528225726646152214472254743378782421882356632528827633277223263862837251473645684266455864876844146528564817234541253426422215578747785252664185772723465673286747627713136415184762225478368144723281284815271267455681586582648638655716885828434884554861141111645223512161813467584577287865888226474642718622562581166768435847382633564115338254762155657313618848886164367344431632263614172536535748366162171741837317462635355545263836614775575372778128514234457617147186341774851562278263614445818627128686868823682624585115256786387334621618578422776174618188335235586365331262828334652331861173518345445438627321353586558254225116351413132734556823237223332813288215215177244785175567587655665555746342233322581246613547115321515216128327276361537872452854611881518242868656475241886252328477548538632354553243348634553561322344763118232455455337371617746836124482814126333855481251581283552816184276818252367171131725762132418826226788135748728587144854254153372651531761627664448542136283536688328486267182446167231848888538251266774341262577362863822842467271838131146212687781178833641565338787813384158718576447722535157646514588513588417228681721183754374334385241287678515386415457842465561682726542213718425661261377432212348662882261772348863151514782636381458345323515217524572661411636678323722743164775711634775525283122161324521817255837466527113172388376318451872474372544122436323721552587242455784124225138651843164821335431126287576278712516478861881114223488853541487648876861531642658668552713522185854617461414236884421357678775461417842652245582844576344872585312283364548785658673374673537657844867482837481167483431471223676263813765622477837346372884262855213288336565464757555753765636327587236751454511435667552724522162742236342683712137784863874287133253776754684716643785184271873815251535812158433618878184158158262385482657256584477177144126518738174721346862171844425527245187183572212564643434835574888478874383171244677627671838385811464854853673226858726515422617624228375211222873435273484565417585571112171868372518718332448785143221887652581417185678538278681663663245164761241764334343362338363373745738854532131562458688285221255737688758832647784328315433517678527211153234614216743383513177881417474463841822355671817325765822361473666745861235886674862421353182365118262355511278332144175475277778363587627712335511525231657213738186737318218451273783447335518224767365386248836263124546266688743548765458818675686157634411171315887481181838588881634762446537623238248842852427281334477217536551544445387218834637165553176637683713843721371743521843741473828218568542348424742516777485477375812733163815177387543482616134282474371642846645211415365645265378474428521854545242475558733431165476127211524738844515588488583112623238351631685645361821436613544464388438567748363124764114457581816548462156848327315615757264364685348544715487337465116734337367887743821238158516774533633461828713662685387327583816868373344222278427824343252528823546771313586235886136423242133384143238258768138647171115375324787772784351854787613421827446533162852453447574125153114525845343414348551175576678656127327753251571216221738284631318747628645651772163215122285875765637388734813175816275412588746466883745383262758264771816871287874768157442236721287388843663222614211615785546553152513871887128245263458563885311232238325287613886212738184684674516534711566553248823782357485756165246861573587586446348158514277717184223568827338851555473561316226314552421841515657865382333112482423664335353585383872622187784146368573674134263151888714671251457462641713286518388775814175231674724885874511431374872871258824312652856866126124272476453141467614516781512271518443748121724685715482413326143554537215277654381536446338181456721331825477766886536351866663341441282436264768573378842617648643438662388443487685251426752783735318588243148774118117484643576226843754668524624682541872341132426788832754226383447215838113812257741176165354564352542227268381161238443547115211152243861585518673383557124511313437424471682565552566875486284536375588558423137782278785215657353512564212475831258745155587184342267275481673664617211431238231326734141615677148536631453333834575688731387268732415216236531657234163268655588445526846685652232345538584713654826221746177812683332247228241643851115323711646878753642266331333813211487253426483434651844174144852161843884681513164136211514611876672837367837882165675713834832386246833432332217673828213263117372175835225435861753744231486235111618332732134266451438238821221756676531348726467272285756735521885515645227862748538611154562662832452174736812832413217345562462216414587355154362253683851786877325674267348445557587878864352684238312216156378238527571866242362268178751258262131445543836751546452186218625585611831274556571825232423352517748437556517235837217425421647433173787435825515413744473127831835212624825243653844148422274863551673242456682682256214883886347376356283743517784161561535255854371886846767613611437241652327643318613385726254364677321243874775653157681813311635566677646132316568488286126788323547412774821347884773285461457428231815167213588146852118722623683481816474314215567475856135165314362618248246653586653466831466564742353873628635417714167772447778622825356776124755837616421868847118531878287631733661321117662432152251145765757774573651436241126337118385747382721643773266778578148535225655883547823281574188868633224776833386254544257667234254475534884284715338342275565672185354314733221328814287722385165686737212278276274311742532247673163558337836311717772145726351564528523815343474262142581826143412153121355583876777616788454462234236252627625463748535541673766871513642471687672644258833371867625656762831688568845544547532168335577762837471145266371211867887225118753667448163481476574841453538515447873858785518357427434386244487256412187227211543482481212556143753858341222276172237818134447671173676688814377267865448471827883351831587675483846581135137586823523342668324275432542621561832751172847436525267877251374833227885176821648265631543242231523827525825646563736847362153214216835383457164154458243227145533785321625583688111682614567637816214376785722412567344752334182612735472664424637162524643152783165374417758888683544827271165348566124468164884255226112728341267578873575165457675855233634752566264473676388653358537712143211773882851355232523266626722717786752857558263881377846387168825287451815888758876332151564136355762758115871844247114727381833278131537133776316267358148748136638483262448746254848854414476646352265481135656122614624122483787113527327478751627258362276225686847446255747826682325413722381655256762152713473662223252386332547282183264377545434348435768128418568582821442644775788875544582128865733544628283648244787814123678261525853571814534874462743621684423878833874134487532676654682733176861335435575384563834163743226521523723466566181158455446628446417756764537236332844475854457215641127446266556642758322756544764864327684346177764455646161147515813773773557334471521384485325423757615631562668437256563785413475226478512638377754271566666611788446164317812387425232458281866771257554845245873212457133676335442756356831185415326621175727137724526711571187328671488847651542753411255844645524354325681721556566658251371812344435881868731487724418144234135467534387767814753881514884184546168168855453787784742882112452255762637868228154144344524331223786835428347714828428832164176133485637623461763364367262346618827577141354811347442854657425417835636728728823426578642483682481653112871842751277743857337243225276352413387475266232135748236742276837763362884267471832525866245845687624871187742514456528334425844623761866322537161382824462826185442245836686551558457784153438844754327653328344878635741251224686785632154554118573264855567117443116377388761337312356821686242448274514551688571323124653467678666134178224233762134216524878725224583212385362545553375331272481821787126541484656852275213148111171587213348412717885113124184763428348344345583372558867467851363284235238774773645342148441236524686226764313263684867572312633188472164255178428762631527471476485287414827768426355377735431771468816368743652176372151374457465255852433765543862144272534147554715555588123411225638452553374432656213174422113333244111115415561882868867247577463848641352425461327722516121566751735526357812184473611373335622462128625213173227247245575127861138162357266284868484627386673656331426844268626463434823687631463412216288767461471773728672727738516385768273322165356285433273744138372888287182686312522811251264757154644511668866787145731523518412872883836881566141284346566214867257156726541222341332187366663545157715131147842864741364817862135875474255845113244871342184184552616227717375361464164341441455632823651255782484812812145182222473445262622557158728121376217825826541718655536477441545752621813366123185345843557222683834882778182466686352517176753212361548125867643435385154645623748861543636251561288365416668151126731111436153238262473651552534817874824315327282488361126348336635884334723342242148257473176755842131473723634718774537486162363535354686856146872182841527422645371746112622171376467586118744467228728557735531237154354347342131667331124276268634166156678552528443122518735784851335651513731332544654343487754584251827266386522586577827763838322168445762584318667566341311237114848533758888756628821122112512113633177566528777448527687748625877243885326815726467217157528227682867581386437772383168582518848785622346851484621887743653254234355186577237661758221546567872874553217837464116137653468823122266543816723821584455368351638453717115446338484441676563382316544851265568415825578316213134748312327562573131685373163373756357556124232245372526773287431765637888423314538676135344757842261861518711853727521733317653846113651611716785544373571156411667144774855334754853277373681464268524121241382777762511568216631252521242871225552778832528288714136157345834271137877731626613666172873265551551118678351876354138726711365187167635567366167537521786581768575415662415618232143788455543161362835743173813224284716451663411261742121122188478855582235262887141817826785731383848732325214674365264713186232173165256674712847551512827286415617884238528424335186854361177524114587245154254453115143246867447516878584668112173584765537333771247214232832146182148552252416131812311184864634744661573384886185785814416831821456262411566362422817124667638472168375832625867658456584436862277662835266624458112637261567643276466873322666334216183745276284717265284467162483257233451146236821238663271485417287231714584855878523811546754543453131558114618227417268824377371681625336453335773566457552186122154376828853186354665477386855261687141512712213365774328875287236887657515326311888186854561371641272187326827614574871486182263781661488262138156544558858242587354811873673564228331334214423227215884868275613386436414826287675865867546673113413224212782338774176581755232273551541626528564842586343833146167173722273636181816521513774541125367485465164732183141184518327845474886551534748721728341732573722776513363624355344344127345534413734166414441862165475768188516878343674237372558153341821776134168434423348284161482173632445427437568761778275782861831741883485748735474458647714564258344574768628366368333171287328754378623671577721741727514485477412143317436874855814454551168526621128667356728128432577554273751533486872534533173336753261222362576265285217223423288176784622745238455845454613682561746228164374238673835463732674428117614718277226221733175841472168436526445327616371657713727674624365676377645348162752611247266664848536116512517751631645162788873743114741662243765716111358747878286341376257432622488124165553248764567344784835642658135587662524672562622112375446418635482251637552723581624867575248648562312757886845877432755478124646777658427628324627511228727853647114825457486538156264644518568436738174471718314872152472345378127522636427347716518557482875457816746577423868231245571748152848233852481357346352776552266327217564421552375127866638742241662588541352481667522284735128153817738554461243115271361438114812751666721734212476218822723828164242483466556354872564723725687212812225547764837281243271658536426225468246536326116435266271488721424337657456667161573362111687481733668264716514363565746473328388435843123641277112673181837737631822881865848421254424223865415384453246637471183515533888246363767282435368836357416665345878356645854157152746274757183656558721126522313277586147447611135127228437557842387862723381364872458883728313218816757784881857283278432828831787543338627471218274726178863828764766615244231728216712465366211557825218388462858611743368656772272667387382276226766264736275411236145561658877534342432258755448121336411167737332132253785441128143448546835627638721211421227283143667457586256118185746465345226583135555867668278724266717188657637353558426481843851686466117862664588536836181383838342142535368728642432142737711735815855587431185818178833723556626318524437444634317312343354536827866161724753254641762767826524372677626618184258813158542761367432813361848335723284625782538842682185276671768145527164873763143228487262858731147524818883287275285518711753467326477366683116386557444576533122668562882718587253816135674556738346532678537154424733157523883836286424347251553642617458525718275436522114151181252867675335241351112822484488472577113536721852563761661725634558451471123715138812138617841415827665646624226124884865636663835687832654643222511513135418752837777814175366277244527754611581467848814511828344755247377834172432138251348863845235163566831744654678373261262672847262534518641215183121683537728335457525178286763175744717245265422363547264812775366416838255614717722547815684381816381215542837671432883567816587384322466336265825615662458715315437342174451518171346557115645275516471576634227248555865585774132675733164482375337432641338338583646651185883572882265887437344377653638735244113236775324625151526546538711772781464654735117265736175636624411254631168271886248744416748876112431537553223836787838673277775687711332544534273563517435878458835837853313472348658118666372772444338326625758485413361868756116188637461846852483486553237415222784387473637854888552562122518684724633566137227743886185823857417731684856745538524884282476374136783257538152521161175331637241776763623378446223838422262845682867811235748457446358262433652758625348778435746572185347514486128518257117352818728311231366637588372272813763741472161254437854472556424611155788173788212117446573222382466644322587427375236454345462327148166286814433823337632848277577152772242652623856638583217525432326536353535871221778765527267818238822374738522685262724387155674646765824856675318241561173642263826128261747138848676374625513755463881132732483451185257417454687153756516442647723428756668647514785126456632411712484722685546683711545718626764111282332543822867878561148475543557651525774661437372162561785247174213441714727323485653312422386366522358742531748362312151371816335452832155236634524438534271871226326482661311763313832851627735454661747845822828263364836478672158788284656514582527677325784665515231613863382511867656842825546121777174478381386733524472843315384167263282782561573682872278325672267477333276215271335244175521416222654161751865167678154376423744675178134872488724781334536777845551431578774366626458868226672333146114843476728422165686452252556733884882668372448615127383455737736233161185821477878618621211681171376453624652426157531317466541575882358685534311738561374517625322216145365413443411134554123322432716313541884282861186188426521481782653652847685781418857678335115872223816743823124625441174374768672878333684886834278343371434488277127146213466881572776538138124532885216533727543622371844452762151678812841684632736532673868132216656752787851214736582774457334811672431223311373132876332732232266418287127156436382525487577664372881718322525841168218164512818188746745886187282123586146216273764447647153863632186681427785263376146548812875745422238168343571882323224467643282171177878336172873382688163148257822628518864262281326231214226577426444142424543362651671763277138344747541661887761717874883663666147562535382668755554611663838313656875215378852473543571741762644182513746338446487726461513474741167822352363613572787557762846821662513411761785875337271462633786524852818647843245853156381235586158221655245461532637334127564341322157268465437387787388153553254456743676371726386176588514731833523472276724544722477385437232241555343882446427333732472862175717338387518822622685581783862248673678435427358187345334381215178814856555857753377776313823577274576883174431765523841242251635288748744856131582552576467242727762653627127144881235763383265843674625224187584516754173386571734285577877436757533587586243835421664233863354767784554848342441276686553884447787321625615526585864581475576465357485535274784856465178447671876373845224361665378586481835134338621312338863251115652424123226788775175572787588132244623135321855454172831777487372624574723517221535487263878316248364755616588348784312366364177525866334553547183531363558827441613336682123472482434658352216764266433314518758858385831217552867377614755717381388788576113256684462527754581221855774251546716821177563182121616852166282738237245888364236213515318184767381164361264477664125243122555382187232327353135583724625542246346756157574783313384763383217512284558414451772176158188465226812467168224388167773778322811282415272713838736274228157847164875463343332275561882567367242238746666687875243288456758634556587765542381524582546787732776216181511741582122762251181278588715736511566448233114724782747484856517362163572853334421252812416154551454678534836168155855252544851612131881444727684785112853355175285854156447376335833777621227714818125636224856225184663682233233211374653124335545173117222211422325372554183624822283821732548662386222527858147324572665725758645867776332845663722157216752473878654387272328667761371832761757781285621818775332356121383368625415163131617211443244744237615313415477458841671862325438766467325821732485221217116611384811347581571728112288688366186454457314132171682511466818365111136434837215844182618166813461573733225613887414242247415452571558442172161867187218128264472184145714526364663551133145181868131677748443826833145116675648353881672385543833743344168314381281834163284277457758825852842637422787723232646538482643844627528418756246412651361434725854665323887582388162257711847544862418785224113816682568554174432348777416567738284157864877181385764421167721436782558654164858416547352613442287124151163255266778364445476362164236843834447882728734138635518623324316726216445437537161331283234562713281744354717375314134444561427634678772237656286311722244875455874533655582267515574467836272646718132381277634253666451235861356331165783253648166477157655347541347733725275753281616238734587328768151247474768585328782326645622583573232565435126512488764313168483716621233614152267242372384781271418433763835653547642567857142778733166131663823647562364737573555538242717685136883686178544758323883763248723268548754464751772746722245774211235726254548384145727882266557331712274318845148681466273815647487223624514125685432126117542147868831357731188638512878611414382752586431546271186874414255652486552362123681466631262374425355522724183853668332425352463185643582861353538233142343471385751216168215525215218443742771433224432427571261687337678534246555565417265742577317746681774545768418273464333121864511377382567575584432861748832352356775648216726236838673265467363852583513872564753781114646274535482612181726311578676722535555784832287875312351884573483657214383223561211433188546453724244334553811571334533554868242232622276444183232275216653343263835243554854836152378814818822775386447714287411634282653241428827251116276834667174328211348212634431248518845451848838863451588533614652552714567157112147663633584826743831356757335536388352627671425475171333765328625557475353812518113745223624373417256777777815476721448677763113538874758315754436246661527785755413484475836146461117725665847478634238483116641421718435121465315485334515345444231174652485682811441866111615725788732646316484237284811537716355344477215425845331721541838654775384212621814147275881183855141648656787845158464634433785811831585251615261724256386636833535672764844537316382631354646885531724227336227754526623183481623754242642154818467711615121683635651874186244647537255736513765832186162476857666183546183341841618123361523481258521788221774544243445287413428247276765453414525758445776285615584832463424472134638326636714428813726125263162515113466743252227281762375383528628165346338451338816712331258222285438758612784682163263887826185238211277827486561777247545314534122288882737254818674244632785883113667527383478157148563757117825388611411455122835758711611163587228341843554344588448465572517126621425331462736467175318238838361418583248888643242648662332257885725648345268281324751141236123254625328743357351413216238811783352753434666578371511831777566763625158583216215225815188523268236648357545736427618775736123536817881725117615266152282553773271571522623584767248355112451745783825784718786511213621525566622114258631316833844722864486758135422444271734238277462576351253762566571634243732237485177263148866232214374357442876255832312865377177563685141784211311217165551467784224735774312838655523778723212423563141237437168682868421616545552736556451764784157588336147684576238545527516862637367643462736226261383741224174871352587447768452571553274678137768588411784748657771615138813476413841186446113856626236786142443444514257868724543823313173387542558144416455426478718176466786658554614118527352848716224514765622177275723215416356648785732411275614742163618814637324754664478128484662518518648266223658714613642775515252685618437453433513744627247461541717726553566837712361752688428118757564832574862755841216628535316134573612614871145223784426844654262213873437437821816344618761254465638662412863151351731467288643275142858743254751818146463116324715551545456812612363676876378455172116548818266161184688486148527427748648333588688665662363384613474348847364834766141874264382641242735263653111461434857887122143373418462477182235636423835745134474182736235158577881278654836332441374814118634133127151243576626452513871528828811612386641173435653547268252647478517248326356527443258642523331388618511846385215522283152374273642663633163273782672174873416737582735232256216474358357585747684746467243562368482136843184561824657443418585212112462732777771322123168885275183238173337715413375378247453168358866866644864388883726368636538435722143441836485764266218528133521422466536745182425115624337355367222732523172823281433762614211623473381557721736471634554874613622851516477237563615167233313665722578883425273211477216444476138775634163667678724214545888662346781387334267111136242646371522211216636643524524845778517225313383153334685624725388815487134334288528884236314718316846455857346858825347635175616312613287638474476571341717447145813283652581184758453431344727824314278445222386242152243275576176262662384428618525688617262546853131335364314355484852465671873343845578168181688785138656352356321565542157277863133868362413744517722884473775275433168876232657531436735613887517772468288824437576828487483814757815582448883417688445282172237125564488477688567218675581723325748877723362775685334788832858144818777674868488633777762826527527253831186113546724386448752628135185111461734173512723788821731148526563312426646535714456116176615837858267742264622853364542377861666354245333465227544515413361444738851543556677138556617844675168654675881238637654435785324486358427576611271625727884585545342341188465241222754351618263484287267771385173828844162858815322717576282766657658753138538737816432151883668284166431183642213755836636853762145788455635546732884653857215116342387421162614513535831427638331458362875116266176678472341843875873636244526235568527318413487155876211653843561227848558565366625343165866373314165687644746518118413885584472887166887842383261716163583631786311156421641636665432666636626113278726782551837431366831618121417871635442532372418263811418428813643276111314142134875133571442412636116737817117565768633446544486186545343623541674623564338637144354555736741525647614134567848135571133477545261831112567368262626781635255633486516651246668817346426587232566883338313676646462278545467373872864415761234777666336743667833728861123286342224444227251123382875883873217475421817621772777563237426743247781481158187842688678532765781547586387267657584153125257434287856353248565424836218371784324175511422477581658466864154543557265826122847573286758865188322684283512456311271535538634623453572847153471468228467141568762631721685688713434877772584242312351138565225458513376536647878772782627738442312341151435771458537668558214315285812114383435388236778768866176643744878828427837362248735211764758724713724214812223763373131513284242423512162251446642644652147252111166234141151472245377452277155157772243824628741168864778584758344138476458413415383467183138158132646388238238635578445657321281154783372385238484484861487177274531557754147674184256283661545865687573656432582826312575636883563377354563723574812138368868826322646163442361466541566221228411672387488536368683626145756616744541176115333388331885172648181244858528153148862637235466875866158861843717462234154557356428225127863234561784788814716257236314282574541678135536676417777428838753214838533253731137575436386867858353223285447257676226525868764455374364777318133755474547484531735852818336345372576841651721458553743473676311238421256714741413646842376524386838112382733873747518417125454724425531414767243551516865422858818162222555348313823628366123674586715632265753152188883364433487248462285442754554528725855712686634551164316668727668825513772121562277378655583466138276455333371265113564784716411834546761165783888723383471721478843576354733788462762718756484485423218288237162827685362172226634615331254537678557282858147466747167158217646568175761442287548446727715661176151514355442315216584174616323524665767412213733153456587875847172667465385335311523167446182488262175372711441163836476246886528483122717813675547883667857578225586344282168381288425212635317754257547442831856857445317838422434367718813684351184685248776686228851556723347424554167623872311366377566867461735318631635553385174516714617481526551338555771475416284324154223545665531678774434648162274363687852462548487781861844768862381182738881881376178744377761161638823527667463642622726284386331338386134537813662823533658482172127622745645518681621575182881262131272325536263235881585652378278766165528846238425132666714478862648711752174673276824661718413536283368163247433724752518115348657141544865374623268836836442113417253325748378285785448758558861683531772471416672286662634532367237366524231788167442565684531148746165277334741672417877116717688115621214588523764238636116443458677688257676728742761467728164138865476725416477235848722684713451885677287513885271138767325652357723518138337524326211682227158437668668368781228518565757258263845573565155264124677224646554555778636342435747863455428145166345265515325865633868417178555875263371827115677144552368385458676611463274357228265468165212245576621815846728743148655863157322643711384145535786438123188426682642641122364521333242421362637782563444537681424685743548668255478423743612448575636171624548754683557824635471824528347682344413765236661814165184687435538661644233888556623338487341761436487411666383165164812445577321836437261811766173244384428242311544331437275748251378481322212863366176581175667653382484365552575354814173215171326522558765621325613271162366164473515582651772128343428313828454425834211755156887835736238731278763358134211865355548322782528416618368478446632382274151222828355273127137412216485587575447163677556831736554363778644857654578311184646188435474414485232586286256521881711157458515277846626347661466224388732358736337181382237862253672322523116418324821283856272146868287265716437835825812585711264271866556781251728111835472218584551863552374155133626262453122446434758686168263212488611817152462743468735628648878448516412317158485465617572261712452158881782412625275118235813145822721466617538156357846534715417246383531474856343636457717317633328378136228721681135775673256258757656165126676686842528711235112443156327183333624733774783151764241863737761213383561826323371584557411374854883246347146844681123753542144543837557128474748621863327238571433344753682645414261563845881823344778124858585818656151326327348683365751666137811323325626347774271365218713368187388431252716234237417885878777674337321281771853764368454318266566167174232237264317248641257882657265575464252387278214736632457234788333428627233113286735177712856441787321231212437726472238124665411343833844786275873166875122253345537833178484843356524275116131554414417447713684453437638817151261327228668548641153523123885123711638585246771775714222227775656781325847575361542833742526283537268721277462523375356278754224531578267612733731163677564642112735752228368622425771244665473365827746441312223381172458567881257882313334122322421323275642323223113483412643551353277618512738711641687727764885871451362551582263887678423578266267815636776558748674223541424212182634328662325283322536674115821644742465587274222464618771337118288446652161257382423417182513428438654867673573771682511637546248125267146481438517355488823537515633543758782712344748437487818448484746625866782845758685273187144287751123768553715441855365646225887666813864824158224727382511781536827771332737656738537455442164453836661811465125635232673458712752424274227488623236162413851745855363741685357542854655131112686233267244738681452837187214844633146536821546552722321682183235481743512623338576317444351264763454412233466185632243337451484746844156111428578763683248385438783216566625673525585826515155684612335686254273733384142223473511433862674787162176277368613634664867235275188756572325753226373441251447153638177278461658346657631775541814518387831163887358283276412567526523823688148442322315152717666888287453437333432262737117542331858412711234247334524325738838875532463583614437578866246741717821237243513853467845351131176878668173314365313186288283886642317273473525215522836726775526643132148887527736626418143355888818113163734374845682556858118188815873252381652821233587485415862258242477113214874234643851453365381214115832228618144448151477174111262364453421475728484548147228386431565526654713718834845424344556564682154211282255525657257511734764175186213125246627184611381647723422718117372521438551355138777721851567366238747782476686344123178733238822415872181425251367645575715366566762641672864511461178331766474766832561456724531585228265514651451276788247681425147824542817628634184617474226736225361437811541648121534116455767382415882826672258828471625352287818515766182277775674353855765533278722287316752878122876451673517546455253887186688756518543783247858475634541771756164637167188474488562623711543221388253553517616231413478431423457131455363731243253482112241152564516743283714238574454235342467538271558441761487781323844252661288824838512541131637188564631756655714635846621678478413446228541687166322873856565263416784628478782483377233886213451186537263748557876411488116128737252174425172848571535213725465381155566165855824533724212718337111556334426664687178456646236636658152561334713326833263583853688314231221381388142867183388435355447231256373247122727226655257482824641445431732828681136327257326481211644626575522381533445347886516377628144366486558511185842363586465356473288424162246382227477722823662846888853746446555154433332688454228722685418635331441774111553664222472187662251865158121145128411445214176288386552551535243653484115473818814538472415678551581887123818558828526663312723843538116313258826768213588372645565135753144635378858218213864281488665856426125811537215217586236281475284862123772383718538357647383572834246125312288842444368115833736326125526345386536651537122115633112553283673816668722681882131831173118147847365254188148818818777744655228643727224237778356334668232448873355734224183637356414137738733128313724781228155466765255737116646578865657628856213387867347118763336552334325613842487738686268568335234235783646785374214537554474816125364548885428516161725831381688232683372583444227781158188727342576711638142253818525581463116734572344325182358326476584782432556372468865711612416265241841165653511166554681812277618461443178886613337417554773328726736785685323626263575138357388678368884236467654628272724613367271761241754338457475567515838426581325161281246872215635235146716414621431421775512675854467715425573623462416637812414511487818157121853171744234842482182852553335827835166186552486616453215517768368866372117726544378267687475227173462668451764281777244157261644882755656333428456877344237718717678714447485112368284266524465338211622137348575181574843388522488237412235754858676737166184731553461554238285728213826375435477724778768354516437785481633372224368343747315558485514574872281226727153553224154372341737824583271676532544125143374323712832258383646816868278273575853725847543727214567182628846218172362786247525662577748411181687582771482823181855788436515542482378185247557228615354812225452256752466878412347573841152354541232447733361565323373457382715425531111437555154882287723554782455162172416668164853482644134135588317554822787878828151433533183628242611788244243227237272151131841722756372612574266854266136632618552288136275668864156721478326872151634458875777883635671373166348112153827282151124558377281775473387258165261868185121415254688584418876511387863132173657684543681648418185577852756182562683652686583218353228482651873647811771111132524845444321378358721855866645487857463582388772763555132482512454361336422411556418172887255852148762421521343881555714385857153588437456251425562128257413375245745577713824567341233141167557233657244446581422144127122576161113727832656655466867451214521637678478514841483241873564133752526254274677334647483751728164883528814132552882442723462468558877567841263333464322568772444333646542234226561553776664864114478283876117632484673156123531134544618311743672228421138487162583658571521588612343123638433252486452171238775866878347257274384685411581467122421412786612731261427466571853214711681161351837178786214211487577617325446216822562742338148483324223364645444511381374857484473585787363763781888624175822861326763585743217357726834276171277455412854874668527226645848626533741846181164886417247618367677652653132738287845356776778357124856328588127578214488176767576647371886718366244584267445361635568338818442756276553114311464537256127667541364581887837135155761548125561564638778277877573136752628873181161117525121745748471523211526374352214462155586241262583341148175253318212741154272486787512576663168877232336421231771336555238235283872663374414153773587682211786675858256463744728165814132761546617582817883432348585165853164344764854741658751421673277552846133237371322864815861857418654334547162664551857221216654626758374676534178674283224548527851857883655121157164452476144736882347523734481863318256757816653587328357784471477488642242874783582526156512358658681515458748817136433151742723453513755341836488231112276838344655616341881646358338444244647762432722872523244767473854337865675754613464657232145142142888253318741183235555421184814754346676551538528161323477475852852521873185626531568567123664431682646845277587652577156328433417343814582142474518115384347674117365424675533853533263283822188815144513633824346333258528427478683611663832436256242213615221178126771773875357172757238446222783432518864261847731528231842137141287745263226686627646682562876612556761758237766237854212865543787275857742327147433711817262517483675468351125564745813435656255574186838612757348511828445766125275877755641542217258764812618237773235618728546422465765633523161181537261231768663728178412775584656131143786434675381317246763787212273268762848575375166424614224812335222813527223471233263642148842428326345223562642564818664567471377623312357588353713746853787482864761186712443731774471521866254246312583714777732868887674816137657514854488772645345268661868414262334433477348578616638734664757651614612243152132614344676758685362733553868663711815163725475872132876341214251221384366862431213417638726218372126551317151241271651512878777575232338144625743515532521454228718532413464825873232471135514454164314328781877262416176616122338656855734788376274882552234153688881531578526834323265158432482176218267228772811833518242357153773488217156854653164575471786145174112476738761237283781576351455532675128513685114351418181746358286715635655253387488865155652672157581853177374224662263715841746363135338266547812638711464455778172215277743414546327321466611627835121882242363884383481761738387511566756573847147456134774321836554235554545428722575531667652476416122563611343517622685537375135334551427543583332517631457127256662621472737642553332367746252837756815255678732734857412137736323171252721311453555356156745574472516355153268271416622363871335143474188173151718446344518583714228538313518675588321361381347651571211437183522243346863116437555573385282423613636182367822644857286463571712772272364256886373712255423264317536333725214713281816214537838748177128646787213861572781583246652534254848625622646576513576857161183146175653533372582841532118674178356528742235482346416566241318745254144737144268776243424544585612713883786822768278132553612742688875225564657633543487635716665638227475427872226153875233786868847753114781177383652764212414168841722817562417641526614445822413555345712648473415743383545773717338471642386614777173237673853473321854758421515378383736183186338382446155112248245224833233832537462776357447163642245234486421253187728533246172352772882338324321718633614322244122377116815186264144175486317766654165732312628681258367614442114571651841118574651287827158761274821812172836468174836312375861462263336286433447887237463538563778678487242242842422264586241488166873756662533664557873387444146414686151823256363761115541821352732244213574722664472115166718142762882711371126561667834314365153327317133145358135887325423125836627522572727637283685334285785436347116885435254583773213477681375286552285326745281471434381488174341526757418674483142537367735336885536144623223133352278568752227651125483462375521785452844753687481516543772318458862732827373288251812885683635283143235161378361822616346616885711224686384277368146732568255445154573818386771781274881573126387746714643122267346343486415245686846426428612536766776533114268763575224754613861544856834357135458572827875347313755247553353587243311685838635872256877873383723123271343323876783186855375263534518544542711271285842166358623734485418656674488854767484422382431842527253382854131746878228428223832426615581884648444322734613612814571786856136532861713844321272216373878277812685745641148756636365528147817744425686661652125728131822417762811538213837745174874655783348545558265438711125474755111335358474387817545254662124321451846581686256867273656534856587658314144655822741615427771246613511624145547478455167525586356274243327537476338882421878662186577718268166466122354327855751568326741724221533655257853145253674435173415455431813365535152886138247544686285186328843524373883513137214733388636581718716712231183711888337257716554544822114214162151148755515847382441521612614826871663784488774175147267145587256828318424113167672265836585862231262778376353132844217723476261387132161653136826414773276814643156351182415164464453742482863877271886237311647258238848713186575374156583564141851555535412261414711128475558652677887547332462728837446813564712387623543781642382145415368728515476482746512482662722145883554667477537375285358241322561732714312764568288472382884251731186224482525244643772742254844513821426378751325271454336326647146788523567586715421523242823377663521537856644856524548487783565574687484734831248613358135147516163763723812636567488162566433731174153323373841456354221831373857151352676642483128447282286252154176822676525784748355544766162541342526738427668511622717422636436544337845412838661757661531238583683147644546414285132672665521656861335745255672274418345764838586335516183351544552575723215735234672152376117533657838226781828446552487257527843615636163165678412341126575375626855353631718718111773281338566822424777564422172128318488153715656112555864142841851566432678844322537284268451222867578726616718152442857561272467833774422262744684476313827232522866875263147216542347336711667555353545748356577477372857885452144887577271837346264836786442216566132525565418723215852285126443713862238778427648884171387543521876111654586466823131721671538687455131271483252432223842114143548152246783767877288484552655171673663342628223813543577642128683658154883562832374212643444171453425474437622815385166376775576825433666444582782414642485814262775148658728168215345472163455634748772753335823446654767774326467842184127628831516158834836373174873453224623774155148418733116212217481562516822576233616176664885714737678346514784262735213662747372658374812186221363851226866455537253323288716513768446248555228511433752418251246682462126515255315251152176786163268177418121317838635711275883276751611278811453433674688385261556684412367422434782832456154116465713516458582631781635341317824282253764421584243213483284186272156141472487577464721711226534311612756665481737376357148658281867111666173755551882753438154727538563831216532536473726388461331756246244584714552588227765754815221514861111453672584267321771368221374385147465681714246271327885122226637165585633256575673163342464783616255388572838453461762514154121613833751141555888635483867136216286448228732187851216161564381616327888843157423231516664668336134431475356287227278513548278543182681835512473367727242666687856733723844273178857448376842417181138433427485147877826276427883116516557484617256125348147443618131683233568175446866548373321324453663585583637482745641647776773616635372625431325786522365144322174228341554675731578426681138784372225362316888627626886156546865254457277746774346645412135438515841455241587688358716678783748111156346353622527215733722713612663886488651873418878831717744872348577424278228776646787378764115534372461377753227866481437414157152357845737746531776871481555356253817376121441435188738784886327678114776821631218178625175423381267542781853843827478144286572367628867851852813621325741468385134631283355442324326586314288413433247264677816814361186176683616882415578341647762737432117167733544188183733616471284461874624677284683676116651461476562513672156586752237714547552818636181813552817722668678415683235512388521772351584153153388573783838777835767474585762687315275244283856281645184637763314788111578542751831111561826843188168677613585545645362131432732614363213258673324752654754616737852843355783775366118255525367652555447837826128736453811217641762416766355566521852728886357444542837654226545336475174671425546618462451774124728337763572135456111223862468542231574732111346543562557364275185753215315131784226838762856433815886437147176264567412383115813553212513182365722333168431636152842268165382472364277227257754624731547146842178283612187831182442286866352536146466373145642756143441773685316813337613864256721855848718148611631561757368522617267745656376456223365682651781366757333868364885872447321358176662261234221526774125556543257781614736248866255254775241155515665115371867358745784415576736314564263756377323512648756546833371463328643545463383276481283587234536287527725642138675355324214356543382743117271755451888815437783782843844452214648485882485372226471762774184124634223431634546754817775254363735234266215351843423787373426786178463254486572788768664625312618213287637145232277645124311446867386221571211377723831427422225621488147234223684654685217486554364345637221281353673811418662217313772663773417443683414367565152148273531446871256466511824488684323545278847651467734823333362451421815518142748237686681884741577538755758114624453222812182118568155617368337643664835682882825537164552171825288677826124815235517153767551145611483264532714164731773638443811126333753814117442138418143841812542586546854488512222123123174815134475242282148321281282458546728857543652463862151166872513275767532557484386562348883243232615534381181235873723363684624455165562361344518477765734262514776113236332672686174524111837826676616338254184317651732472371517867562284553581465217153241212685527447781738763154856342137717831764321363346558122315415352755537551386327143812743371575621261136763471374345425324347511687417642678674865124646757617447874628874657115673247588321754257688253625185553844353352837128558474413822574534861862762333387883843242155518663335528753757317512583668871544777145877833661586453678576386675445141734716426252436372521345558254813351182477221815164768324316384635612541462228485462881482721851281452184273722367234138222266382816713781268362754857866751156326184448253151843417862644655486653166673155751157854677221435282168714728482117458834416458635848581848547625151128526732712113623373237685317878837621562737761118187467855753342274816141526383782635581645161355345818662861341221631714467158283751673541344863816673676453377321855328814211416732787413417336883432482717528357234874375725525534664522473865688273372821177531164176321364718487632574688118222388127714283232662828855866744573554335451678515784686843584658814117328384144524768421341412318771212216317666721452556286434472118781522155746778115435665213178865184818251537417641724312311866443733424467825446225625413488713153812427775481618337778687675672678721365824872572326285633317546485233621775883135615378376136446825784867437531162356384564818662846341153813525452147264652687473163777645163515778213667717642528814465842363716437385245676517284617718115156488285626245515322443388368734171181357153218417658558575438633613435346264264645561425634387635648238853148411666778128557137587272247147156738467146882352276615876372254433446742436663452227426222184446787272385837861783641857737263527333522624272367287853743638577476748677185888664561541763488746587252867236654277737575875436755662454344618727666532776831626843785838366858326168824527345841826276763568117475363684138684443166414661647175668818123152183861617141874673828811878874751244772585643272173171748634718421868134318577453736511138471138176556173612254486157757715465473745414774681111762247634242455736344382757437275366735821755117348747628548126221883254231632262115864534586877844751373153776657815364478167532114112174168714285688736711254462443622225613222451811672564866621873764842231465233812625172744843775871218215485676525133327367356742537418644388512124413748632423545346827113164745843233766565588234473754256587782172134752811688284178252722387252162516664434423827844182827681483644371431732724364343532851817372376138273332758273213188781584437231745147723718688155642381718528384864656684561246616883563582517584135482555378815685128145265885164614821444815272744355862232647764253867338754135136681513347124246531134628178352831142175454878318412474457354143727126357726323321568512186567855323625554785184212657564772547176117653248627238862534813236512312674184635525423265666158478366445514176685286521786268626641354512875344832383338656225555557618553156211345438314186242713643288564385886538266532756643876813758847217536244564651472645235477448861323117154535231164574283586471578571352474514362435714754267325761563762832354216657731846735121776221313115522367646447777486132443471472614841372675454868563627623767837178626875587574312271642835677376254548654472523736417312846335656767614253114854665513363866237512442857825127452618515562381712152317686757214142868236822113767158484141837138725617481616584481115228372675534211141161716823523285121888257268341414184655813133512617221114637668774258421423441371267247577845771312314113154277755345763654243248441552463877634865542727338224237874627173555543154245835853846744813371582856762253323865361511567883623874251463374567751512564131488647263866784826718756678782837862657515882154731373822817787544476844131215375174372273837683811282512512281685784828862427617477645716185732362468436367184843477125382564762575427241651122468847246363616554113583558337241185715533463788716122447166571551717422335674352633746321865637724526456684726876842663431611448561263533822266751183136753767721547567726833578657657331376138741586177648187633257577523275221276551435312761176534153376588284841158558335311151225154711435586283115645375147158662613423162657638218633817313335266528423387122642273543878878586314826252164885721131834522277565137643526662253836881458443711113844815273464457126737632178688654112338232364172434284153583554635427417235511743838415362627756315616536157133385336463312673461141488185465764884317347122438213218727832517564184425283112533843781383141866333462552733185876835625135778212145362255234688177326735164875766383515684233638461711474741126655663748322355267846674234236457684675614748432885531648238474221487855846558645867638613557648678275745481165367217168172425154567722352444662572354828132336688232464277654468562661643465112725838347618256771527678832218172341835616388176218664224111176761864581731315185527637114723466253278322353737168831611278135612625547744734231283853847727487251622266211681628612663554368274323135753423452131817261266171278573754766228178166758465644767473655233424127122667511245282131112672883862761186454538127888588753648145883887641663372741685242522283772677517544568613478164783122486231852412535566422187267478325517618521771387615724682411888458886824583588168527174284873415182343718737631352156145581541211345522515835661543854264234345138267124377741562863878412513176653161584145213351555563524787424437284688375527343866824153765818434854478111841884582187445543273347682313456243518767318533527447277127424734255112518458362722611423852842426534444176874753833631683774886325651755523666835718834863468651386878117134723361733831863748738284614227556541684884672162122581832148514368388484763635534754826682558643243177232584144221577817733686621585117327688227735633216442771518126545375763656781216427686656335571275352684473151417347568868583361713832446348385288643348215432212565426622656235266282768378516433632313464784172781645374231474444264572637233377143531628657717225641513173371282125176128588367548555534823617821124786752478841763475777747618628767443647638475624367148528241136847828748686855852636675616478744542183138622316148424142676351374283285134321535276657575277223382327537821171388831658836424651773315113771717467418113344716855755853317187432743748674232773158352257856416357642616688444411183227671487734584322151512152657841415424857374716877617811742613353762853451738183864432466386582545341676536116481418653351128861412246511261516356838824835528621545282328836658122811483622574647733622224746657558555537683123565884615281432346818132511478615854332547281381647651862615646712134855661365441322468241465125885172244362876814222283746328567272886421377545154841881532578863763472268831213386356315331777761224182684672117313644236875368477446622771847777157231835252755511348576247826682222375766558221812738254122757666555118462478241333847858285638474855587643556658614215782851718361521352624346877487666733528526544365214644343147563325374836251654875315745721674866214684826653727458513272818356873218217848831635585511761386561542467852754886243464526346168783846618884158464622678464667647617367334488336465343388353784562168557184884242643562314374716823477844133524777145842866344613826471481742876752815718218661837663422462636418371551451427176524752665547355353866122738317835822755311712437784283343338683182236763454363722837232222281485578823335333615885787618425531755713146335616756315263761334118546837252787264814177855154562276578362421344681768262674781868624257358171428516138364748513162253858857886526736738711722135342616688155767256488466257467158781266247675116725423144547823583275786334412273482683726577834858227747887163112747136744314481462753318173151344753417517844652814735414615618771172582483864722265315463813577655725532577666744375578845884668827241488822615741868833528585274817623215346577672234146165371347168186386642418388611367513583111876215568776716473461736256254712538683676124637645735211825813756623651358782565714384386553735264418132177711177427523867327432772455321611767676117415883736872734156123161585316116383546114774388857362181526887337552222366685352745842864334153825686531388582466667732854161427557821826533641413765857162764686478246581762573855222875768237546421746534747131357516683672443752445265241121142563348216127481541756371153137381375216524134178152756558733252387567781388617371152674657544448213173713748266878226678434575165164322285278574155471481515222735737624883746828467227268457516271522112153455362271664518338124676544348585782811663184637315743187438454133781757237386634367274184548128185251141461711347753233387858765471244287877868445637863658242751465551348715646211616633234416118562655243727515363115127265763488535758217657272152624237472722344826536368754158381481737166711812523335211573263217852758415216435354745858876263158715352862364716376443436624186166268462368725224765765546522235843757174535247381744385647861532813662635326742736222656541213151474354755136125317573884812876622614781364132352116185353421248128454587661556764141563824685553218334187113476582525763837454732355761542671385253611584115258474837152226856167488225222747472735647728114677536157576737262425675427135561381615251718332443672381788123222372514255775136412216246755146335572576255364112732526767463765371548831457534664422217622585284845487511851437778156527444153524154574676631474146764328622163145514637411124236763815737512826133216817628838565765426266338543823624152642517752183661461334383225227458575151261214251853372611783334352764657668652646742667626551173835481834881132415561343117663866563365622435563721821221854852575412544473816287776865621216131532486832883572167631213381688753813263352325522852172811161652818882217835544748617765538214182887167561632273243826138158156312128545325433616615368872876574473317538148178725153621725243677177487862876438641113754144478376776574538242225383276681717643172345668384466653772427255128835756383837445727283131525277777353881888613854644544665371237821821865743237367333685824813455554211462645278112857516664621262358315546762633584122758221214131136351184266186285361253844853626358438742322636261376341332664116818868782824316415135665813113661336312461582232435177665546773526744141288828161237162526864875266572351348823846628547235384521365167268251152483347237456474212775282667478677622112546285613551736811754673212422566852183815677878122258461577432276183358434333382116124643572466763167627226145223684264178825618862434345856248417571855814274147357348514725435271843234612762663267127588733126171418776564411726535152635884262318854567677755275356421666183881755318177421685331172648314384445646621123783832881721352751883456687711746645514586328464223435115552385836577186435167176281617238155357123773182215113723588373357581482366336453134114861555751318427342672187451557821573137728736322485385186648282825227116541362177613873553238322541416737755668411484325648347112718282834412128258287738724582372882784312223285722511248658756655732853761671327175668635572253485357231315187712478818457348555787521617214881214785717242754448787527348715483862443263158258148787687347574761672668132644557224854654223586632817512343685276368614735752125375683533863487222652212376485583758228466423312174285481638355347256763575463572866215245768353245433747185348116423646321325237761725524756636166341143644364147786417588733531252835711813174763574188878812584673351857356618624683687548387466468551356523242221586111811424151613617136422333358166634465742528786388881121226673355613354165154378845627636465387537438816477523213774324851456216651327665576414787821313127715467268842251712846748535744224737525216423561432222665318337467388626325368873281454554374632432368681284152167173414833313224851576515672675471481581886877363327147383251655352422466265668661533362376827454656461743128876636833156355266313625661168626856546418211383833852577352221565835543124254453515354288866831278713215322333354876862568837843883364583686637626164336828411615683257187421357865157615346373558735311153674241646217618114155138231333266682422741271171246756778568456232834225248824138314857565221538683725315316668586553418827667616888285625153177734671643416834584224643157825755734864872564121132263465836263755748336153534614528553155763625318218522741871182854266411772873568582365338138235427165121325368387175374277267311774182281424423327445861747374823332221358681688444646672125577817718532551326231682131247615283533282347161651478673313144338373682782355431178114845325357343318157384514318878441533134538856568165475513457187227132484146618613321547444851332242877153738466655378284245878753827734664576843446826381585467461811374312182415286436253618223211737264841271651161476624335525285678263287831186745277517728344512586522471151742458768342242313433781888181144256714337423344654533337734818182632165826326473715784374441141224481888381185842222616646748536566333257836131847775248881743416748132872284385768474141675685375357246363467522526581568245343567257482787355517237381864464337744688747364821444748715818442223652535138472273263254442375264518653833841658876867112216721242273246131263731233531451788871167473163658833123143287864562575171386232233211124333771237252667456276411671682232216311772657484778426545371261382587346417824452118631258865862627522768661166764436427362654433355442364132427757266113835348662775872482233625213718788484427216465371414433158841535465574364617236873136182873812228474771347132331638347234484526251215838718112665665275525647851171541237287462617873441175571375311188528323243647858156574318516576438437653623577581814444182618427832363535551368136461536614326268316346787433185647482238356134632855384744643226633553454727256852547823484473726167373755241843756655151165446654558512733576768232417574125486423461348617154864172488586113744657683658455527626762622187463748275446153571253416648457382245763374181828181142663527814135372376772444113714571788386665364152685846817878343283637812587564484184345141542822284651715332672646762443213485371326484637865748583437327664758681381351126386816326148562157626726458231756257445728373255124463614236378562176528253578147244572812335357456725331644325148287454287723635877476252254738445752241528548217646437551183684345121757313384135367738715232265737768611636111343735723885228312258186761242765244483653861717684363125118773167514548733571345443341826565878711751484648474125826824662868818554684737673671763441877232783627744227655681474687672262141822756875627846871428784672875173828524743547816845584668754157821578831871442613252338264646435283752721852132456276271244554141123264858138234558836527678273752167238718683744784156775481745558368848867758385412256316341483185886744325221757561311582347623818554576614781324442182283534821836855535672723253453248412464556223442111782173478483311526648132865236722828834738756877647252417832513462461423485154525417247837257112817858858435553253574477251637825477463124248252278634121253622251864872366878217266574361337524227275412211776584228445145784862688811187765533524555658815318548436245583712164275727478875538443636353543756741488246715355366636132376538874823524384436653323635721244242211252557681463362632873887168885662533363165462641788757355212778538762748376227366243674865141563226351385676463757623728481423435761716131767724273261175787231327164747772353347652338817637435848823661563514338463131463873566265418265223526261138276475418126637521783151434446352661816728457868825821851364161314185464888773474163735762845175141577874532576658133578474147258374743213121683686821568631125124487475674423647111266188117328455883137475751651664844522453355842755383747418536636687748242636577117353618628873658213726846684561185863534531852862751252472587314761221341316451345436545485822365154277368524625757523757356254668284171538161546114876778514642636685745422176744843537555626758524668312125451824744358737473142577165874486147233655287116816154867256662366785727346717414721873685832235521188784562878456244471671763124231228243111826637746811554855834643233443544864657117763255628771113454374762226627485467818887818812348783175443858416267733678361162156125538822438126515734766564646344567225468441682345337175215726861643375886856251381165273431186127156342817371125172276426535717361881287626324873711223732173528275884732454828381127862236178666253342547648235236688513377751246567782226746135485426342216326674421612856568215457678768552285337355251767485631415378812181678265386444748418155351741836551247464177263263235666717562824117852368772165148222862787571887443235161877443361537723342317747267645748354587321657178371655267818584486515834818574462447651252267226847237284213551464287878286575838428238621872875182558565883283634647271764133318554577136116478821437221681527561187786267773461174483227371134111445763321534512646568456236386312875276886356182425367546276564368756546347144785177543336554182863387882753348727367687154523376625225162452341636512414426654383565262877777842217425557788885352735584172533353762476763453887737157153273514587386173128367746543155843251671416675176824355176177648152188716564648437434612826776641728415138214223136154242521851813541124631753222526812231726513557638668752763573343536314835387767315351484553787711447517786541477663783845272653383628488251867682641634223477375353313784846376552522644652276312688874448767481353484728633434381758353836346367577158581813118174628863316811738382852527827736885858756556311286473341282642146588275786534354658571681861662481315554374615772631666458573637435842161417872722487231748172521225178635484663523382464842651778847721168513551751654654531668631422235745656718565816465448163171351731166456314582217447425623717757834366166123313244152281462824466511217425446337488618732574637147135543174426736787646815167768342586771328663148573248613256272117355454131312855261211285772672576783782582673366857167355131348537574434568583358223548757848478836438553227553435451333786444314117668552416626352855212542672253576542378621443517735678754645664374228682483723312736428754426425814564624566553713445421538271431754823348515572885114756632442536626811837182341452813373274316664862125581685747617532521841274371558718874238858378281751575173148635571183555241661655421127378827246216267673325372538386782643357878383137158667786423153317333127523885618565121758735125454723375634212737836873762164225567583135255335728576463666755328775157638838426845658682167218253355288743652452577427624112687128518171125256373724553664513312132846548721537716238513563761664835676255877725248656178836181274718182578131541223771478158263314271848722542351584337313216237616316275118831556156877857576117417733311354125631475767685113813483438555827286235727554751722751713755317726216385226258341573661643241578811545723148131758725745666685682355584714467443182235718147276417637614252663862785833747335864416874358223271155258511148613623317721433722424136657357385567558111141372138218462264653226638538218787661576431316642631381824741431287815624743126171676667723752846647875121388616362118576438524848443815135862385565121763785776426627887254471516228355314578222851458274371341137551751715735582536251345371853775551612841468523814638256827766128745541677516586858742234676378853527542112627121664844823522214555875283455733816382758772587811288717121313684388142628544444421362741766736233786865581831138236171254513725262465125677487477775462727216424631348774231147723458247667316741561257547512183315371753651835643654277848754751476127473346727644763333725881644346252276435211344566528115675261873762312732753761537288663881655142763122857245784624352547624775168131236641281368451522448534111114636487576371725444287217577344323668477762823257544861678274516578584366137441855858184112138476336321133643418682511577476385635337146367417367185748584383463165465762618416825286152551814261324881732772433558752176764741842347371254367481375574836327463253652464871428453667761188815727184732885516427452338445885564343434278736257881238733328446841878317841565165655637621661335823811385122684836485867532621222263818527354416225612232188172365362871722263744472312167173878165364312434378476374481264528126628611821157866614748735354863214265834835713143424467613765275513753253713616125163711776484622187871331317661273538277783852737286226713676312525541888382464873562753776526675888885574787875718685573385668238734453738377568535168185258742632266238226861521686383778653833116686317665777456773261116185463242743615244661345567638845443733816844525682376741473364475738138471813467386647655648787461348884845757587328154288265573364853424588424826723812575213131433434781733875633531758838348158812157236285468322464356857823724888778417112541476778565454446712341857738573638826841453886244147231873732861458751765221512515135183463238365247284376234385587263221588223414783322611136553141457176665113482481321131656521324117464642157213384486538787521881414865741557757354677356174143781757347154816448776518877358488471775657627858716234127523422856114231862463451763741653884756534857624462713846737883841135778341617254112152415211265265424115176868165767178216383426137135513758453116875582231247541351571756418761257664553277132734872134344381313646282228878747283862886435235168775863557132817764161674853168114262286116754647614747231244214687726126418838611781363484715835676455782645623352485482772132218524281165584581415142285188721777857651376736473644854521217753627471527357665146438541257144315721768565412666375736853424755186171614214172678868635674135585863148151558683346318464776416161834841113647663314347333641446111512372545118318411344227227535375428333531532273263384676588184332322372135841236553636356832855757142354444437743116717152354445821142256665151461617524328631322173317565261774525433752484433282522844257843364416548678787126735888112512787228538587134842681281762827214182515551164425384471426327645221172514616258444888812234614283386126487271235371231344371565462264521318877215235336335142687715854154523431621823523236856413615266237232281252214483288446416881613483328814275235511224762257377384526573182372748732877711585124543262242465211288356636383782326631524621842857543373627864765245356688788654415333261136414184531888445461472822844816355424447234744372431537437788534633266586661215148668217887816848836583738515276743658525873667361676831581167458622344542775517673366172788631368464425383714647542248135654747754812432778723366457137588144726767127856714737264166483486535223531186366658533541258555878457327486621363826336852674232767216116475572768463765181573456844525851167224732224433441783246514751754646731512842356382313833425267538863831732126426347512528216666624526585764216731388121132484133184421656163626442323283838882366318861377528851653647831486374622667613234726583423273833632718836413775767573525543843275826811226582245563575646131115316654346113877414458833612373513365411166462772324774142348316284732745257335424513824225645464417558764516728361237246626328361283661136424422232655334126654743216781538641431563213372846187165754764435278315233226327186481133578838343244453475164768327337346228741724236261447782421221145436376466458266817756688677758188687184645633121763532266543248177754838457436473612527348254638225664571833642572411311883156175248567366587452283883687184453874731264883387587844823778825273653476745172541482558787476864881334878173847653817757382857344866434118411766754615242836462835375745455518782333516615458342865111623761758147367538241662824535357341383784671544135718852471563184283462831152231667551467135132412658628331528346168215675384535662238768781435213671325744854487222255245754461348841572674124522637857434546637237886751338671524326736281553846642127141174736337512281723713577476257735314887457634325316534168652114532182413836465852584657381581521736846841374771115242641686628688453747876321187612476222874738635616581783882638574265151418143624368458315247783378585212226248275287627322787186112233121745658877327228885764145354346121556241648151528156541663266865571362135846118622835168185448814181214355165683783181855281286556643778375442481686382578557371515883877228438468114858774373444548586828823738316788346775175245155754446388835265111455533244711382783123662388585511163177555254118417335554411632717273515182287218648282382152218677588167287167537224351233423471816714588163583414436448651855645386755358667828327663544316772371622854722678572148861481245878612514183222748851556256842145166834483774558524545852626436644183448676848457572274415727487517558483744768527412753385242152524421712247711242323323744116854166114327165775824846887164626223584823688864532883673475827641585646823575835234488417168581255731278436688368478336713433145687313223552555453883248542453178426618162777124371381322236282111772357215814117634636718275186132233658841826777326516485681363546417463451748532378684261716727165712727877832638388466453732645283465863723555572138441421571761126674522567786115811613637725733251523746625132378351283665227244863723445644463365384457538413415446682323666614818315664575522266813734162717885876151577731123663142225365752456627643425274421472314781174775127882218427836644864351125414623462258717357823176267371877858253148138552441357175778567451155361363834245877773831873788781136751621244487363562566726465545821658663778616658872654366581178744677765615367855227224763567548827354732138722131722815862773642467531434372142234174576752785118722662158864154453576838128235217341546282313655564157821543151554315684722746418772674635611353484653711875233212448472827654168132117263785714825733684536533212128885334512511148178582822748651625848166836547556472334228152628364876661131773286481817413672578676118122716673322112758774123846257228185764162363255711212566877668376563135833214374415227476341248512462154345771377416244546531272837234368713532172713356571617766371413854377182868262821546183727738722218627825417661635884873655244335313252412237386456541773114446564888136828455657412456736871647114624816817271827731474272812472841136387866665515521135735663834584381177741862583553143376365625244238561666423447428656171522743323848125434667318241848562452741645613825358676312463126752616647825367584433258163341123851385773378135167151654857636833627386632314727374146533455754616533853273232168144714118383453772177463476558264511872516711188384711145461174245383151742726426784467875654264654665325264715252554158334347673716818533821285322434463754337678141668866146248188283448878416326873536311685382361523471321628373346836712342135887282281862768288453633834746383623883855647324351234384665165843288254325253548368784722387877767773374486726351235677426862658434633868212546526254186443225238367252143286858545714115137622247131341556323843424585218561682284887141648631138448168526553478867448218748842783758618145878746347868743484378625683266634615118783346376622674711233485536114144377676155373631414751328681285581137438837867118272723757467883815445418815675381468425263632688233544432818285348841433485332245268518366356756652412642141252377888836538215531667723623688834784373635523166111857776225725254558528261544221866752434672814338386321164155213574384723114143843631637718431445571133484484788138217578288333487551781746375857435381228211225662427412716362715332158146657275424232812545482885787758431358552864735656285452631576131252176241628754271683723542854566662155724661774521553776662635862177325488246364321368113866433327121336241874173211677832364383164786427275571857585457272627572151388276332187726328737565484281386864374471757251211563272687387142168276868655463131454674128474652548832866211524225671652615267883475643121242253487463341524313527757761751646673188133245572511166743584627146453166447515434531271246677253857852286824536876564678313237173668775274516851527172573852366313877282552814156422678632435165164781122812467626852572435117615181768868263645486225354854675882168832558784181423554816175342515568422461538562523873382832153568522654314332251427744634718736777514112412226237773743283265741366767578766551137377213226667314747512157563263661456468213843424241325638143825631377884257556541642224775177316444741235672346461287336542348174224217443373678364217538363246225613217445364312478312735756574724135736164151388786678852275624226466163475565224778561385826338646341367772113152175212663484837358355634832344212472525525824421342575845766256385227766837461261385558133648144636113766361854684218282533133565243228523617774255671783766181665687345676551566742787232441577146477115321474657584327438244828323133525338715352458362783354776286228412487574635628517888176753431862276185138366286683581843375858267734117842351686155146442636654114424775627656357533344117768766277332511375671511585815677352841444381387453213358728184886276772816115552777771433437486762521612322833626265324327133418362438236171358172264682165486123852442148772355568518426132484456382465121855468438177356513845644787161152218228727223568861484541146612838521487871236881886151122483556214223616611188758451243348362587111877627626368212822825453622528223175824351246838187644612523441748142163747447123856824275431575245158184744353547811324844167272753653716817258828652225583316258285173433245117648552871262554464672172383563344316154137881386662538665173124411276271645645128232718176145482268884665238741331577285551115833588125645286828174888245822472431343863287781465752673735173225326278285161717458324516714633835213238486574878817138616775265385375335648117165868446624387584137337788411377734445127124564544476236273767521665333615167222236725238276845177312663245557776238648367557235855788164531124787333355127487182361236651657217581833184644418546366183135545115754131284512333565364547257365547141166284177444867187714317762543325612221154217824455873338551482162881862173441883147471186613776672637713727513774228885656615368413854345653682221225757227612628624725171351242721455773321573421588116218773632747135166172181741656133627682776648753231438111146426478344538353845257361867148351818541163515885472715868461186254778776733388887775142884881376654337527526512851464351626722456576817668126323328452221512626132632217816514516257431457525828157275663383453675578334653342716632365264516872211638764185746276463888156322437211173253743132668627674825265875651175835345427871725827482645272876238633842748826228534688176771551584587667631147816143812286822162181857381182752252522512713615875641266876122747166826167845234367172748442483258547215868288233547772633462754417888463172661132818648186738266126663531716576666341316688513275717662727265718113748417135311572354185868526487368326738431275326423676618147542544223736445833372641171842416322631173624877212446151725126447377883334778316411773864245757355741171237124762521713737271865451225314176328462428587316811512534734212533566387247138435186226588678433786422825685238735456772648383348857258474116656267443674321345717588237515861287147176567568751525585126513338111817232187564382757428145165145113435581457474365166571277641851883253258663288666421245671662732743268613123688182772158183346221514244442777376252324833837526366671732818614125327477776247745224854252683212414248187412363744845352587564715786762518435686672373243851337526764622624773527726136173686415857821178234586137617423757168354223731741261474822463715623224636828751744587581786764342534184452387153417833123681171844318642848424632235536562331131167113814726358173515757672485418878366424221627844281165865272178673832443422875465167634743821545447658566734341554326417368182643567433115211352353181583212473635238136656348475451221542445667382852523827565772783554457885432286325674436625764786883453682427228473786424662756425451381237525251585227675427238672461254126337374865781313736761524638786426851426684685674821678127687116618711266215641742861442377678425856661351882575738474662146547243417413268437626365687562733644652163188118432254381246481322784551766463416332452142741573327774831274582882284817753517541427577366423677487855431382243752365212541768325161311446527413636226166224152238255386827665585327525886368272717317665283657858617717212181362768215725656543278126443328325288128287633174412164375326255765433158432717717622721347668226356323263113884333514237152844346168852263528652812172776157142728614587728482542751516867773864582842484133277128778476325222367532631138157466352865567785622472224887851487288356823688362265886482757884314346617634637415514841285182483584251684757568138221816215422771863183475837416188771417611884646546851124552331815552483177222863337481443565353725635831652517717646372215418771421518562373763633337258511445256213236365322272574468125631845223515318736124738242741373464583823243683451534457338423431485746137116142285516116118457164347127537248255373183764366743274646416887811248425457772266141525863232127188641775634816322448635557726333266242722773214828877231663163478764113776264365231648374586585177448334641264453174123147787815621328674467418624286487346784332153187215543575181311181471574771755665731255325323188246781268822478137711342571448453648733425533413854887722766718741721252673683888875767651887562353365284454728426151482482845141163388435774333135734673734347112141171228652631264648672773278481557576218868186136555438354311325744255128677877613753757385386562883265133587355312643242647182756773373342744361215475448225382878877727652185765324535416133282658546328288766165227637188425287717216235768172514144523121346686523245473187328388642124225785226517726225117546576356647723315122513274772213421856571868115277347656712182344135644342228436367184761641734834568661752784227836871144184254617274338178282142341442526543161785874852877753174685416767242781376762636568464713351147528617515258128445378368312462838761226488462815211236133771161126648188882653878888363551624422256662232416655341767113765874286758873638164556641251414682166423467647354778121132742227882643671521353487118128384163532663837541645675482353848153472347282126151225451556527231137368285856567351552674115885888772462856381223745623121368765321557623243732615364343461116545617248521413271764787281212536166877538541554317676183274336634882742685426447716223511133363663516443545388141668638638636168336162325552426253223786756133666438537778182327386666828532884314256631618587136781153822777817384634781421221416513565621512427441876637711526374532718831667423572241887548874316474146721668576487557378873373687283574346265522164468323652531411337768255476271633365681751712744387263611488238565235817858611835642628438453825587775647377862486365818514712432828441347732842374742383741171742453546138281327457687162636621555471178667761215175747127458513156732787544362568123582446156837617757272314457431786887383686524388674521153566242817436653114414848481263478714661411866244571645542264412453435575268574817673287124462417322735453167455333328122234162583655886814315815836714684717867788488775373564154315464842717284284677865338334634777863248637157233631828748872161764745618584814333825818554651413774852861137431733378835877677635227421224826165154144247876758462778887888666862473514413647353431186755488676582547144128545755434226425484624774688251722354716884536233315784221286864668246415835358688835123283486434115753125647273246457637674223233774152326112423737662215224444478554783263322584127887271271635347724631137854163723636335154688231514666538835274244756133587421547622134887175486848252177826141728172161545284545136244644348186854747583118233783227342673258525688554435454484673517442637585655377782813143571587833266583265451338188411337144844321676563175167174775724288683675418166144552435711178567436415843828224375278735531447351187388541261617275727367422754524358864687624143675273532416738351224374123534553142181237521143734368467681253136216836677488643765418248822332622171648555228453181624623412344442513237346853733781828265481514343355251513585465566151651617742144638471618244666162237365756162114743763454581217437732416161272652615522162788282874732448534451327848253883823777351211131235254648531881842736522337117721416467481256241288722622538376177632561383874653515464376272848323536322278642662274318673747778188377515135283171217275456841726424262775162331152735172363431132427383455688662514178816245845166583518175612832131881375866133788241634365424324323152617122367348327714856144476757875473228851752688654858414758627266574246382226188285712287726343567648377281888475565751313133146522428334371838186547368547513252363283671641348568484327765781837823247872823578585836474851621172416855257222142631177261813822227724116428633453531114214282414856156714334378638441531841757343515885338666336246288881833363624313516478623146736482545777256544585214232143423622866222633857414611621885733215858641768262673748711866156136238768726418566447485258731444734312843353216527457664523637266614417634622374181554822375662188435315437553547384652846178888742337847384624244275431735425365218658585537143261423453115282728345364834387575323328585725653354752811446264452671511757438465816166177761716672613487237731128683111746886254335364753336135865272236575267611814378368678336841231475673421211514242625658811621735853214272882376257488371138667354274367557756442876575554232824147475886768173336182226311267563477576851765668434623153178886744357824687331771313215563233713835717744366112112437875764152123653143435246847256612388462643814778228713214875355445477542438876488145853312536277385216126824534137433634874263187278872561881111443723777384261177146851551527568527765352377453324618464483841718355747675232533851884113167754676837616826145212267635642423557811677176357864651484854253178861615468615558832641715377386271846454432644516677437625554243743547651422843376125777431524784755672431622528827415815866114585724666385556445282483155453467141426756868323718524528134872783712243818837877711258738327213558371642582475825512284186513737433586622756328676752862228567122861683475273617383248367734315483238176252523827333851718236746755628144866757681673621443686338512562825612266812844875254557264827121351434735526665256517135274853187687766184652776214113222626875325718478845738451526848167433662843887552632333385176651263548441315222351284531717141166477128655336163758872868443156451338755458163125814766312313855154141376758737328765212333615762375168622384183648255188438576612825547674151424316816515264612413654137543245642418661856827235116428338344575675652444715225785143146667775353885185276665815526521764543775762832555882573111751536851837561364521715124832776736483272818145254244416566654134633557727728142435543381662662215456347771482542786283858783823225825784513654544758222682684525164641211246582544535712137185313747757843657428463128723632268513485858275686631532572441664584741482871458773443361112238385445445633447383234231347232151381815448774373563175776581663713881134818116858237416753531771638438736616188173573768178166216741481741545423448722331344635366866851662228223282315486555158346817665753475782832242784158881356221366514744144234121476872626385422643234338322738767133882631848771784284123865548323613442233211856865474332872573721765674862657154357782545714782837483558782514631575341871165738665682347557537543276742828212635312185841414238414755126533416883163354461771382476855517854321586528855111211845311737333422441787781167247818586548467411224711646753264634374818813651432723586338653785824124815846871738187537451348832341411554358142822331746767567362317164165166324154817585118715642248252738127233624448626587167343865117681418447578251761273167151542111752755522533368484487711834142723158371118436145173538522613771256755765468231447387326286443257711146683313327754646353656863458454284222423815131645822515552264581868772137332366554485117825141143172285685582854361477838141152158845115664756383336271784866172662373746883537537216855142618573771752452761231121616326244768246873234867181168748437223318231838717312267844734475256284114763354741137528663216388615273568564155727378343224851522111333788855436262785717363322278372357323456241888576473472311287121742754238335784582541636355724765151574267753263123756457631724478433526182478687141455338861318838371651785465838174613281387771476542286743886512832857676533371584471264224562634538854624517637776858177235364434438457728653236783382222318757287214873427737526526684425461875656122863716525366515154551357821587375652471574335586123147686345244426525378728138737712342173517645417516554157117478623471411274772317834441316152528837667453587328272535356632781748275627846475884227421778124715634886651165362773382875747385854121356463515654671877433832484586538745783467543581421373282641811781171824735282833831341174732877145644787174273246337842285178744485535844368653176756836232123522242435837714668151624436248467252385555432568465543546327764545755816428663678781751443235381835133735418433463154258448645788117452667512815716883514567127637531683521461527327377732613475835662834632684282681161282548618366436486333632582584624735415188613158678622561336755818526225753657683335478222654255216485661844711213447348215671867316773577535625556356776323168881345653123575717244837335513458278615626142282113182821442483377728487652576457656525638435768621351183841683155776145658732763854554727557551117618845735527873436774316153161512282335483371381538651356538658465668727243347362836161388852868183864485728625525373872864621331586843571223431135323266645465124474631727752555256241764427521867217258884256738144232338272744254848545631363847336155131775217362823472278443842254727865253181848284413824817181563838255522575452562551827686644683225463581716164826817443114144465818338126723774272625873486733181174586335574687556155185745741848465617833362727583118273636737432167552754646583564278453712354537444238661125432541153414246668464483138117621562547544868535248557567548321133287543118638751663331144533635622243121683344377617372545465617728722486426525442348281646816655317453762528664865574515812637854666653865418715338471871724611746178333573131333272346134451245548143366668783771872374681771832523758486133427276312747483276414678687177828414635575384518811375822378252787267435831452113117685734725585328257326433233244511251312858156638432264457478586623343585117767771614221634684423453373871334172258647312446545781235471224533414447865676442131713857148187818448883262813175125127477387757467367681542755337516145872334771514148184871263634485554776762882856836484227271226742286568635537832241368173212446336174616736521641466842338574316872818372148671723277421874412765836462335388867386788486814147611856171376373278725461257332283384668387122186557681776525435332757484366263487357115634364516351218315578734231137361357775227215732471138252722617641538621242631748722536724575421238112222841132578332661234635457465243146121834767631644787433835451352138623218848122211513866267818713772668364346433281147664254232476344276572881818824456768881217788214632782578541675438124114454442715654417333186681218668722855215331477372281856673521213387814217352241368831385656747164532843464658346841166242873371733887712336861662335155853252882856647742235862714366737723513387128863683258136253713344611638218165132326385867824348325445456833533354651326177218141372777471788132284286564472452281165778558238445734182586413677385531576286117671781826556485334477542727438264848617324163563621132324734326421457278353376547352548588832661472781585533284135746416466211847284241483428477163361626334885414538535867522477422173474873484743416161487636234443482775724268276458488837652266123861148563252486413816768145433628434147433368678171434838247476285561168883732785837887818353862587285272534424863463323735128374781325248576541884873835447843123122532241812866155455158523832743862276734182617858435883876136138227462836167454463533837211711728365138736678672132874614451212135314887222676848644165277217167318714325281752432815124412378728668157367821253323882148237116173648543835651858824787727588353334747218671445344783261688585574165586454414688144837187623762835584235345713326475274623818713828348843284476734848417664322463814757244653832126634467866173461556176412314513843186844252267321584235135583576552246338425844658252655872716152343665563737781612544733828381425672817377627485621218167686744368158554485732453144141466151547551273522282317312662528784858461287246326423251187315284456313183514216547738838358558881371686546836577167122824568234253882543815561147755624141658142441262253476571832581164685318411283178384653453572545665212828515814513874726244164537128876816484425413861374641711678264534841357718752788824661484427541831666456138364866838178287842185238461648666151421424133784111373238211836618622621721211277275555242242512538762554642765583718824217854777722877848775481772661757613277661727378236366442375166787716648427253236563274127585234822345754665158663582151818183252883277612816543768135123672687753177517685145132615773157827461747588135538818161347558417855581416178548538216232553261123672388887517137148428272214376542442487858762545177612738336657812612513446261765343573415242887768685188323161681827836411311644628727456624481452341852557323654333244726225867688745876518741362655144736123858741817655311344268643732581586136786558258751266742181811156635315637323867572835111812614847545178826263638722183243411712325734322115147826283127125162264513844722325774464362171354441582745884283371474521485436841885777173453481235577584736486256731247554881661225644137434258488574445482258247623232572857513252355762174618461451374546816328442688767347752853552615415634644824717388171846312468876246221663728648556321841784458164452438471312333155718585687561516728464114387663244751131776544386833311646263553618662326667217856377827642557884522753281126463281658228342741283145362433778155786617343573668563716816772657836564114853271217275445222356646463463865351132716356645761142747771774368167828222755183184745624487782465257776632331316387728765311457143487256856656473264627257863744773555822576385568616483385368644661358427114321787587527225146323318356737738615534373284375117315716548838586148277564668268655712566231176657653468585427154615558267863535161474334553155275431156721241756584185511422131574576337353114733812128661864828376671473371723224172158245345248516322345337325421685561781362387688421121522751878543277122722656315464435377366876275674822686486684144548445641325558842726535885186521455675424871531623442131341852154382581657318446372551672343228515465581432835641483226152463184546286816688134148132734867874337124414171673153656835888476776585885111164841322662361875564183582788463867668833237225743212137114522824682372351177333628583851423371618844646654574422431633442668411452435287323361514343377521257754166353644871187183487745537414777113344732517474373764487235263871824354121555853836265555172131687721772544118463776138516466145523582753863878723233248456231388458581884748437751632674357186837557613687636478142828151731128842362642462778654825426566278738866231144232164135377181377767734454258548753855488865184547432564871522156458115662367782582744348181766523278645568344264328424371466285113676334725318481433462125714115373663125325254317221133563161364332541742357454765847282158653276147172214128553743538515266485265864752363778751273138346853248643288882271722441718432136142673168557772424654315345227838684661536171223385335836444886543116235833125822551714225522135143635275554745862627731387252653633321465816261333722842634581433624766134441544436626458825868711754266572686241518325813565416282564238167758426817485412623437375664672227125623532278151353777322755166548722145721483487473815187562875523483142772131547836232855148262527582761561324766476672843861783522654427155533842375266451336257134463864487448267774216387873472887743387633656415522326624638774368518448415142264413731314273678646251256367555585875662181335166383165762673248413861246871343878373421277568416771764238754258144455171837575228865475166278151465163232876277235471847352357314467741615323236471442877161587814378448647862366171364772846617633644318762867376371458548318748171212175342771274221744742424482228384478633347748421564416723831836375815711571388345783234437586225473853522347273457662172581373421673115831755157522631856174833617117312153638177321122671748178886475581523132764532786571458144773818631114856821751574328734878845728525871648324448432421575161627271744867716811451568326531568473137171557225852175874243868864336645417385857723362385682675777423658188644222428558625551138841373882755864216138611363363736554723515758346621556341674836278322377564584363827622376738423445643411536628866747646325767218341657411147545376241443178456886133771444318734515555824461766561714457875434575117581516681323884316762114233734251327176667134262727875117177414285561834417531773572652556163443118718358112271214848265467423373263715775611327472188215153472775755383521657466663283715243477858285247861376143863818421438285761351744773553546416445557544621434217683818358568321545151488232552172447134582578344855585477341558363266282351844811555174615656254267486688684251726481852174761354614133818874162472473387445237517512867766831268373378133316133584686241733556445471354372854814378684644655316511645661726317412467488555185726576251812518845252167124588742281522513431332826721282522262482141867811814262544531482524523634722528671686847161616744386355444656284231832387468623228725165582321441183338132613631572685822713723823742333563483257184685766727166122852264274516826482538816721582474217536146348844217618156266414482324875621324682538144751157567485554126144221133844325187855364828137618786811881388868662257321828451348638426523268143337736715742442422431642868871361751181642486535447423378274862623623456685125556168483172435386635841321527741457153331541778418664785424385147744774887143653525682843338543484472747612536588238428423476426761544472314661584185617845344631652756876441568845216817218572243138677138142643854222633571382662531888564634136257371235862237187656614744344855754577644834431215545621242524756221855147482278633865676717774552516227636741471677246883377688551232182442271327148385388167771711676777185224685232462344723511578733548727377862114718352617723385328367213851727317243821752157386824741115777515181158142827426215285316841417167761644833341122241767133238636514544617638611522315718682662178111541174824663863551126853166664788416864842818221833525412735373223566136827441588527125818233425462145787248855766447815438641284165325715381755288141251135722384823114644788814868584313852681758261531568221524244364326456447452171744756474584882121756266177743836867573548147755582715578154316561488741624115652543657661257524334715736824276412674446523344437724814685721452385615327218652113588135316157274414112533415225242712413624513641642885882471614572683865185458184351746655682256425472881283112286867544164855566212187113183763556126481576113423328686155141865364178184464673112147744157152378443433466844712126761733314443154156481654245113675438451712766372577554674744228432467254332531477341425488872481337718248262216612748385341168782668388815786524458155648655542468455113687111513127573225545658352563737615456364288276631865512657517347541773213736461437674416864618223382327267811153487548845472854371278185756558868381371487384378484354818352815541535674228357384686756383271345468816325126743873527823747878425815314815356512761353614582418616844482626174331353384641451132432747166472811616586667671771531471247585642762137454738514656351375181362518477384466334656182276656481616545144577867341525734261876856667772886784374316886473272434712356145682726357844553531441821642456685767181752874716451418148372821254651416681171425433147663734556883631318414442655638283546553357222228725731172342866372816838627836778468136862755444345635566136772337312564716852375515663146675575372144585271374535718218547716884215364748547617885763687264551142364628664281875463712285347327245573218528324837877753477775681854245767416886684278574853538222616883333631318473131583546535665451684754752388611428774434661766822184561611336378354463831177375584146674416144646174474272571116267742373684737446541835773453261521717164226551212864448681663435415378651424212887237614747271337532517318678877387265321137237582727558137673528115534544126843625441128777615515755275684157326761567126554114386775144428247832548456713211615444855186622561635341627548575271545245523631661814566386755463516777335318346384447676463576586862665382832332665541844717557852177376476675458768754842766228334253566744456333375376421242745756174464811213537662474164347431217252613438448223422438531161282623758688333342651811453551545364628354276527353441472317367515836567876318134245271371774341714226112417172585661467226656617785213323232176321164556723551888518842821175426221535324245245263754646614323631354855178361846387668815284453258554627351415685268635345347654276655141257426611663864418342368182566382114771714812317818245212338857135261722317448831741131224275687262354445885848531631753736483828252565732423173755487372182371862684876278154386545471348174132812415271785335885283337283466563414682662352521231238625853216544623856652814584316767433421643111115341237646666151861863137318325748567483136448535528573323812465128555838363383522461467438575744786158873863381414142875438671121622616664818618223377426174156637865543688561273571128737883263626241261283821747746386146168137622618385676452812647322577282121882781127651441361262387726175771831837461425528336536824273762854823451517728752414613232567358422657714586263461516735543178126782338758262465186745411317266722725657371127337872277325718456638864382461811755574115685282864737856711561643262348774484577526473751717548523457435542658187783767525448117153753164216725364527175681286157111127418156378612128647664178851157764448664615524588826132626388242643328756175231783483332561174318517244522131226233425272356674315286257867646428636342436712313722417811642371823347462248335514425862546342414635162753675814452818761512642674378464313818842223716726857235351764214251252371351187484876568255645652764677614471326311137848273748583166514842534262364635548871511573233674537854757727177146154612134163123874151417726626133564764836748114568221113341148115148513374781216738815738514512723643631676784573133576234355433313633411181144454778218634746774744185752465877155842765828387438744136273446713184341532257861542852346376136333467477381156717668813237831331544172472446737562237542112732775351187218878485528443341173837433237658553553271674615671173485418262783158136115273722475724462185265546241856142473331513615874217332142684117226228866244432628447323258561158761457648288121535424348385861744546427483365128332725752117288251868667162371228352436334624336488323778824582587647132418443777616645343613452873675733443621287733453471632821285448643175782372286284267426232743676655832736842262657211421684538355428657353566712538376313462467826452374212778617242843356214663377563883647578111311516373455673281451522348351877114313557273518324366117114768561667833342367286684812727785427475247248865472222522481846484818183516451615826744644335874131848286513278742473846871244644617384845861724638824678413533864763364527518672538164814724226564466528365731154651227381678185512254186376343715426323157856517781711544347328767258264156477827864625128816483325842814627211567636234725462451124822153568585168352431643755737875781144168336232172613188642117676386468413683581467634368271818314847848877243876621246631432327428373732252558287863513655444376271254841282777632583727132536844136281716654524674533346255846428137725481513147116417624225726488767324165145853353185476838667322753236441683838237675175513411272564767837381714347545183111135342735385274762385245452428437863713142521613818174675727737284562473315873333246315857487226434678515711133826644218645567812138888235245237563858534746534634283776466176744715425788328677264252587363623658317784426851767743688182353327328264613817141785755361415444333728851756557316873118225456541788754438752582378256265476132727663676652422525247522161744672515573228151728413262464128156827533754338117158845158537244433385247671372254644821878783846242762586632516877441147174845365543468142288854687668277642864528766336253147477822848378576634567811276487316615781435343822448386125661582752417147542441654558852487413385286167783637611635677526337654241546475715342372528466186823826166372533153352423128738487358653882242126458556838518224821543847633781246768432178656255778731513551644827741645212574137662738775725815758428616552532418553447588281435344821636886734741185822517541732731854513872456562624871685437627613734623868272151218244757338161148411364352254372266342131714414343275571483722817288162748758381265724838812158547125816753747865554516514466872758146432676331455523248373857613617357182675632873863512453383331223532768418217255462326623145127341236737654466624413274175657442261844326438256317575181565868283873475634611346215765787885574847273452423244731117554121364738323255466477731847461572518657548862417626211862467436644325141113342773261756111858274363873553844733148132433284228346211566832311375854114173412883523666158255874238545154151851272225727413817122543727731883521483142773741328264556115285423568573332673324238384514271438346351683422728813748885173723653478225264326877267755323615567873584716315683178561183431186452771857557774182855654614661125351346667256555426678721283312537528786627334542826788527814637246125454244558751415857715877687366612633185831647243684278524222742725621374125746762356775386472624283827188678866252445834678521515817324343345527668333466325176644162516486144877771686427183353361577733235573337486615575571813631421431857877784255778836574847645387348234514186261758277638184638134114562671354845854737614663376357674848835325822152782234552884632725674876435347226818323222645724852118423153445235764185828467454335877241584616851368557264627141348631441477263866573461837328441178134677262527273231774622333331311344257371767787765717831238856152266865818487232612262785457231844632778787211347235172326718781338127857645445338436265815572274272664417622315755177548754872318573881328341482811761443782638244548342263712112754758215167688121114731172878152214734311276257225315463332714635115536321515174621224457317661242755474214323771713324645527633477673184236172158156532648278436855332445758535437286822548477744344278434376586375667722336712845332364388658446611253385643436736823823487183631646642715225587256217553158183226757135527747328848612767763185431231758233852756483668146423825618455365352413152435446744116377223421843681665575275461831665254255827246721468657781784536747264755541828635561141186128484317458868638582725888688461426416858725758675567233613615324135426365821487622114472618841318422747311146825625238868751457418253673384643272354741786817355231515512663851745336426667568288826536614865151678487652277167155628888156558377386668844751226655554228571565365537133514323588121443187752447582464382721165676387364618851616513142771486122427845325877844515565724468731143544643131732352515156581471255115578478438324565746266211286313822536548477735176383161778176475238844582332518234512576275883213163182383148133278313137576584462771611872444451381651277884442375142618754881885137656225656444648776462837527787664875527733384742485377216675553517265617634677533267548876538458373511164442812374718683152567255216221234122321357837288455242467651768841148765564871586227852436461152265643868164133414366115623338513144812514874721824524753273613164264822168457255567653637114172484553451863784322756631437533647763118713148551635187727367513485766344358264843421867415353267715448832558841858125766888815655715458615366332334571275166512787411462565288488747522235455681241344211636335376138248451881611415723855355573342733477136787814476648774118384547772354831487736267122222121235871615865614454676245334245855424151347867121257868483513118616673723571152166551561427784732211488746522635176214743338763183788641482335711231675515583457434318314217655474423671888212552672278611273681712176163643467643532283777116277152435388313164136313586317173457667286787262261882741571855812438255584321286356447253324522764378718816133458763585577138273517257758223565117834572842858776563125187821221124467353215751224475182453565333646237425682618627874238243366687371722457574556154464474426744562351255824148745857866314678283334411868171152226113311475355284685488186168272577875621215632661875775257246182758127138368442288674818783483375356651653286473452547426466481885667383628167463536846683138235467214576278124343616345345835162883426734413734161454678247754611827682782742744851325848781352823778538413384678422812851143745228743683528656585373247818353772755782758625141248568866882745887237411178278214726673148721485318721477383828317646141638647336374823623614515465746515541478676268416664784847588248714428473266717542122222641555216354718235873386565673516638211536524413152382547262128482478283451767733862682218177834742656688442235183832228724577852786233634814523423684335654125362574524115566515742832566578772136257568172413653756514338726186663285161222146172748763422187425634842138213722653618657536367588578772317351233481425774461826775634521456168124123381717586245674746742425137238555315252565741224565727476716423853534682865553521267563254883787612241384458417284842334381561117222827133141755126221348463248838786611562626328616642356266261251721574616115663414318586321385144767238416861862383353671677382365248786253341476468334113487682376835257273886514583868825675873233757533523278318582254728873886347262521428118535751218184483734317236337734457143728488745785883615315788312165154154644381478756446832552458661136487584542424138482526468333135442217332472551481222565557767173861683516452462273116553485263221758778425637513513265412185176162846687726647188122538485113678548215654427877455374321727155628315771888647288736838117774316836572661315121654343324287287777213438155536683734225215835571866261773335172121533221678783586223811212418571631658377237256875233323551177742813812322117482174886217316181847317136814621888187327215721572113573863345482362781322863622887755148471686734173612757226872457852656635464742713585464652864368285465178233111168673118352384364621785677677682358536123358683235811447276653847581313335265474672673211763136586377326734148466342622716186715214835375376284534686544358881111261487525212354631185576543224136166835225842422281746251452551327566158353282371162344181712834487263657664563345566643433533533125382735783733156631634173416315815744424363667317176542552888545638267265448846451162836172533266171557767343674652541228178455231786344267142574334452165872255241445552836781283335417165372463576133833212381521737644338142381163853273162731523343433347444441483622628858516442771265675185145476345717757113856861217617378886322462244654145311431861715355854782576858121627631337264788385732686382851683433365672152156311166663568684616844262373258888683168373742371131147875362757484681385568414466472876563426255582326744481717553446154415187344143727236226638878572688717648754133712283553221775115883464448418386576548521385886255288618311246565285247274431155373218731822277417178466811873226417481143367714273288776845753564373353371267582462146716878386621535851547183345221487182672341183655721226227788448824772673658634363352633413334872356222157636264166381332361357551843254527312714414437352857721864778317647725326436328424863528884575458846545785577188545487483522764665121365888687213758265237414542238756353322743675562182813454266723247445628674242127317221634816287642273717887711512123252321518361457418717675445514586427467111123833423157287458867218823321133375613668487231786514265587216445665633547462441767744481771581757137852787517352135442431248332732537617265681461174836827521784124752245322137136135786345485483838623352434834543772223723862322884886638238258544452714186888775374524537128131473623733578467152273633114117122384344288235817776745656724386483826845825463852283464246363877878271462178131751113587822771534258212168141725433658226385855476466571244234467418322127324737532881572764277527521388281244657843667742858677236766775868835335388241833882675468644181154284488474466753581184535834116222232738243585842617162565642321513473117366727178755578658857877826374127465734416835516488356644468441844536665437548865751534637542332785557657523125511321643467312547653238646557175216277384681815647631282847725316532127483251484253878164523723243845755762716883877762724185418761455583431221215182348355513451482622854163684251444176633147154325177575851143777776525728684173382126372182438824535724648827224336835731848532651338364353774274873136637657524624551653537655711273542327276318332486426272768576737631254754677783234723655511851734446782151415638717773414211241572331133244476854612128538348317487117472421723253165837728446855633537476155332438537871832523756718624338833763676274874285242738451858543485764553546833247186538384345584246582543826316613123852372837822641562858378626878264167337138264821782476447616281516186818882854588746247525345865365853428511631572885454144541734826767684754522672834337658487451244573135273421218348275622566341317367785287728741737161283727525143732112888472464336845887425821364172832576683673447144585257372358548387134182443727233758244848851781368368571858473434317418465422217242761753662111417848555283824487665427684452568133888165463473355457333348553156145823136464366522342645251556267421738446561283433557144761553385148148683723622167748836547877477143123461332515156845311184518424683535335573678144641356417111268187331845224785228821667537213723542316884863245246361721512573414642811463474515382161111725765238126633162537237882117671366755454186414236115415373757741283437847655668141687735166752541741332763481882531318576268188674424586816683725826565858827453584551322576765136358442314756766338121748272682326152257313686475146136645422523375417718774488184366132451517446144535121558125453743677688543824364845517576238273446316836827312665833671368376282537227515316241743662665361178743331777875381344521457574558511413276145662615623458827448181141865348463681762215713216273743846141676143118326414722288471431144223574784473231267357855815621237556832171458473377734381563572184387462214128456736836173811766282548721833734224876542748425215166818518773812388644885714374571362732776177874754841471774843136876762546834371762776434835815284536677341774537376886151316536576324125711733636183657487146382181263641783662161386713273828778856287246221473228568777275738625185478766715774641328184366315772171666824258633462846464612856625472648165617842715523658741573127883866136587678831785746784766523575278818776635325858545687141364883453137652358545166645246244683648648172277232745168671365611144615524723583444157626421577662233453711721161136764225264846221253213275758853215637241315183675185871522474315867658788858836583686418557855443875764736336645672427841445151847532665314835214815761821175246615733168231621177334873182216543236288718766545367436733524874866576163627462865328658822176468277462431264132658585284188645324731171766275348867257253174325615461146731132825781225232558718413124466578632877168378142137838837371134867756538227132231584177725824172854273285854734881417756314728672618884251633683688274725854722883557163113142822848187641613817721527584787186746455876857714685424761318775461275461755546672828483484862274757315146517835133138467432345432337433251814273256288613434663563412487255264548856886236364627838164448133487471138458276318182865426881336632684636352572277345544318133612747862584657563463687725738755618585622784526744218552711686754464646573842685663688566315687114145484384533166185623343567377483683638277252761433633671575432351234228535678722752731577187234353435487152811756885641451848871334778352513684854525337183882631275111832387483522222822371151737448413338145153365436625486478221721741624221524633452582315333375156175467175457764134832454758851658765374786674253216457481185138823241381165146437148588554763452645475157358863436882426813845267475576413365268765676146346551387546354347862525173677172416443314118234586748324678147377638536816826876656347673687123846511211558823688181867286615151616486228122447157644531782486135672154132346242673735824131434617771784188471348638726831148126584644228757783732614414165846613266257231876858176274351755573586372712868651335111445287446383881762824548278741571768561816715878642256771334878155673638421125856732421421517471148823834633787447348156117556627226178528487818713327138584826645452373288676557868468314586237543667546275737384738635272565388322173752112531621251748883172174877331481651422244278774283451445875824151187863482876452684418684285656333231231334561416827844358585327546356356778836637273574534625246577274558522251168886416547161474362334276117262136446182564223611543136343221884535314222341261222122423715581651251638553576368547471631888852176716663626321841675358125621787235812731263826185387881457213636273466551752527726612327238287726231786777616477156357767357836548384533118647228422315712284825445887888731252864181641760827562637324766758115122256818561337561888465627588717181341214814461436161342162147723417588686133142647778655756317648564134644627558483865521246677282665645264588238532143734282612767147332672311721185147553724857468382456547336443516167448485348367278814446177417612545262482485723773724388688566382827764161547486474711361384138772334332443382831176121726278764857186212436681385666755134116263868371188728424177433846314131187683687476327482334375573153757286266811511418337426872286538358763464281331221663152246561565448456475415374152326237582327537464727134358751853346762881643558646111542477541764221126157873543342865271645688761538214812325356421617677814456221141517681832344812445316352841151711531381524572623844646541515553373413131577431722845568376513841342552671238277378815533781175766687823533452758756368358133276756615164161353834531233132141733163236644438621248852225121268133433184146675686682561172665365367344628176323887745721653851484824345824246412343431486758487476871277288748634543658184834448117725645585225278524233673637334175345462644262771363332565185463664321242534423448468685785318375673487542844884547564724852848427756371572662732355637738824835477125743166856142325154153126355134317375166641578785356558881154485823476722876753857621266378737825831623566228525853671127856325818846751578287764637646282533171672137752672527888728418352331484257838217466835464364216488185521812828432174237665782482311523323472322281623278654564681423644688582611647666288622687718644273138816647514731353537365348626781356826764743558417885435464613648111743885211256556765318671621586332636747424175753188834113622452375655467576733138632787131846261633341788547522471366745848266316616353327768574572852456431767184481723366322641533744157112576136275112483637376532114574633482668371581724358177754362742642827823868622653322113531412673432823876758631858738252718833346435784268738712472386344744847276735248721461215424215251644137722112751754472833111685336631277454346323437536534563785465184511684382235874347654134647824361131265457523146428523643145542642355862473677185124378371711174376733662846423134222756736412838378246417621878382166726257327715737165713551486361822634153713276558118155162485556778882378587848721423688444888547247132852442481242412852412166556831236837746851187788181864231821618813376168747684361356746537555125351654315265252784537877611812517248371753148237352646573561482273711782256145561442658173122811786543757433585686462165344385871635817422666313551654857477566618856388233823364846342246611341883333255217484585225111737562322552743154763828517724867621418355425722765767688266633152212234345577455838667375114128216188571147881184837423584183111625334148584661761578847846824552184585125572355374267538371446252677878417381537812335854664381134823551151118856258322378764576147181186263635342843277634283713313488663636337233257832141487435334361341144757143532613452852584682736831812775645866228174234653582755852736482655474842461416456642786145745612715211413554266587777157612843724342872384426176722337155358332432581486438243582721286783722522741571284774734813832676527471631775464543183174844717431868617745488843718176141227667735315286385355333217472564136711812226753377577584343565868326427281572776615461884857421143482261735621471686656218521625151744536268724878351832583265436412731314785771712862622114244582444265624388876243222373466833663276747847512286514418645184362356887687115324565622246723846132332656537221244712883364235788627581823485421567327642134573252877161421628335267538713862273257855653622352747617378562457433237314343167253183526441643476666266281464176355214544378586851536353118514788171542865584886141446343861321838548713358557228853384577678372845773778634226728745264638247137373562512674853847434554167567315358565434836386618724837475375827445888158647425156551384588741672771455326767331672477716782536672426628412715571775563112232468512741451247453431584785674781417282344364761714831876151511552871812314652638678776188211253326113844315278124882317327111313874367365571253522458247655476741747342811622841782476353556237272622778546482471628421366145531613556416216352181632345821263311365562383687863846877448135133158513712677235585851681263465677317555433313553757774816754132768324864864881273657728562861754456821114483371223111526474566878261731276272354361483231374537545535321847734256865875163135877131338323166277545738316325561341163882367553117582222458166716763268366772188727817758726186773756684168847826777263112617145432766761634223852664575353257656583876848467758686241343354136456444148652187163647548775844541271652236443846277613576162586225357541882343867437753461388827244864653487651184831243872541154112534873314421571365333483285615455823722861687672325231546214328817851743718347568152785463765532834618846572335217146688676788687255638174223413227544468257737311773482771121117553511472325745881881264246726662537643545121375475258563822287157777243415111527231156145265661225118346446268878851325817141758338838244857523167266334148722624314237388121324732254534576628746236532233832425287357715444875385527412782611221555183316665382721356216463445416626116474571432164754182413824382563367312115827363468321573618562565365266635162478111167115558713418124356868167565642253715455613364468653436284655541577124351553611343575754286656465747261875313846351746826358182576168627325228541682154388785121674646144535276813117414188612375711172414622118371726286126852513211421758656544223812621165225113744581522776765735586561872553434873515441184677234551245461311468685846656174564881112327328856585156727486451825536325226728167374123738262333742374465217221645647116824643184888132322683764435715457538415814717848718753283773178532473141176837524281476661548588734617425168537146655487452161112477878553225876358554868276847752247214285758275116514277443884728516825111185363823187543517171841633718525712173378714754553523353544283774857853844128272214538581878824326763236535223344756413467158257842254565276226553861816668655148231657263581316368361584538131658484777144232528452272231614646375731311634846457662545623653387571512341642886321575716673822635783587628724226231622178441314551528152848356541627483386127241782486256748414543172382151565254361675461126437746642727632247271348456254766617178731683716382473137311687238583475414462257865365716743352272235643778612417182568853255364243627116633861468386278214417723781667381557682282526516543185171743543618135324172732156433832616131357866468446626538762232488683488773585241563772765657584438468857276587521418346777334646674676162471338345871334257537365481616824654555241773388612445745723115246382863127343874785461528836451756654125526712382735586445156743524585746537434273638843528881227567252572125433763666687374315138525478571781774121448867165677381744688448224585281754652785325168415421437544261825842131663868778481141562575536232315447332725435286253127577357488683183872484121313611454241151586515851211377417644776362347183653825183631567812146764567144475477156385318788564347612225354817363682383268735731267346578568453733622185545227811415153126663822788158314482873133545514267238317371812821225178148686173585583122178262871557162887666533772281167185251215618567315667826883818415181676857715625877648136886844124153747285437125586266753427826882346753115767823638115327776475261416713371252572278772256764476137615121635544757716628362366171727388857523885745164181737533275164561128165618325772564324647725347846754135833262328427458341444338882181254536635347681671634235681786812161714137413542314483553612373176726226164178216625667835233187476164447546264715163763443658186761275148453783186874877221136418287612313648648414413374856314381166816832813844384583658176216278766261156412747363335213521218755468474232175567887178436427183636535524627845485811741252856781511632764525264454185176343137645627552623286512117286821878724842786665144612468377545331362663823675276326168684438652678523725744428121336884186862746488746832364232334171481653533343777576421411633287717463733126165481142252222112872338668576871381312276488266334264782656152251877115512428622248325142744838177764121233212185626287468437416744855174854233682122425438278834175271645265284363212644268737735451425682827424435566651534324836147284475334433671455465517157623242551871383658354517237138552776117786772217144181773343288176473332516787388665423716186811345537488747363216345375855356847467377768585676326745211683184432331613643212518851461345214554454135158475285781717437128241446725422835543782562822781384138472821773484674532431376362745483251837347713233163681134368474461558174532724276126235338867124636685747886864376565287255554634463647287752778545132823275317621845452816175616311167152573422275632427286456145652554628622718433372281585361443365714773863565714678648866677614785368232188646615338883651122216681323522255583185684626335253878871848222467447574746445661125874544256864465233314838583352825141523728353446774336353276347817851242734274538152444467153443315375235241663567468725622533561655367588526748376337856626643415813627666351378677234712146373541423241572577415828366577873236364358324277888272278443331524827444345758625348427862382421462313343585527648652457454252218181132486118441426563167484271276781686484847171713616545568357133713418413177658638341464488868346256714112534113137771226124617384661147882362642128237816846773758821371523346127137575241524765435563274575386766322716455813225668144213382138456616153318582764448755182165877557331357867124455141326521667581488424222673785311347681347286733735824672657388881736551341688143332316378267163653465456235181181831524532118171327734423638418487421573771677476855367341376786637383336362218482187738453242472877221826684544641283145138363562358111771812476153336748463486223231874664868275477768775725444434437562857543671234112641785835347151226666142754361285245435855337428656436228613672863415687887641216828337364533438641376236166774145165412762712743577761244772873151686541437662536424484563767163717563262838282818848463445218451863881171186856557155185673387375374158755521863445842568517483686612654876668824478216253553523281135524286245251171485322561551568722716577713772886225842183621317175714585571738117612472414241158281621874854545363521467472543363315184246586734142754568483426726823187426186267323738647686137736616444821537865328751338133472257763851874477865521521221164856783685774727372731552531335721461538174226554734486628443882845684562874348478425283187183857423571744847576238614174474748347316847447862572522578114155641566732333138373415531231615271834674517721345642815885625214813337678261261442588757321842847842771484161711131826718561651532468517825613766764255712444263421837786853338576168246151274485278667331224768246237433547857275748642638723634826456767334157638263112874324772226754677658528415412616614652868655671255614654852133418745632654788774152573668748755738383135215653267173151132876556543425113268552161363843781155666877247465172845647842772884236784328735181885428321218155477724325785164151563551577274687166567744351453471335451267214826531114116748257777484461882878322473588244725584148445215811747143112682164383384387728116156532782551764283233523111672374836775132625212222544442228144413181654483113232445451577478478785826166434324534661784318257844413718458472714372121552276636166327758714155578482214338682355646238275671718745856155871276757562155624762443825321725583768583367846124337286627466825368725253526335635254733368536733722187821341773888442665235818757124526347385382285158242788371253262865381836225627642481135716634771126276484136757666445626455431212585242611186431264332844287214363544774741283366416311628116211262645781721716424214844854342858131411447435774354455417512687676323337771425427853251871156571222525118717358621643611323161188121226684586238881261388566342241857337644456843648665388583726478317748272554827552772641178333861644623845836652836662466161463413842815485761652488343846543588554624833426271188823724447484445777766227813823562851865412523251544856724775738171276384545737552157485843136114228554675827671852387853733583675287655755623415512183475612138348775366785713434234568115367818544771436173375688753331837634677233762246434771353355447777823485678553266344475627832378262426552426414115221472242178686485241468116277488414385483357613737862542831365816112541746324684552362532257724125366821648715231154813188461548736438264152564348436735348111174776384318423754456146371886851318135232774736243826241848512433312435611188673875361351871221422362838517576841464115714883642864737684548843651656314413644481861348761622176658141576851386154178755836682364877583875162746824881143423325471838334722865567124635643675288873713244146354132182566832121114855341351176248455378548612428865118712878281783121142873231677754445683378365674448546426481876486553541474817143864615322125654176331138286187871342841212374752451534243753527348418221158512456271582536484278281228221742173352121244571177687665387443216543621414468546113441168511732243274225367378648884867537687778686715817716667364332252626154834312717657185727332246814466865813684535432524423286484532285745172134337586587824531681768311527687731371846485827674736427431816658774544254725381368112825523274268583678157346464172233482318783612876572372675788813827658634655551275873252731677646412842416663386774765845673244755158761534453117274745411485777344831671133811388773172276764365625471151411441134148737572814276472583514328828128183541321415643783723344712321386347145775356314275176226458154757558736438758244448162464178435177837642533256657562378674336532185758873884331244142861311121781463431336438121424621422471268213526245848551512848172788513484625136537273234184183777445655786186321134424524171835438162256826354457566888884143586284826678821423841518114268485764253527478427472412118185632227314553362871724634815771144262817134367252714264351587513826723685722514644767713858728777456635317225651734571573435118825684272613235725333172381817418647756883876464857853783851662632124474762475847444781772727647751387662575146786845521713336228718343487663828663831161814372353776782525526454344422267213487374123845483787288336114532762315676631776153542532842485542661814667442624175288381581121857557172573454558175672682311466782388227428865541217837765767526353362663636872867452845182844375668716848534781313584163834152334225415438815536553136328685427835273775442162337331838857475378554748388255488737586178736434146132636548258647586852842654728588352623537262837374474646775344246118368276145464478528857488573751776362636871885853718315253245273575648183688281242173585576185121681251521215371487624362847151675717636653342382738753617578254413363544848747521512768386878338626576142825374114376226514413434778458347443753342658375333645724331851712156342224618342662821153655783618311272252153871262264245475452857836252437625313236522726162753656347571828521548866148325582464287623624343466353624655372238515466715811746448422576722184551164522112246487315154732812154662223388213723323835877237131477585875713754172144242155536674218457515771855238353535787123418145812458112675521533128581517527665411276345767832318238878616534672681482678477365278747314137413638648727332758344227658127564735356817316473126445216678532672377865315124125356877556176354543186586717266413282523782483544724443721316844351177467326367626721768781252674753568166484232874651516332456833256633468583751722543365172762644376634551435223347662278833684183453877821238543816272644111478435681558268283183661741822836866235781724681881834684776645312172267128574541314368754177524483616415858174274217241528171588551862435441554644565587552321343111814457161435587123538657742748838842417252766244517573327218762633773314242836176712714281167811765282625565364621757777852418185372413666251223865753225423388526624651145254222613681738237146375651434656738815875854844417186338473815378848584656221556436751665622346232757224835557362144771853277617773265655222127737276842231586332658222714512872768553433582735112684734772176234775738148288715534823112876616645324885525452875176454342677348547637255387556751263286154855411361155381226458565782214658266881865111278534177334442564551741884411288212326725835173117288778386325886774165628334244123617583282481635242414883424435753221516645415888781885887346583564521854152656516513288684358576635631736688121446666683637655835564624841553517841371548875274436864138772718563281842546621751424526382468385371132772554681432768588413817232235421542661622717423353323733133235356424255315244446478428677161383815887537622256761318376154771747447782533745282238226582646632232827762623238122811351285835647841774855877746646768587751322273761236721362846371846422221388572665854641812211884533321141815843414545333453457562468574342832878183326528761674532578624766631531767526161747251325373331853613486814572552467216782121786736263753327243188866222334168653475437438211428163684884112676572231161652683366515614164217566458253377124117667215622613536362884878482512365255673553476773878134174781127218437754213447442425478868837358368244331365125337565538182584481875415413671373637846825274581677835445311437416717551774833862621734125135463228645323723166815187281663826215731468456464632331646373362557232738672477556658431237252823436626352411823587286311782854117665362217261125545333862263563816314132817526266658826731245212818813118551234718461711582713618681866438513888512653472553421476134773614868536762111822331837547623584151611376253855147242663284558532387383628811275865783618234757573473742342456123668546428562828834368414326878813866575212411113486437538326877272515685536583512222574264832416236712452671837221175587841757472732164242812788586153824688514386551544782561531283241511337356168133213366125715775826815642148628645848326513672363131364445116577237138778244172141173587287553346158683677746841625174754376267543128453337588452856318486623467471885328277181374521421188113841546778354733826175127133643884625388885374246542154433784781853483383576652326282541571138122467366272547745154728834836418323215584654138615773376636447145166526542152672761214444785351866525371252421516374487873568655174518232433451787347112137181358416185238535522142423685261285713117682344556637566436523618871756636466878322768528761211255742272735284185873711684411276736655784324488847824553811188663187577675671675234681657756788667423856232368488824588362627274733188418585242684258686837356735282688557738185172157311243435612841763355822531782533327657784875132456825864814236134816356445827261537722363753263628324658252644466355488434641868461843435516614448555587138676331121464881652662337846418447677688533883135782131585333867315142782181358748628768863326657333212327123864536521273464146548756887755753375544252558531374751535867553747462473618263252344153351113853761518848535527342724248846213575516186118266882773253744534448868375643238888743735226536661344837283525272765248431253486536581421667866648331374855884324163121745312575578366438827126424782543161237752788132881413252282152368187431616576476536417385486381285648726445283423231658268585565231177383817855745871563532775358133763754216786885142361348745415782144264714218364276317358481166771383641227752868616282111165353178458242673871846522433588135144556576415613454176325245217718734187438616642111318734344783446722362882553731551514845181135373476675542481546317368864144263527255715655766216631587682114136752148671767575725831381117571823737652747353444687624382758527881353516118421578127457581242117734152462473437188844463275455738314157865817677578575511713386786818786377722431357575356556245513552376647877564182627371662382556342623261184413345778712141753556435748418821842138876741833254516157118886572672345131774616236532418884623557688858147174686156356823485411256742753261341852656148484535321865816231254825157468164136335138371118182273458862738247572741678646625731742437512133556342218671422565656788321271443176357833862287453618611325161374161554727817411772417241754782865127158726566612453364111475372741555244867338171464874521254148162382777262775833876188722222778817743668847216151761448336524472366231172562747822633556214323515725811157832481561723411642883272742553816743718557768734681515758512882374524576433466445283368138785623172536748245456166461861558121184747482416652334532335346745524815355255477371741563764455616254685277435364117262218551226513868267872567577152333855864684657361257865331742645532185222286133714662812882255424384773817367257674562661853151276565535428244622236313154831655472532174655126838536587652336845785873147526767431656528657143228676556478235835611168514414423387828466856521742527447585134163834737338577528677232672252535574637261725247775614538325545164587111158673162387642671885212521327384237232151882738888416265364764856775877677727416457762367755741175644518852713424817212646737533216337734112823171751125467787115717287354423421466575672251867517134425857368116631287171264674554585257545542875612218373647763288511362786141311187823357632851567611751142268167446732385267275843688463555528133773878215823174451884228438443371648558627683244831322352753181835742481861844344862267151361428611728423517512818786588322834882644483611461332216435365264634814343361376118786541744361784771372318816614384144175527357313481577177445834144423532453754288827733344746841458322525411587578138324664155761617626265874638318237364631326184752545734256757346161513235514886721381773227858355373616763333511646381513154886225445737226177718418235432581318723813484288676386711421578316248245155262148465255257225715486162376411672224416822411881116764662127243335762164312156243721757155561751117212347444627166252527271866567458271171253656462381667534886632258827843817222146174837836656847511184851773684163553852386677417124226365581514728721821375725684712535754511853842183631228448831788362633435778847227885841731411184333273626372711551754584642322344668812638525642486843877226842175175225144324553817316774478387582771455473814282687136441871436311315551441836615565221377826357355861822664442688376365634155551147215873484358284581731242487517875273572525581858688623832358243632681512162263783662534438411774521542457241421454623635666412851575677283822656674137281516718534163873241116472844361832667322787182173273477342765434661218888467542856864388232672228818785648263324612241651588667667327487415616265845677737462284125562127547832423186868313283665328431351724665832587386226478572522223354327572716386527762731147761255385153284521273658817873465452676758747816834256747382548741875332215183682777258577718471144666457624184332614533171835648163724356652645523666575544125673631256788133342328534788366415375186443325316434157244632373521686436668856618275686231355376343656323827575261438143745368661885637876412624637318378426173173343787417265615445834862268244474451752275755166538623746762878472554643787181654323684441334738172426465775841847324625315788464575322818152755674753374734361635826274776633357348634123151781388676162784671422175453765544244122434561617521625736713834448451381327354215837171756658764625512248645255725523255837824153363184157561627261253743511165888884461724556348464345565648845712347186243777481522258424315755146423237173527546752484781142613155347245164788564721765561411713343724481578413555217755463254255444853827538884474836574766872433728717662521565157463428117821857845618762584786684143121462267128681643762347177277456261376788335388363564142556462675673428152581224147452617414363716728634851533144778155566811882531213615637632171653271541535358346324776326522356374388818242145444782431743845368487358861642876365375358348766612216263887283438124228754786164385877837447687356648524553866482656521152486823573415531536273127748442551347613624244886372583133574648474312373666153481526521574128823121347372174383122741517115567876811438614184115351316714151527275825755362343534234872344182778162557741841884124572365762628633754338881158157562618846217767133523212224888642822873281674553725215134423854245113888663128416877276387273664735784657668571374663412886351638818142724443147522857746532262238684745371374732884664477262474424714112711871168543846464578621762248478264742482663166535464556372786764858615547855665873334138717254541126362233311857777351217623164755278888331885471276763535618184368165855554788876223556624278686283658222386254844888236655584818344852687474537825714441615786386441625523676545626231866413748583562274457762331511387628888458412626632225825175113564133164625544374285686855262485467432813127543832266553666866123823123121542784177733615453161151822281841236384137314528536387378168238858584684585556516232156661244216625285522776143433238852643751472112221387517821831485368642386556448465783654345384527257174718143656313367468815126748624684615562862214522227621161113177517232825683724143422487265263881463365812884154386113838556545553886246332316734244415426647814863547747177437748886485238836323344738283616282257517181151352375735645125742534372651425451685847428582733643272353115322177543141115855831257851356777683216127288342735756342374633567775257863517652846547445725767623387684621456346867422111373124312247228132356124465642636135232323144713835317651834764547627828331371334864611411643163535337327822855453584341815312555785374275442154813336437625747137563646372156424754256525278873415378664846287333625167555421422525582646332152133236142361818122661514234111268483264151246758883544633231246286278574368142681652132144166453641615187168837664864138213747123778155853423378442715332575184142546218146375878161258127614118731221735438826581576585125482165153235375244883627333435674887114476622246316634236471645114711725546737264487711528671281347135651184776826614536185271772381855532668362647152767873632757528762118146716322255828883245586571741614182381513164161844481248288831436265385268675646773866453445558243362878423153342515846351773456688544485382682552653388246473722466765162842254331665348174833768123628521485484561765461548723634853561576726341127332375853786257215833522346345764863135421115523266234155351533136818147227775763245657754714774574288812356813224445332473831184463161263563452713443556441256664676464627633723736658414575752276533181764125154428451777851745487464516577181242275828475168575422738587166287173264213625271472362286861348743161547525718747634851326352743226831688238228873147761453343564257873763784458733366872813738312616683868171158146615483775366217746131617611612143552536264842425786756387435236452325117263412172634333733155617736416833834117867361324528778338831638173173566868151178653376241818877256211813468273245564854855541335653313656371662274361432173176347675617315168256641473357536862635866616371812543647573443138768165743241836787223671182364857464627817652847621185654782346681257627541345174173657744844314386755266317476755277667652271278822145742571865541816748657673342145381425122336434768742271214375812523132835334422886214282221476588518467882138237545535424422742487835484554447888222451762546752622757313427273262116154815556477654452481775282358635123347683567571628416883187157331534184346712741377664143558348862431522882643771626177181524577681413618573726857325135684218847688525473322117586768144135176855814422454352117455355468864638825337243245422757483638283535174674184428531726525486163435131168478877731863685841256456651433371775635483657723484711573586722515238377511457467458214423762538213116864678472387727226263423341351124448176376654446163175321442524527483771253664347646874685713865372651475442535466662731877361517644657218162378623852651587347268345232614812571765122136467844875455525176834627378183488884477583122631884422711775135525631478462381386417578367537651838834842672727427345778383165754756812678736568154647547441836367765831573318722246186412561817645815154352333556733574381487353423825851241163445661781515332274543717573578881533218751443267387565823877536651666527563551171484883357111546211432355671475422527724585615822865216744478182258687156287676871566841386365147616478784363837855646473116662448786646261224628844672677315426482165458541828513846725353464164376588443212162333114316543121114764765773886788166216837781462854187265432112677464734611357423528313555733817415587857881488621347313872733644283555121751682623453417657522582523135111768617831331763522741518863448234782674674421778854671377583273552786762274822474528644213286423387842728227856427343658677171115765117825722231835767782318816251751223762772441837414581382563648662628584748812328448434382653586468485866727625551113548414631473422878327751416176437337412158457622351135163671171764372486133581426285413646422215313522382217856566213247566386824345264855741464752163588234523816421823466211256851228738841247571678885313487681728458343167835651328746755384433377878353125647371332616312755653247248441775523615473114346728711224268243464485541811112641331312735428653783156124224358477128362814545782786415876872881788735672633872252567136321528356215434614813778833785134253788475128446813782471621881315274188681312853342476228227215431518444264361652761578161547781442373481533555643461343867646472375682344366747144734232162426525771164282872656715338112328861227235342441673854584164865868842431655866614818435712888272673885167322883388382442637346222462544136226422441352234135444347117572811222323158348412142146744362457566668672575472346552812337254667415171237373527848638831725882683386871465784577427172223318248235838676322366277655847865756361521477766611338712455848181687715454282523552148241412311475736467454316228433844154372187336543475672414814815471578744547217254422327328616222368821464754476777515443421743136637435871124663123367675765638317211315167231413431888472815543364161667281217552212725876532564877645431247188271852458772585658521633447224232284111874743177136261525133153342442181541448158633654754258458311416221345746461615666243755772438142232475283231416222256635844458348474184873134442567387753384827566633782264515467257144841388725485762574585237624574575372253362825768286426357363787325537562433566586244538366426225668273422678114785847842273584137656855283614258644587476613226157644731287273253278127458666133863143168457648664642276621134321375557211844526571765133145534533684521675186452134317627332685662678744423658538868631224358573452343644126661533515334438177374125361742115138176665167673512511116142857231245463146514554422288814666578368876741467831848757725752475123166642458727822764643774838246143775881778361526556435585526231215712558483214738248418121643461616753417625768758761348373336357141847526184646383827756855577147213854531664381382644138284888771163133758285274154526243542476154133318885423475847557763777488452772461828824217568453482746773837772848412883351863362453737132775636577733135732635541731684447112761221574653583143235362316224357178187161131344637834252544145524571387416417541148523446727468427527834342185716735168411217255867331464344581263641671462374547347854385314437752486244338371775567683284316178178684784738726464831328658134832862852132828623163685666266338223477277165846811261416281423432438224882582848163718277236245375884364178844711677686278714112687731215288271855672481461447266156667357232833182341344175712266742643136828285128721828456574335288453742432111672644376844146253765726856636682836164335436723685267431213547412164216446127887272134612655512478758211818664283352433515722158815433428856435632575742884286246486315311821574413653843868343153378776567683633567853828751226152148662487767635581773568377553664211456883666275861886522367611632743538512781885184445548111771824844752731836442476811567352321615761841184635848246863488621757834624481721164684352361787833436455681643621275667714484347686112267333515338856413752876623173318743761888745275536732284113881841826513553677832674851867234727865333247523372248282384676155558148364722228381121725373685827823728866275774756517183163661533722367673227661121581713746888737634288527155124761456712486171543852561445527182684474683367827818733767185581661127553548142748427762362727855864485741422285644586724883387741886237268188638688436476422766523335123838458487817356655812361684283285732746317118475876774441831728318241867647386541387348382164572285348174511262856751466664732556747725863851753518645877427278554412688151633188621728627512464464631245328374346137516326533546611631838526122322767411228274752581671242813745538465257163125361387418361644717622836713724117146544462515173425524265223374274548853213467726834427548746852363867758283631331733574267561467652543228173273255274557172237688528812776785277782727636755582241281177763847327518143685854144264768315616448866567417681115272564455633443188423363132288316238665715755622663588867184682314832528151333468727412871456586151818872614821813411588382526382853517665767834864581586358155321662117675445838157715517213335458565144358747613281611482422557472142266117548554672482288452716171314675481152276423243257144613738883218214123452743127537188842447468458837764655837771571542486838772434372443843681425138265535228358656582556782833235728363441176857577733128822232414487313421612538823885873653813818617628676511567556121473471466417768614134181813324138366121727215743246322113432482485716545432623837338445745585612387642785166436751311544281331168881268373675431137752867862874564541575422154234578763366224567688727158263243671324656338483823781356361282138752323125662853848175463257332823115374547713164138573485887171152558628481466861475781371755861683325362814367326552657348883657851247845462261526447272732184858644484531724733277853836643115665175435277322615162152623583756361574267581437134738158377351654722784654486866356823727351485764658282317184326178167761778166118724825721821527122768743726286164266344435457855713353615322877165685745451723488335613834188515145336732728728652833273352218471613386145176853823747133824467518534214673164435615168432475335744362718623135366571223331551645238316377357754213232534346426611542235656512638658468514242713836626788221183125663523534772742414753774481762137356378434627735221258314352252654473123444334722847565661753637166164828123512762278643488627585758357365376168254736162624561626358743442644368748423374417548241725121784322863775111456217717876558244666458317527531827387283718733756268111857471462317786177627114322338474228833131811377726577125755683762465737885881467286657843478736178328715864876766133833847731215636615712351817327517552441222684132512434515183423275171283837142212123468547871864443523425326243315358273667422765787118347552852474362314146781468738421272866772227117278757865544556265463111838481874731627737354666328281871586575657786241675148441456251318637251148354387588518325836134184478541262511836577528768577646651625333548543367735313226877354172515725456444736456348614185511761821535361653864355875385523565357326512536431522227414665828524822668733242814775233588787618712145887888148524717166623183161745442831712424865338181316673737167737577726263486863684337662165857425364651187454723756678856457866583137744546825111345212524121646641281245717365111287148442275716535616256654232851654365474662124272867634614868882137635712861184371718871364733815778326223283681667326441588781464166674184133665517228768745552865543121123388545436873855411364735716575412133565363336764552111387825253355521726756488555636453224641863584276857267224754158162233881228334686423332374658666586773564214564325325154588463787465788718336625844258277722161724151841561813454766454833131727874874137628132275821124486165823827476255758546135714243526668661264788432886358518821747275657665722725121643384852643221685537726888261342347313574785732144526223131734855776782261421585127445625687781464743836665684765315767446873886467431284631726147382112411468112845524654642116742523768715473634753837352538714635522568723746238433355277255228776514185431753762667752337756332183467112653616873434557143343547485863685665438433787353383317154316273621358853217144831351766263572858645337528128473178253541888651622745653552561577561824871545564754871313536282158617215765183165563351314131282663541184653661233228846425235317628738254527216288171382812242171633255664252861745771642752626778714337453546371435418382233718675685437457246386716432544525451635375622483722462672835154386338853282342621427382454651776476442457562688742231372527282511224157724853733526352563388241252457215281241512784151146866658882462882712727117263844532816863166335112384261644137558345632615348428655638414867688584254125658512233713348733272211323685357874687845876726244124243423655513578474537321814116277481432873811824174816653731245855187853751822181456723715825422671244236228487214773633822433367442454153567478434686655765782583438531886482311341622357737656881441218545736767545432375111366427137687332675415147863443176424237864784538141655218143122728238685732884868831222183414276266645378475563533641751161275562743462178343566437573656444882745158864557774234852874527173766143645152446528614713862641584385365431371813861132124844814111536176224315268242114487555126668174652743165156254218635334861575857743145342666184136256524362837617573267332617261586227352212873716724324485762827218631852215155714836162558426747327468556762818462668882483274512158861624525457332771181124145247712843851566185371141117222413744814811127323822622783622552743814114166518861648587858715656147415823541183737686547235681181812184325184447263527136665672747144145352682178432742415141721672156352227385215176733417155221383687566316886165645755551748845314132458228535266642884844534125287141862482817247414467732381418824617756614435845448332427138176247588836146536772711628522186716363755558871537475426438248786228515737472442341782111625214783743823461672766416326385525865315314547665823534863367725173261781822786145868165352141647664624423362863468363557362884731258317634487731636148842747222816714366325255285518251434313411751277575757847564271238351357333426742127872438824536532334654655816224873735326676316218272517718527875328547373621181815236524136731432176465743418216471117122612724623168321551247586566177855286635848566583674234751157558268417182818565513125452434785768321275476811436485111724811577528237643148152458838112162226837547178888865716681657764555317738337237271461236263816832563115685584813128688463633126271146626735383552231747171473786717545888227541664447756864841337147647356761817118884276332362246616418676743244133227842175358575386251535858158146832718812751458642764826523134776155655487418174231332842854343615261426737735725744648712835816471233812675864525658218318888314826827253355764338851556443143515783317543726226712427268448358745265176135616454386778321845515278474156535831331617315387724132146442761364464132552257581811264825163216313773845751671361157446521816517586756832856853658211538521347654118687581256213228842711581436736363733845365354847785742554287535824775378514885461122776366776845421627678745888156312837363166365314267742146828648413346228546277272153254525551511482128174458774878863334856816523485481513287553541478535272841358485216422874287243782171862856565285514782227617574752548682358434684234112542416752113633467377726711267133363655835286148847775265753656854825418185618351187675851836572561227686333855832768353142758626714574866858452337334534371328658173568725631851453463817538484413635617741833547575775515255553525153846586852771154574288422473675845362157215817333458867115161332867161552657242554151831244366124887524455261185486488268313815152723757343852212726434431737884263118843245156817257381441838343353224215427118581136261734735657638227655456172175768542884258823514368872271455612556655247636886184648834541112357688813643418727778732383813788238725251452138426366256553513523114376188882741247864286546565762868578135325111863882356818274341885518182668432722643813887322427674652487331578444642711248152835157216616734677728588371382155527117678423857438865583628731153754682343388618655722774433545876326217233211636877253216537623434644264241224777384622835714616147254375454413333451354481762536858473688248547471576533626538232646125835456854128442473133615578247417643318476386544427745318874434285426162361122568814241218512637346518745554361332312438141323723264127661613713544453355153344327621254235262536662664268561682551376665882224477352647354331246231767163344458871124841148134354412724747854448556642423435432777136471863826543224456455867753322831676848683521133668835777116365844648268237341664254412268866151581127532332155177487312268562281312762562747453262788175588627745687551634436423288163223255536755511371784213428835354338753535756782842857351753454874838743428764837733525312223667762723225613265644863581428456238121383428446816164181782717187188184146676346121285245422731386265665131631288218433632781821216731131613783711351621458556567826876854844871825844186552375673442213384772741245214761655238243133468744685611237324171561482412414485435186778571585322132277828425167544328747513135837622524166561181188834381351554173244647872647746411715847813167183224877722586837666231187114861788357638854654222511511176274733727587284635123861687665471463622271186135284281356688337842823116763445155141145412312715586414281215667278853254384431181416873683265543445751751718877528374243236772782364425116151528126417726562342245546754461228236577131773673486122484711538147713626352588835336446836546252147876317466151571385554878583454322852755256322412834427156388422573458874663521473782686116545763615661714755718747615175445878855473261545773736314723853222116625637653337272812478342663774242315242242568636532266314347658856252135787731274482282226858512286388545437426852777551223773863368324723365832715567351584581586525557842144772114711436583642168272636746885182573283842273345264187677367747712121372288184676676152585448728687786663572616144646512125184863418765184762165216757135335787745628378452564682444726448588468646535177282367517871332381786457272355774671487356875172151463857653237315115736285783816633625441434262472532341881847577545251214387132355276843647585826438225324134338517287452877161471312731843343384673288477351888835768861862251535545243648638387872738525612461182523576156673171338242422335834245161765241454174168871761863444652615828621135218113741746742314244682334114522222413586272178488425657758766888716155448544158612334278623427167633877588812847772265717126733666651271177843681724154835215542774882666156425164448542228671537176821532861544858828212646788564855577762785382388368444173646182355131378568354377317676611376212721714432467513338264744573763142788842148558588562526141136187234734115852426134283566276573465748848411528872817332558824222763654281323262168852124725233178825331438456233278157436521884575175728731154162137647351825464647336371475468642213837681317373212818545242125882282152647546437624648754522721885267833776238557182664186764534221871868647311728673142335788771878862586187766784115848525418366238455625218758335531178586228418411673881775467127635352661572233366656312825423256458623471561483228856617246532864485331456216528174742533255118544274888528337845126376662842483862462181623474675171643516343641543342111325453662613628354574337238136738374347275456178416717382885648563617136532336744571128725341764232541861664444463562251454481571341487461565123346258211421244265825732775177172664382313124511113245181688414342467567566886183877283358715388233856414168475644254151117534224218756824737463845156157477878386878332721367233747221865424123717442274327137472888856567678836466385633113847634688823477452655475524835876626153654111812774383754824218462174848226724888428361633713656424725437775372378716856236258711851561857253341387681378655543315328324746147777626312377482488532434524838613444745138756685625438786878526857143516252886425168654328861426237158441538842227178272174726216827452561535346212738816175412754515738842175764846416822162317464814867673328674134323525356753354311274476124536634873525752273274888417725245517552811285361557624355184327735251427133656772324746115234674268772681153611588673341551675662641428572727577252243365134581735733457581155736657144654611688743747667461824355261382353388371665242647346743128645871376825847568683234877771441815644432686448478668736522255326586516766277125753635154348577287554846655433665645851344188775341642473582868488581635735324747578684643715615665785367566847465111462752388835162675232733231442585737636281417662244124346187723356188418555887163262666173724256535276688357135153226571763755527116472317671375264423556743351232435655431135312458615146172251864536738718145782737443641823828168648381265751544444628466738432363213771332482536165528352283138418784587617867334583428318528266723333661533836472484322834727486478654366351165214313216674184437464461283751147577517233328658552587374631645181827412748424336565188563586713764615458386436153323875282778735853418818318161363356576432362556564454155558555852315517415527364626772837883445342783343784582558213416263214717877817257366138626157674572822476763645462641313815444467548477134185518463161132563527442475757757477322685787642664427223787641277515444871422678681527784337446764417582513767646467324344257434842357587862716218611232524864154271818763148326886616528875477713564411421323172458227775324762727238766565573485116774472535613273238583127136543727336276626642825562834646887348278553285555744461351384771515238175161323867372817143281347451135347461734223428771268254116726156861543165864558635622788267743235281553721872425156815428364273768532774538662846387846538553811758846856734675414765227161431516457853543667217354443351868128432727747675452384437733438417311288141427164868328283142678478215768827684271218277188836742468155647476562372257633526862125871222155472516488252511884112561377151357477273118728816873218284566583446825283244783186414184551816226518184417557456214663687475157617327665276633318446612248755525157482515367265711141365246366837476314782375866846663354651324137754314243615888333665281732845686277257485152675127237371271346122547153538314765685474282836515626223432168425682318625875335764252162368267446563235788333576882217414127733248568747647585345432862131878784321252732586172284177841135672114738678735513723836637482858736221774736387336228558484556248527215645444764485151816138728462288423864452767163741548276234148882885386543821381825831623627324268618121422212318753875856454762718322458231356313367453715842288231833855852358585317357548437346411385852786623828624168113713251381853637165853885317315256267364858788663755254484772413671216518485122317483837126223452278436455523621468453231443758564527228372323431463355416442164433212115847276381226733164832861357137623147736855217272565768554354276256516858561177811156117211578712522326331845486417767675414881253854377458587314677526624223237431528461828428874613174485675324846778842588277325584681837426521215151868884473847166151553824681313861525654524321133658841111186181612874336428237553454234733518678576876328717631666155248418834872448667355677722187613528228674427242677243134841761637316744352766831425635725463212831321645578773824253483638155828846677236224173265214174148387282728313831485477868163544264878232763652567173868446481867862845637681454322215128765422225268312268824415333485148581478883583726675776125332535254868767134175721358656258473685272638237633874816763558556423112264784264452523216523145456454642777711323265463774685281642162811386428716443681766383823231177127726616117867624811812382818726658811667552883154644864761622174174722534383618661737822874258364715565815835418583344148535452731176544134372331235646588785644648164146445538357523242277443723776372636288672543763652283474437226171315844164347473212415525416214732835132433337557415633264544134283383546438352668232225661648735264575737454631511318866517281363682364226275383183151466253771258853164657854364668476188847654558453884381736861518875778645666311566115745433288777332886453781426173457867786442264458665621763247474847784247332345327551683516322425262375275428522463482442641858245863552258721553753184848181815468434211252814281586851458527624264652334225544261726568276528642267116488611133775237756518178366733448128183441651412258663368818851832747752474235321344671342843186346127836358856672141744535634838637487738624273354187526671271643257531573186888888411276864815876746762761235125666442137227376157614847561248365121271568186687268624476252288756545582512746651333347164278665478615555316143263166764858885241712454654355233546881876735146234466482527227232722816251465184281716565386718857745432467544851642385784262734515127825448845665762327442225543122813157617862528422352574214126374355636521342374126244322634128444626438138357336841177327428331687181811885425678676227826858828735585542754322856675276532431161585746182274176724318153862678717458254143241783823784252138815422484817878157856713378472148381486756342216618346674588481381146677178281556562736385882822622851757374436643533228777641718155742275375126176455343217854831411337833282818515215233878162127227611681876417188317666264172864342472166726583224856674648815836241847525854363367183256154356531632184355683625282517871312825675855177626585725133521516618844511615446763351524472583361832472423554311243352315225118282816217361651471463568272388365265786383158166721236224851847462127646618526814874385787478886164715566187675743768228864854252512235735364425513421416568852723685245733775435346154717463551771111684643743846358481237288247845171114175348675622415721744315763871178574527651882141174522267223222776817641435388367435527111483366634267276616314644362743857775214521318646366417435626662456647686786467164765575734487588833418157482284442586748274614514841522452277672447232126577615665427631554373237121287816443521223685617146156834523411624173614131282162374147118426258656584166783856752356133144668332682665144115782173386651786736652538138146682451786453243572227461141641376232311113384358441354854525324843741542546162573367361788481582745716661334353571123163878684778238753883187313312377263212686518253122327244442371114124378886572783635216621545525533127177682571821486125876438588851624184348111621488176721475831568177568446227866845573327767534448885511238835325774712358163584471612434387525161427343346215342312451846384812628453677164688726137773428868731665121434868457732318526124884167338177444486368416127631736211511227823168656563865615444732783711313325282525717447583136225263264112627565123756372675114321517114876631882274723657354673413814457686476382748612213542887255382131765212155883214457354248665548383723674774261276667258783347847236254648653741124588278571864473168233265111277247252676373428475415377588367187564748476587436533747686221888756846752111513763216846355355712552786114655637128713215432628734624182456136538176156618567422571688715267527435642318836767883158618223665465635534526711661635585274546751423643185472527577214432456242241264472675736682268677824244125143247325888335522475347362764144365167364314425631325752116127221727352653612844136618571747568357241376343447446774432466831853646774268568871367727625174166311155542288747842628547146451257863476683374637716427233744531326632161385437775527346287641368882115785115573715588824645377237144681751376656726417848476361771816163761483174332275683471154252427482142415448633713716513584716343443354815435725662423477838228234458526758387765616122521113875337858532252114563734653658557757653372284311424617268115161756677876783283341677284172574366635588235152352171766864282685368424187618711118653358445662217626732253218876553754488625813472131346234732474465722481142885188274566856714817186336381186612581614861556717623313513418176315836433154712238531786787656354526756768328232155711546423627668452735633313225415221738781567271821251581878426687771356474857651675382488117777623657152257828654883618326254623554161273644515852837865552573545842636881827214374732453522532183755514365183586571475743653852713361457564571347186336582854635137234586154155421744461325485865478518271372584664172264421626232243121755164147522388741418232452424586664867335555511347231862264631366654174316853586366163386456443274353374176332638346332144788666262211675815248648178353682666853262838585178554557571858773177415265125688355672236778767662578686867144168616486775657182815872568143456187436274656232823527742326632111741258381518717726562688867237823618387145883435282827821614553833428821575538624423315342764254166855671231212554841175852343645812576267274118563347731534565263176713282618325348188113568643151617134884723344828831746772684734333623661182453342136465242674724273148228355356556754174253332718121132634855362154133228547388362841273565762663243464375721716517685628286168174336735814154422241628387882515834366734241377263811841481256726341114288733641627712717534312636713272162113774651782654645815372661547358546667754886421827114332355778643121453847581347258548474153883782516517336457848414352723663157728265867661255113535376614576454177574112134341351778228277721827642743623123148283665383732781364215374542526133461515555415447558786212453733746587121351864636672188722264217857466463561511847744732824415382745253565386856431411368728125856272215785181684542248186614261885675321431466577363273511187683851453213825564412385624373152445256467668373421326557876887783815623485184413415151427114881887561476673784184366327787854548362868344523588626327153528661563731462878844826514176417862885345177746717386524673383776645746424215585172318767166342663357888176315721841884482683868752227736554712753553152737175661653442784364221562477337216371145451345663771487643265155381381816511263227254687122276522252328668683664286536138727265452388256282425541364866555868574313335621438141166533775447886387337755467463155668624257114744263525263576572224686777388633721768472646362244323852777627618446382523228344372647533165532446765177411382436561488665825166713127525325265738537282453665326684556158372424347254315372821258664141844786231616614348181272156252812381673414775366243851732454215411565515671863557841573734315452267624888673518468127476717153276527674318661263272678368132125663212342278863751128842632483166457278374866222821472344554557383677325368151813156257664721526554472628584375286817745274885551655726443861176474334553842557228761222477253717211655856768581275356484816353274215462745665488821331486128486474131865432642238358867661626865447433675711621553558383154327727432685875817563885484655777366118247433884757716325771168753161855484784735576827453256783618761111558838556745656662317575232332374846758343774447377713336258154455711685641754658248548725437561127287332126448163674656768623625411731847353225281623811832861111751852453445862681182142887115752743645188353127233884784551286876322721425334217274558625784188772538662861272858824852132587275818842645728515217553763688416664337517148116226643676155866341663273854821547813877653226521554562566835158826765616687321145418352754336884677717567165148351285437552751324262625127682686613815732823511686525134864733468467841688626682144624111271187134484234186433344375756562341121266678158783633231613128251822637483418355224546674176617361544174332333442872541127345272215311311418444532783761312876114385433173177142887771527715273523736141417278168454512858567536811271827416414825343545582432127715414354151153686526276178757385545676173755174443136485847443867243857834422524736533734278245161322722233475744257116575415812614775165814254231646485536183354418665233324646411748458167161111867282173523254834841714311321474868177188471471542322323442258346251631238846661788131832117132434553346232517554253843224814743868383573431855171362371641782148664883343387785583437558647723476573466763523248272184557115424767122555726746635482854465163146825141583864683743148473648651443824643618645131481115348322422471742123646856863663317886687836177245271863248426413853533123486272586354564522833338387561416214824648663225378317787654452242234664231528756344234515657832755878313134615436521577758553714183881763841271782851332357244614561646512325312253883278588151124747568366566688174463123188616178583288746273757354556536183767313623263557783535652114321664164483325347236451182888837681267526825458262574353443412862878716487113686754878781616884787338145523472234328865846315672275281612821733822518268781135343528255127716668828433173645246287774485763548117627125381475161848455638874851323231426562647748441814868824756665727231385748348416863435711244723515382766367328665125366172531741171354687488363641747543365125634435585332335268351764167276725758414647737351882638733521862544155526868615461534274543388251665827525453686726744884224746761158826252137468623718282362528635583868277582568546436221443115235422886453268721468757712663842481358652174656361245882265168878571226331753271262332324722775341453652737723888133854413277772824251481772162641633633152418386678478456338411268443728638254888746473162672785446734386718868823566444677557662342446784687541414714743685532433577853473814644182275552615815233625134821185562388815762153555577147216325537664634772174415664245826557767614674232836447511634226757385133211628573286854627646177727171312831878817364782565264622426514417552453875355577764835774515152417618514716134812162341666833148511231627381477344465217752735653676425844857688732823765548715243454555842487837238265736624838245387558467366181626881537127612812664511817614335621441227175265887328115543846125751577476868525326834245541222416152866253772473743357578561616128815527465618181873731647477155145214151277743742282226862446112337413422375656565357624764235364215224822247812414266321733836426547645751227157442264224267728441714156267848384567555163452155113128413786736741665343374456654136566852582873841434368464126221774136885174165178472125586315151434288467762165573782126744318138417444881184353687518341642344781385372151483428278261315231275315541646485784422125215328144545711834671731368241752381885426166656785874667682464568637846513766255618746265418443466861677635846475128645843586744131755535721534636551725235876188765484173685255827668358547726711846124484878167831435446228568351867476461156546586281578515137182711247823663138625444384814771132123514437437366762812167213375454364776336231776833746557543757285531863373331624684426772654563686781734136758835437673554117347674633713477132642221175572165532864844758663514725438846754114267332717472612243373346538631223846787332463543572463735715477748128742658564837745225485611244146187828476445326588115365376381666128156311518337215683772427271883465666434353733462321463857514851136366617152155286818882623167761217774646542131431186257435828838377447158868668737224634725675673274681553526461778212651887163152526542554351145833658728333544356176342477248432767451878813438217418614227237365716762762722483848871312724352718283341587347318257254146277138844375814744364751373656472871745841417577161255771255563627318561621175842824512674736768666234352366751628176314454247764486728146387461174672227312177237575551286614617862154852126545414156735212248833247388162736473447777315228278461881864657452466842747338844551241787268172227418571474147451275252658356445875421525575182225318464365668224463574148648551282115417675556111838483134876613863264837254762831471644748425378655655562625468523357337341764648872534415153562817637532378348317437574245213188733582478124822455228213773183645112325826178222388316554834887555356844342261818536257651721366762225646833681548865646477522714186327171141665657783241168855424656525586353488365286863828452783242361113142845262864856758527833231816317262654542843288151811781576277881736342112426838681445184677444536827637831331265771476455166488672451314837822588316528226456434271267362723878865336227854267642465262844848486125716668676221354531734887544742483255234412524567657623277568727711181242453721343125443766717284383824125317138316412484235524121117426626276173734671181552633434842621148626111234731752634137228151152583361873156118272352734638711561866831833314287133216266627745537782752777887666673156737377732327163257644471728132764383243162477568341457531118286676651637772538328364784585571228572524882221648673722377436517163275354433217842284122532378772171315625116487676755627712477652472121382847376653731371538382438312137377785457316142284781818546455241138342148453538628665338872263862583363317667336763313166743241185333653286626384481386177452151654526512373677177123431233117144263438534583461738238128328781277122145512427287772653542532628537313523634122486552513735854473374233262633572714562815567622111133355288514475748146353734182181186612328366522433225284584463538766188885344256445654272534577261731775121436641376485225343151748587188118471564813182525581572531148621657371662646768135153373386854881327252883648353737753142417867865477677548574536117328551116561127545117832884584183654735272254625373666865381461743275461686657753221723128265716182338364186472711447448363548828158855422161716852686388524523235181333485276837114712763885767466165322535828785845188474862367675773143681571245444357742544413586516736872665768815645511117834651434778855433121562777575445521521658551714723745634478684242361146862858136176345351328411214314561453833531822457586284325313638432635144746153418234226444673336468671251525866446867218344577285758742788445771473761485851745127652412422681615652617883547745662878621876616743673468713373751614573661187777746681541868821652121354151517472157172645334488616342324465221172551421554854872523424757848624768567238635673415746788654375437375778648276534765252186475637524182632558377355836146754884445425348481178821124725257326637375461171277646428416171712272818523522616237578436785746654751513745665378133635372825552846154817565668648618243135642713278375733866536457177387823764177575255222772587883787251536532878515185863282187336752864574478415674272587363263744142166412428176211321753268421872687145746723438532324387318164214815286547777711688135526223631182327842426283833432154362312372111854612472675685856171872175386878158357282356722586375478177342244768244471658867385511468311484867483881663536166324461857816153863852885827625153458232887564557518418861732814346825125847163734762657717687628427138231835877164746376645524136815585385754521512281562121581871548665226668635524362441111268778743844612241783326432448225111652845175785875714514624646814878231387877532772718372713163537411437835647873663362548452714524357147378236271566332263321472874455871761277332154777776782678784848885613186382445881578624353344314874274821652342465383438431852325414882634864161366611548582733863437312654736553331881821154157461887633626478462467568641746543318263512755653511343877158674624336647488535883537522886732813833667264136676645414314156844334366674253782266673811375665655282466572832144472763452584261648853311418378727161113268585336373514321258831387485478417646445313485571171216526752662135731136376785513371112484521631373846662126247463243378331411417463716514328133846344274872182434464632253633127328416815164773371451535817816627258855153111115252225465864585421173645855666852148253448765167772146588733424285211455112318753836373352561688271383453582266468784276111168184683847864271486163247757535532556521126482411724638471843262327646448145856538158877868385574157788463627477874737385784358734261223175883476831636816418352578256562132176736565356854558614336643553656818356747214651387677343387231881823266176523647175876213636423561787583724745553741437766125443537847385461685867677252763167376276576278747212548352127222821385158337323233857851667571438567633663485675661435268186731653526548888123356166383312875521848284258137854631361386552773566483514276873143238765176855213558561174752753133625283578168182845524188844714663352628233232883455522175223681832184613683857363422635227277261446474453345232271141632545323427633167112582428538218823551863433741357576335845836738681444457718432255577778432624551365621282134721435823856725846864122832112283715316358612785558661754631748186483285155742167835671641731411146335788173375145373454434265246565225188124687226237631744137482173578556676565757582373686536631665281855573265684523882522742577183245474386745387674412563421836227755775565165534542467626418787548237472158518633861313621388124116442626264116151257238265764235576627482713275812784416181574633311211457376774853168465473822758848675561757221177121565537721664348455547155764243866228866584625531775642735316583725663432511133227643532623333621857887614724782533855783236165231526157235512735136215285887177215462282413656735243763137543338866155313247581723265165826748713468686571415276283461838321786214731487117633118445118646683313644683264684114548226687456354388635642277258611382151456287386358732616132857886258865382136723463281718165461253251458358116824843531587141733225261766334186151411261842835317581564863372576385472163333433273836423626572317425388622522848748247121474362281428486348413154835746582685574536132623631635738371715835183513823785157272452886666236435456647873184863678867212484234661811468665233416851771631748263833566214674684386444274254767262485713272517614324432827885717826417772513331362785143733321768425861277272225414515887781536275448427845227334755311786421784438142742421753385486272734411533434364173157254684312541588542551657235412823148548461536457271346155665533537458185215521337433785837577817443323811152252561511614558848741162132736828745885636242142525588718578336272446121634488556726563136126715546344367714341188442654123714157487785336661368861242324611163417386831253886574354486853521862767421215512326643287748212755532458161631428284161525483378748674382321133122475546656675335261685424587588345858681168288772741448868425128512142214631617558513261718317827138741873111566483728586183775355811564865532331528235814373474175637285755878716636226612551134287124358524184456175713565637124582836848847484757118862435214533422276177573538488185235422744784112376182454864833226658581178478314873185372644626477847815558246542521246326477184554325566282813164778276732617653251676183341227573281564611476458437784288717565744887168273528537827416874611282652565174143656257685173454241416538214267411126583687648754812231217525165744553437278855842231821668753136458468857743844124715838524875536234228511584163253723765831188763752727577551863751284477453411476537473747815771865461226526252775371562422816511247835587811155584341452513763745547254642656373664318551543835158872146278863731331284844314471474547863728717732526817115554657173538722457341188756364828352126478337133866643328822411145257583583366628183472874225238521165472327171155184242631251667465161212616472877112835826654411617618536374568848238681156416244671244862885878463417214721235568373446646882518415326618478512541885635871742353875622351872133783122271361415464512484273453322324433435573288248188524426627746886288454731624681347776227683382672323463442571311255776643543426315552565421152234472213566425643867282431442335673451677471622128537367378513777721857673445516238653282228256545532468671217521455462654568821248343821616428461677848875634658253522277881413572833731151585122163277646476731534874671638317114188763112452412468537567254864134577687588781547516823335782382321178537567338646437467816782134117667282534517727622422757637118563348112538826457315247822782454648555478841352778184885642476827441175548334517416766186244586411224765318458216858358878118656347722418855542313888743554225728616517411554451748384628637811746284682754788861517138667258711285665417887542668138655577427247772433278641816471355811628333617826785738786135267467116831817455142285764577652267837387855417563752134158532617467817484541317353123538577347255815452763813344646668584334241717148386547467513261731233353111761418221667587522652344276276231371818862682248165211527243535554311716143236234311363253463684185263566756238568613675688557136524867228742465112136565427828371734256116153268463188387781334167551732437421124333833668677775636478628131733332272255683547626425384866626845734556233176724556153426777173533687411665156568342253832786655134842668771237733857847776258638724842588528412363234522384866825116756427325258242581486888351732414115544726631551386853778837637245368727556323818611158542425385538271885324225285257723552741311825515214236612837668632716516357825132535715655132665813523858411621838421643252438528742744354133275284767141354722766657184283177667711375471468625446823888313778527623851684553767555414415678332763155272344521342853183532532417478887688157757814818868673471328875444856682282558212271527226162376467117224145866284713384667885243643232546734428755785252822233417427642332448385861153325247455783535464568518652737268641255315467862188525187341264714471171324772847518627253835872431415237212366273625536436825264775454774677383364787211718182246673631888615838128718486452365811273333888553552183647144277464552475442483425684525381474732346452616423461888157357485565688113843572584554165861311824181662863887246282665232358122136214161355141665533222327221328115213837583238687626827488437117688877787622357778476376886484353756386634851337243571331868855316633115552582175341433181682873555823168284183533346525281478741183316286466685626368587543224824722517744413745472187523711388341512853411744852757618588385331146742282243337271852877527246222816773656886714866734375166445515371545742487545834823385831572678333877783647716318237781815163513862341672152742362641411864332678721454631862718541571276625444373134517252432873811838356817116121531823125821216361762233814512651352564752578366851264431482627423346638546568862144187116366667688332282528122273642522845277157542437651362285431673534653534475335251774118342375686232171585678384441746461575741423632447826553687648376111574336651582484148375141845252371421785452687158857552326448646448434676542447333155146387328134576614364218518721175424843716231562614182143581618217318686871186864373247284354845376312115625462518781321612786184432583265768635375316844281511618858345573442148561861451126287241172338231415438135737846325146714814824634236136326266768168656746715377652432131343188153185335126641223823285736746718765318821242853822282772555716784825773814251258168223468656115483647647121785618572884456666863347668577224784428567174651114185862476817354383255121555366643348156647233363284783828143477617524855747272111551812573821657275372755338516337838243232267882521362552573815615388518776372511243165333271727146663522856664757652342668422273441418281834818472673728757666871637524667265724878261725371547427248376251742781674745131185514137856348323468247682885112552661533727326633554173263438252134146175426786122525518723317512862341783268741668226258188845643846833328781837558332242683864757526527215367123613883753126413232873481886755686175437336876868133163267444174388482834538372784282265125174278188787826515681276814463177255232711268621756842533646821346538766581458245588728684346176748423742584574631323252356862325824267433442524543838754417388888125538561682753622386414233883751313837886738616736243566556488586558315657625115721233585712662436334518132547776561825186368467762722722645231847518214447145883172234157677738588171531412581584674178514177817763535635552511668743484718358146416535771812645328658145177653158378834685465867831514677511572226111548773175765883861577245457234757483412145531414223833244827118528855731841187528778113265143614266718511371138576453778144121434774382431283152364622326627437766816225234286183432654883442386554865444531831738165152812212466851482524613383358452658748686877884645762217284746112656622826675126314571316372878222574733116678118157257783686378436461676122123135511356585328832565211527788118355152676778767672863832472457878274428766328277342314243844743737835713244158554681774778351213855516526883525552618777461486453571833688657378448186731541275211314263714533533143483556332523514187177516421434371615136374645145428238867576614744144763886567618633375733511654768242532847678627623283524678726646556747326758622547868113682836658131537314743614166667834223558132172578153881386158528811333235111867731238765242111661753773344431724883736152238885147125425728786753216817731386486287436127654121311852742561878515245714666777764741621744783454664325643427785348317477837841324725181488778168511125875361458411115725668266236815553286783648711448526511221571235222711641427223174434423472552238375128757661847187238473388178666278725688373253665571516274142735427844778214137386854532143735166522851536841735137482685845147416368823673356558164231484687145433324553475217615235234561161324516652616776627746826364147675215467245781253616118413464247427665555745837254554264117132844611833516685282624181218122813443235453783118276356146814712125136542522823586287788241286457652372444212232747383267284588425354555555767628445732357674636737871445183551265657851437857241635741425472488532436245617188263754485643848513323634354764751616123683657567511748362455487558867744215623478223726158617534227612682351267281263544475817126744124745863452545418827417875466737878543474318745443751648852545181814858348831434428542446656863834125621318323465271331563858228677246864816228637437474476468837428213581873526358664218825475726415652628867554237228126335873323785557224141451873761283387628667321243247851855212822726588562164775166553524184883165432857255241726468471751356333563768342762543886582677473123178453376534455721171327156135313854858368315773581572184464865831125148541775142261176573646218722273143222786823586212266787745654565844174475315633758245128651614367676272413572737757851872153475831247478313586832734488685581253263877577534887261311235382477382358176546142427215288434333737854563284484633124513252555737633776762822342653674586722175725783148237138712238385547442183568564257652547337854287648817364387413235151583475512365325758245675665272811725162365767148633282424118288871483621763536411425364765655351366385172442752463786338715137134734843173224161846561326731318743333211188586382528641381831512784275872811516467888628772547634722867257774531486368744158587866733545184543353845531813552414687127537643647643263333275376753324174528583454476468784338672813177441888315321166623225181846224154122648257854633815272775514561677753445236356527743881546164648582532612437156546745566833363872732652812367183766184676178147226153311246826251565884363364153757758761263555517767264151436778254242824768386163586862675123847437321417386661138623551168854764313113548865137686523628312758855256176864537114465613342276162354657445465835868215545654137764845741354847244665876527622214215748775846322754158312233141257643386477126853837835627633718268167413321516766351728682537525432843332387665856645562334243453636551458273478158316415531873315847673662816573521762482288576741624642513366275362187216732425284527778613137625534325655756163414843723783555614235312477272482575734713237385778465321685714563725863753388773476877144585628866254248144838364832483527678646337423134536121571371342226247442381283522881817843667455268664581578547736786357625466558385342461132712472777646781426442146874876223337226541836837367443237283515815673817116611237677152741687254488671281832121474356282867653787736853643414553687474262616673536882263524131115514131861335578868752113276743464444236858473166522778183447672785827511227532283162547872426566625565254617783786621125324646118563757328614651472284382655466871335636614648777156182337841636638788535811844341628848413233415155115612655151728474374667825221487857171356485343367415866455284855431165415886881641333547237224726788131336173156747112882423482742752482788262543341218321366222813223388875735121247641434255822334331287376748538183143225626516631626141785654354335614273814574315176756188522651332326617632138346873387241323412613168718113616412311232834731862865555524784282332322561554621514265427414828742641466432764585867526156124168881846651543152238646353832117164667413234286418143765735846423876483776785433336371853244785754481438117327317145681125552744773836714315136816573354561441736788236567747237552756124155747434146763224834475662163238621238531327388657765447511734483125648637164616473634444516643612865818322388184456767887338688773134533463368672127824726676332635754282135868147531677416741861155265475577353175751682332888665383487652447653847614587787751858768632746373543114561818443444481151311617628131143144658618128232727887737681362376627377288762851741388128725658887725512288472533327781768835582363834754368472474263816885155282252683635664477484485142354538355584464187545484531614886346373432575854615214464431581325814724168264612383335475435423674666141654134823823461161228557624137154134533525767545237278822171856861173435877787371685654453547225324354427854653488134461322243342737776368715654524161713674628853346534512646718273338687238672675145153327888524453478762711835238744263533252513842824764437127553146316322442745585847181583345318818512353583723373752816717318356877628865317313577435226123548886367362568158327137648122443333668253428325844426287761114813278712114612863814681276254352666356534562658156286324511612738452762837162163358877117765857561357526134286523526886761833771823644446453275486185448542886678813126351647274454667527476244112863415468844385468287135446824721722154628645357866648882643681778575153534138726257753874854637576777217526365871455424818843686142553374816265371838171861816622564758731544178737736581652128265518282855351813683413468236251477317183375145422422435858335168766575871174683834737433162268253777135644773233616125123235227585368538877811732138631551742562157618567434116876851173267424316737352154562761555331526325453785532317721817831251727521232412632452214882454431222141123138282145325375536147158721713713782683272621873343118687657687863713127861524557728486237814462747621524275537178725147715242185534343651871385336542482573677841432616452287682145244113867737542777284168788113377457652212552311278273263133152416837227861217725713721188455513816677262352131372651366313523771257545661841178814611317256214226171254827883788821656533854373677653145544531272753574568663137754837153272881776214266143443388348254142342126686711184435432826738343244342672128237547176278528448464764188712625241825618252256718742312858287312113543265342527263481355865673774114126622771586543238433686142422531283136156416581241115718127861685518375883642426434622323176142618636722186385537851178186662537462244328657227674758368615755317578572127516174528223178245473237243152827285344255224215343332156167836615838422641722353576757132824585285787652334436472127887181245434114746661778424333123582523253323414141738642261548717625512831872345135868773817754326846736884626328875461732573622376656446525236172385468283552758534365635254532767312881853147867364634241281136764834626826314116541651766741124424575234562848673454287832844153471151124278126457867422672187345117218387218521464223372251154365143662158622755743247463265662733716123674426872886613726343286564346311741517784164412246266881334564415435265277688814337876671113241654232456335273312168734484418471864611388876224321868418821465557685725373152258855863825567781368718846828634636884845218145147175178337212341181284412313526184588587425245325835175264133613758477886417111381767175184434676285674182462287245851266366485221757854181816731875868585835453187873858156688784151521261315672546543214774724878146624752128344654865158517585456735761178668635288685322271486165528387851881165142274457416711133163434521236787623658518856131134876485474724686163871573255864368567773264634136882641565122525273851846421471776822165346268683855641477223887558465586814543838111117526813638262437134588547255235554842864552785265674248124534258251344758134252778711413432817728551816816388246734734673564426877668436633546876458787752254457385834617837336168625281326368268437885358757455876483282835542174831232116728117434643815426332472484365823522354335383534234162267684785224321441571731123425343763328511812614762422524433136311288228821252535377586616868366183864863547457553478618416884518583646861423275174155852352472387653158257242451752154758184883638632514127233717678265631788263632553833645613166153383363875725172461612862275756755243111683216144175268154546322813813143838431788173588828322168365338283232222786716317336543131663673555744588361517117638133615161832266335238886787651234414667666544364556523382634647154282824378613725267464536667441868727245773235648285525382616488177863447451882711138227487685318285218842617884656578174524651571756427378135262575484516678716448781677657265824538146371222533427476112735184143627326414257568374675634211325573114325737674383667837115136351567111581328454481871457837354411872616638341678444178573324632481551888424558453532576478547786723467426547451413637443817773262415823576488431463877267623638446845868617322355353146417777327573778615447333755631447725324248423881511834176558358142368458352356376176144616382363116652646548733346822157777674552374125768333653414521155788852771252735337311317435448687388463457312842432168713427386622655162882772885683664175762148825527327583742127382358886712768822758375538437766863563718876545781325847557444741184861538851438232634248874157733226846433573556435721718211574453746556522737261427588166782234128444283445263824438313672765274638724228313354314344618855268312781362813237665768245287474315271367257177824487872357185232356471815461257367233828737812747453411646438323735184844715675231547273532554444714317647223783526132384121562143238684472422743243337741513463676543551713546567781645362615663384626484628162827673275116571578512347376283142716684355878836586472726412416554231356424424248574366113321675167781143282566121534732753726484734548824662851763256347226832375436388453627485427112581288187637836878212651788668478264263586481144665717883726464851464481748724877554823362874178773883874735838443741747815311855342338672771475666741381587284375428474337466513887173733322441887412735338158455723283134238837647527631536547181168378662362185654436251521471487182868785862284546333871185235531783448115732383675571688263483468718671833257426645612687614612558583345537266732168245675244815434755177885644552433112373641883444818767813154887365211444434444435472342257654251432475885888348877718185436753586712186586282241627586781572447777857373812223755521381815225681546864234153837241275843434811121427717863263177712883885852834165552418436311757626813118363445567768418111782523814371276237754531277145282453451778567756582652466846466662616652614181628871274778582258876358488785564428217645551746332656586252618627647418565618813678435746877558373781613344885261623887653425813858831324414882861826483681782787776715843812764856263583372561845576767165852114432642876283873422788263455356788551428187876387534231266687344861117877432262682661777124557155633526361444378153286568134836118427142756251735142768463835243744326488771853234377325268488643864271628722782838722848555438472866638276426225254325862421858225545463275484175227715823125514758373351516875213672843815562517242477135784872355441736853264575738318847143235775528272387324563413366777761325833522616217555862785548825144316555785416338476463886875256246513172388188616341515884476782558456673353823314334574137367221165411713611182132581558456865833271222477247127263338841534227232328234855767575775368182574883685618214441265721324728147184464114882135752181182274274584117118557362843743438546622146256834841676447773735785154338852624118747457316288334546861833111272252574365871874135737582788773686544876142238242472331116154371114158663753446672465275757883853128853314657173231645881455642621325226647546435566132237768541243751285626361524283165753667487441531282884556142358811347687233255862722274458641617682237147863236418637668614335264187468353375185527483123523611761226228443623361771178112867125616327728281277356832582485283653152541538244641318268317584736748868173514165665672577187241721677652612676218744888568371338117743161844263226673338854857864324382873175486132864866132475826143317225452735838182682511112323611482834726178874751662662561517546716275573142583651724642482222488776332613452786465716543424331227846767121358613843614813445554124482711783433627855823266478741356333878322554116317281845538532754228247163174662581355717437521112676473786861175212652282853133286545524316872588654544641613538353712888386556588623254725145141882272776242752428434726486151221835674484638467477566215567671341827863486111827661452628144278746218548746737362477245756233626136177637327725124444126711137442746278117855557578156616476322163681367754376744618446784576371325152887836376744358884428647348852212671317648141541642573127178781155755581565386457276285653648412874518336462267853272444375873177288282445553115483344462861245822581314865733343336761634324775132633735468661163416271328666136211548173636683114432151883315823866543715572742872784754274473646182343586642548685741335463714423614654485516276431154686846885323458814435721453265582855351851285685715446183425545712146218777454611245815224465156857237116657177118681772818111462375163734533113831677768445488624831268688618168636271625862884384177814562277117736587282172176544115463676276831586466572378114415637855364164633341817713414722884471114261541564532112458481658664462748563536176854165812634661224358726775451646113361443811888175163341845875576573524562341745158351344583257575584842142736387334334474466774143435345585835627121235538317627632753478162511177117361282628483375321283154623228825612534543446165155126487477448616758724257432186315821557362733575156548888265485884611433375381816331885462171346616356655882878577366724682423274475242332236151774533513454638177658588412677663275243457831515842516414372727186327564324144545753414842228688127871823384454181341712584253735521378327733388833171218372355574622551331331221287274713645284235177727711738827313783653338322536314785445337737163145137631578271655815418852355638338762426442117314822416318773362318252552733258326554874837762653247311274586137751845388242317283638747766546188273478488586125174138723233542436474871818526172584233125461271527875666574883212382514217885823312874213662178878745233527278227365782167843582273765624518521327456631281251464421678141867658415745525241874485254258732686314748461585671288614787476515833487381158374353834171727447638677166262761286556654614127552425212828785422734415563561436275665834513752615615367272385511744186424486326757141768167335178248872486226562366421886786111134571488767125327621321161367346562511247856257826627475418828265423587883268636364213324715717345565421447876374755176535615545262664725211837424588843473584222455586774874783742645851821137343568357356782143213467436246841387721555882112383646258764437226615667857734824254565423562344624871473255354741286718652553814488214186337613687238662527827134615124724382331211676745384186234346474828143624757112347614136521766357358287244124848776275537374818482477713314714343537187836383848747638826186287422821771418468454283755462771582781468576223225225581134367335214827742451432654218823148848426428853165678851832888781454483711686751338881684444421435444724881235335284358384443446186468564357572161253283333667877682224648567361186473622148514338146577434832847376625838546548241788347681585833562721465188664654675125262652687838163337315446862173316443567331884727614758445624541271247847686148566142855283257276356756573886423224371581822618815376182177688612248355147224774118777683438411331325521348483784748317342282771563225826455745875766382276335183362423738818264722457366666765758861754442435426638555877561713311185287831547221633827742883223127317616457331113113744183371378728378622512522528468768617783471467136274315224661513271531764762345621211422757575884853816151284625636445682246735787757554578627352582222115346832417334347811612537628878221473621421551342118232818857561677541353314445343835625677532258681725733843444686858283813138614653813783243673165585875258726253213488674657125561635342881362683638667618521635717418267715134114538318327182548145853711873474547444246843666261723762468774847658663126381673735722568516816432318521846825858417461327567312247158721268762322655443261158768645676484341467423554871653531511668368388126727671267713266773556453183882363711734365358617158615164138256287876461616566862818412524516823327125772518763653264132548736268546135342887251145254168823618251861165354736517133535477347361124232333316135447386815441843155438357685158583838681841834888518134584158825817544237387684414377734718467838478883622257568684144485132721468424383578485852352667871638763765212238134381283868724486471724812134645231721223254514747781271454534614785713275315676532256363475723312458437157583845237861818257544688643215564735428815163578431771411482845338441437542818511557215844238438373823446534251266556251561178816364675135121234781215738746444737265365746856816824213757287267154287472637337685615152437855621211648773322642328571324225677765436875814278311768887325744326536335726384782564151758313432784574133432517654737818718228885214577721632414546144822813568175534872125733787252651516653567272276447686876687533251526578457272733362156383723288252515422831778275147347535545437578286181665643827442784455654473383657632756227552438541115541446413745122313255118553221445575286476678471783353875816856213782115761427163368354424775583732613778776684581223564812367527747136622442711588742813736387248123384584442181645713773223184886782321462546612787746255124471161853686751571436721533635753836622572233858662351163344425777146312185147824718876816328586361686763177748326824515817764267846581887377871568186384647754524863833457242865572716232824165258528552843141357444767838113327848852155436452755848417477326722417568272474661332862671217785685141137876158752848714485361718272254548224785148626765358846524648751642636312841227313814536116653337587888243264615653226774248572117784768652288454766122416452337224357723142544186488545851683162586378358224583383724411238445662886873711365365646784714328542747286476178625847326653281745636415141427146311138415684736118318888117518228823561181341826457113673132123175437114235776237585854363445643743353443822384751356671684335221513546715184261312641375718181117332518177215882233751417314162464335313281686568552652158435368618238215745412354271356778412163152663356466668674771467877282487321553388636212648355251638845377433728657165711745127152755383183172626221661412671476337854864842218822654414242357571145518583311362135565185872611624864781732854164376753142313344437473566357732751515825146146271838843577437614362554235735543213717135565415413354767821432452617261484882523458883674487541471884184281322336725151518333877163133228221348632334355845843616126487826621588778274478874724223723325873648584272676341622741278577633654584127876371358248337843622187427578134652484875877473622526434873476722627724372635667438148234468721678227556476123752335358362244817881343187358545447731656572868738561738262285611273328663536518133272715821252878767415754462245423588752744147624162216651864466483175361634463565386667652768275483176628735148678856738173581746215443125381328222454133388161357452764481182114221483377382373638812157156334324823852746545818566467341664262264456382853223631364767732817221333853754163115748226165253645767231116271587162751164351521667251356675781267441256647486564888582356516334138751484381627214763165385127412874681776857368413376823572482386425461155558281284875731148835566774755126643352721161161131576832877255821353231747715527543842716522224716726711657768284254444166854332614352183766756772273358545155323448247432767422386638371755354555266876768222121743477461655722338684331358451515543156222711511268518314226873214228712677717722448471582856363675555381266625761477484388126142217713471742485448858375856652778228537218115355341845547868727615325642623758441242765551532867251332553544255266323535385142837166783744351546344617234618517862651635237773226644533864424371522682874668886657121426435768522751117262731263842648182367336477247653713528873627523721341544468832778146185154576854557313625368457137787111428612263884832568271871461866818568383658113166574333478162633676322373254231875325333335268436735851343733522621258242768677157328423466685466158164857432834636665672111254538536572321571854387735886628162681348147266237324286453784687466557168846231162477771161236848384717757462247153832814626322227684276881215626561431788227348675254553541117742474221248841517181446462248828236225331271247644755512426875815326821547358233528746175473831568251874426331668341824458423448432521632452277118766218252463315534283335543121587325387244142554673826437438285686226586612824452748153766483852641816363265561612624862217284834685338542718838717854244854123572624245422875532124448412564773121244453621843745345883145231113223335586387332466652833245333612635255541364276458622843245566346753824647166467336586522137762244143424886514137757215327754646247185582322682546857455837463747554118837166372673487687211475731717781666185758257684114222352442287864231722387224581672824728618482572623558841376444315777745451328442767353281711332528151562681645772224484274374443148615842165241138278666754865368786151323517577413178325722145832346848386745556861783841752325516811545276743436473344435333774245785424285285411615627851315428515217324511246277351725843184742333732772455241175763127333465564557382445668647824323655688226447767113246222673762244421313146824482615484267545755867814365637663711111233174521123563616238683843624433787321887342368582257527588118174775535435323278314656522273677262725837258534464546764143817631868167771414716857544127178448413118854651112714534683281742652837521573351286528678815845127871413156458468281755723126688453484416752655645332868261836542887888271153677321177685755218865725644425683472258825257645347821552553138246858526748574217165782844326736238252533581827675851755257437256243885845883437634616727557141722621371576471323478137554464516675463286842833867542317714832365713772243416484354485833185222788746657567217338744834213475531212546313184584138588615624846855218546523562164584262648734581671382843215173218323444137444417337188876581471418724223564571414721318164178728662748663232233371472874157816873724482611781785744618612563361313428571336126686736714132355153114868663444111488238342564731141234116311472237242275117477243363368161127381622786886412383328543456454854135365841357256444185117624725375568668462286511616374143181338843421464553818661167438445574248572284228116171677282212366747656542864875378454763854876537114357552828244176161432476721521643284855541145328163767528241862282684847828121124817628341817223858343782611422767346877847756753656183864875623254547433374158822381574132264275341151187463232852125285872181672387363225287471253737335112771816313321811445531474364575753821327551312423866671276644886857576447445376241415583237327113566717622321531347783275624172417785565756476422882376857853164548283367173634774612384751166236756171558777236217184461247731413727868717232857637772783232853231684565184346278556413633727712746864178511387224564883375653517364363831856744711751255487745272678567324564145787528657183526644361283228681761277251551877223651436457177731858331483142534515528851435228861512526588742813531133266458823163882551482672615724287511112324364435245321251438825345346244647151665763888688276477172313367744767152111841465811678568562455513814262236878236285127572776436334422511787777587661234413216516647467444832757322844454742183337731345617581183284238664541778258374725442116385425148114653375361427568461265677842823484382435537181814527256857758755254116556423213634526772663215732282554365274527678334251577751841213585724235588233647463357812138854435528775615641173415716665531641883547175648327655743476115771866731647868882337517723173661724466217184171223561112421644472588325624783871214211128753288157841578665553343631542436423324278737751326256581244443284176515285837631355161755286565671411526766545241424588615433617617448776416622653772458158188756367852352121256112843728677331667458352561543823124482831763588812834771712114165471674336676377232576627484882186734366642165755523842681758528213685151733118631622752833585212442114686114636415652722761487612563518378343671323114257286634547587586227276277274618485864827674584712521715333484111586654228647627846627252551552527844463886664257831743868625573465472362814131821661154525271274672425676758557534385657843856472331867244285517134651254145754857124545654822475842826827581165536652323411625715187458826888518844163178611381766313881255113687162338366186244531436542728785687582287814525548382613855532117827636524643317216176343586463232514836382677468644447464612622773335662736344317322254385264447642717687382678222884434617142773154721658587568435877118711687184573524241856511264665226372772716234647314162747712188386573468142276116278164722627226842877757165376663668636555377142245581167613141317846583231582375835112867242848331151848188836536613588171861711415516273166485633852556344472438656364537873213417233854383113167611634227438446368355642553451886851462272235452444678712744543338343262444686832868528684144145668855186265825177838585166271647583718432688787351326774287337677535565384841666464728835767386155678218311344656118618242862356875762418141215773444327482526375433631614622888338332761188733143125152273341361863256866416772171355273517212268241836674333216213626644152347762562888488318128142322727813451523762322327831582383572348572348576428511281246476431334258488416155675482576782232222347353254865411646865341451342476817234387847511316487544245453644567186557425412722562656282563116466737235776858673848355128478186345768417651337288735334247744447121131484237626386738724384715267866676156787324853514541671366761545747586887441382726482437765828111736435831856618148258135287785748557741713263247651524748625861725661446661644221348633365867826543255527683721515447665857746461456815742188741445822177728433267735128287277323712615456166381144555265653572427675282585332386627845411424565341538488127217571341577281544747861526427315761514323138753334681443252552238355776751645635781544456522712333767253274456536642784242383523568482771775445766515821755274447156232368528666424176668257357153473571238265514873616532136538574412532157366661132352224737583848853154582267837138257512151854846823367252555425141861146247318186881716168267642735841231636213712878383716541734175165737547785684378566732871178255614268627354682215888653757674825417866462487627874751733667138365723461618447815481261587361783472427155665536272865824312157812121536611824338185544645542117321448778772212726442476617415337877826584381567268126346777467733624844168185678577872666264856285371684663831885378523788382671825554887771546672683843567684472847186772843621746641664231568638248434338556312542617627745315388843332884234384225683446664264754157844466466845122425788372464448341446281445853765851585732245775721285811463341545682242825211758548136243577537767173745462527172582266524344282655141244166464633551218318738564747551826563836852568211258166521173175612662356171687613326138786662382157851627484325244823558835622737388862471812233524531538781148448332578248262281524373738834547477383274781166737833322865338743268586573551831381382575674227545451828231381438428363442868774116284617613423164552813768754754438881337371553128816271735216326366166712866867535851834424743571847537482145588174276587648184757577123327746645768485838585161787616835468213486186588525233813448112555436565242882424133171335243184316551271431252352331423544811812354142272266168382814864322812217222436621184878771266667565646457467786785753746761587841522337134514251445431223833337475625188546632373876554854776532751365886521444712137271567287173171665386887465344753718618473481124628128523157583561517125451263314313255236846811656537671757685725216338181371353165511686235664781228187223825273414468158676622641628587585264225338341765437567348268635353471514214242382728521546266683616454771365161248612652147714644877325127524388338112372753224322121332258346748756644725717746655655536252746482626765426812344816231753687313245538161437357326188671846357663885467227113842521175276822455642758361162133844623216868611832226123787616851138328115645348526235274841516315217774328551113773111462272528111775316863678837785817136778788444644437682352712383255511445158421564381232413527784155155352354371471118347215154236442834266265363843663451832154657552645467562555488735778182537871724827474336775425664343482751812161478818353515163487413555342225363723755615378335632657848161657841872553641371718675566473514168133258284827868546113626674772442646625614562126783734257546477357671356464675834213378214422347623615252576678766214222563457835264685514378852563652414751251567813564662534757623564826137285543885153775232661824112672456622577274227447214362363417323172215831143554372617812722343357447616717153451537177236367388613244822774181723627137431221186211267316775766635214857135642152675566844282552148531814568671525268434848615515538538183537378463415466416554276711765737534176874522752474413278726465828383171218372281637526115742418848714534528717532353858241842882478448862447282886853863167737133173848771666766133476758232545422775454271834344243887817732178736478417267382673863438263842824358368785522451654663671542444536563218437564316333686422562825638645587312747131416728862734167538247675738338331622365428522841725681738758488561464613562455517736521566223166773841356418128463225843354337812815132448347154873543437552828228638544275842145356688222114526266726334485388585732723671243558847547657853713882741618788122663484368652182156837165542523741751283735832617487864425547573357864243413574881676788448817783386377627166125181748351347186835363214667366573257253274844614846357434832646868344638734265365167777861782454388723482775822525463255882647246285134318867785833724474345261448852158145774264453566612874886487364374533846142365813787857214131438477748454341512857313238531333776532533537385241872854864814843512635658484865633734888178443481638885541814447486556452815852675675735583816412166468268732616244683828278528483216121664531242272543451178625685364311351432358473486211268335838851152215417146155376461161553525232428528481186381114611733745455254725665472127777225867242444841323556781588436225712283114515286222711836768257718675685713388822767551314821666235752137367235823647767326883373855658542335823886671263537565426878743646717787232345268122563352213246726315728521236635852354232455116444673244357687774675288835583843811335627246833111578572682872373362541824474671618263183387273478211213641615746468748665544778561581422283774226251233487442458477236426461778115788285545772686225436263812777153563737473223781443625113751356681868414685544645527875237854588256783253674747466855445337356362821843221561217788113613437732883677165782528366764784214576743721274454615312855142453721355233822454882227173677538776562682171885375216862811458334157836731781475582858238862585566331811648777314516171666773148762738514448848165474417786111174827775286757634367428315825671273536722486738236676213784361144367558755248248566287564677677265536573614387242832485523856761384158181528141314213332326184211376872814475572888732161631726814388151285624561251336166624375465371886537852867856361632231663882557327763158522827177761786783128426284566285356752645384671142583828343558755247167584668634581777472414378568866436888733282846652687183618316845283275462356687757333654572863582461126327576433762286225423647772588781515328282462684333266555762656424615682514474414776147385431767248768585133241327188838462225846871428127113631311383786627218567528487368348465154441712378236685511147537262646277837256246425146146516328174768562144338141344525835533547882757638137682333454827172486855137567441721158385456362176463643588884872686673738222131733186325315411665184173515714476753285485612738347713768856312657766322772165566116371376673728583824268472637318644432715277626815133646711317342372538244565833515765453251581728647522545238481633845322376336851677543126632452752341248848535358273452684531663566682375244367852356136575323238587623714887483578858314812785442371361436362336732728718854288386328152458672331413451125235221423435631585487215211372582664725664337153518488628714654782263426548142468868741476743838125134677358585448134642436476355557873427433647557633562771525667146475735251672544457646464182712241333725883154266632875444285416441483878852147712666717336567378128474146256184861242141614232234648744238738382126221886416581632672784344844145436233834588368116372475861871221518882821554461165223768534256324768122774327324412755718311588572584762363662223158346233853727673126321386264161611373375636161473665664477775552551574124421534462147142786848281758836165184242445718687453168121524327886421221662347241147526677716565363885152852463534886634212738423772884758662125222741852241743687776837784656874168232125251138774266613178464446128231416275233318661144642162664656483627311536261265386213345661126158775585222315445156181537385111658315486626331583217821356867683228647476618468755517344186466455438836564227258471374681113658352821647756543472418545243577428377412777482711557273354523131657455513358481223136863885287851483143145855166136788188567168628171174548723223512511137542523477146567151343558718573144382316222467361311236174743756745876384441864562654133163444688886373686771314445558453663733637156335661452716427151386666816628112574681877288152141477268816714533117755561276157215628278556176853738156241445335584573234543217572484667478173347482665236446712626154588564457883251743154442613175135157463753275828834445262268778851687143837528278373716624588284331182185713782328365137154161213768165555582684336516478846553511427838255435435276584447611157168568284714453137387617278842638272787877388483237665558144376764642435734461358285447357745482553656816451186175626152883542464615186617626822558862731142877324524382728427371266316421228112261555447351244267518222338716621646376277713381246134837775447578776152843867588363452831441768646253426311158155181271782868828235233453465442646434224327268252374626664375118642851352175812718867682685286736638725638386466131581665852245567555677614827681648373538658313624383721273558681684546223628842477726715761736465781517478444678437777462215747337354288743377781574421337822442843433374562852128437261138848631161887125327176681423273136761734781317838614343872865345627412751487376327312666461165344145837676472218617474182765385761158434242163181747827281388876843883476541556581188567687683844848744567324541655273148864768228784227118162116622535578833814574513313376276528678383883344412562718716422238614313388581831273131616355247727215234283253867841612314577356773316473767731532612417556152616643452315678442568428361575725176382272656211436865558526755131768547421241758223668627118273255271688663454346628242848566888464231217448544815738581553818425545553466136477566233347385217468184887381145762274475814472837784853781581246455568631745135572847836856176478613565358768324578368634848646314537261753682218616661261132462485312374628838518836548623725632862756288157615687158877731161366428748621581136537523316871114325818777586668838441747116264516266742567885884735521181317635442683556345415845513212833372526453317848556142567544635563731232463863527231853467842165344137364237271661622868423235731883326515324386428582234153685475424131668615417836748352331568117261814864472844534221858113673456257522525611738322123821275287813321273724714715616885674218868862176158245575715212741757724427575852762186677815248835763711568232878275753651241634211282355848146652216247752882823188832235611862243756348287375382255164642317528555885462811235322574645845454328565772133143641468541185332638672231433444668472445422842774658843555886131567778421682731713756678845558213186818634867854286535521242663637387862154756845514256746163333733688482876567687711451757757237286215851363213881615782374167573251455483414663444181727384648165121338666714744213882481755438816145618351431422418544386531137682858854864615555466515355858485587274336667228736273768462822146852882557141883317675388146821613417631235785236562186517281821767316428618278435311837443415278528226276762312847581385342826475867655133841181756856286448143646172372565244331582317612273526224858273617281751646427333544836427133413288841625356786112514823426664658253374871365576787858767235566478477835652376633474162772887613551143525514764172578333433864288781252462555864182681641883173862854652513288575414564234533736677724575812535163171514764626352233572738672354563381364645141221274137583327742767861341544336812421838867452535183186227327628536526523457377874754243674426868337856353786342387728674286751478845537513317237676541166312426321574332622242668331116645846575383623752565647332417767333646266215171317468318128886785656444731344464828748327316556188411774514142538478122718261548481237284685718344323564171212711434853327858581518825831811682641785634526243813755144115772825184364683167354641744322488542727814471747273244235326563237425216322156764765385487212234643331652767122287783443734846471711735678486316282513775776281841871257166484711151885244752755543257134354732514314834161252363685565681744862383455822584437714121586337734161815456674736576175642475228382478835354644153731185348732356515565687247244486516637671523363588165748661621472721258816214558225461487268274122147644364476468612622537222224435258652717414162213363745666116388355242853856277221555132418637634215481356171417524183734664533553758485288216157227516544554575852411676366847761376641666124376484552778441386124645778151277536848724338337136267325237325765338717342745345833351544342838432118718174214357281312445535437338728774285387123624857226736626317853368568347328765356138352148814817755748577232756526253154824464356717533355536348131833432438865225167314723557121273423636538627224142114425837143151874213764586167747351553824375364754237586861625241283154272625757762687851122243822284312271636524471275844235484363684718753264577262453865125412767328262178283628724212428851713632327583113361323711648312882834262682887782531561682233378578586755621261388443268387386844711152373486185685513518347138278281438535214364882843843426312837161581711213383183347675126368743717545535835232465814523216682647483145517722835526675556382435371242662244186528874416143845161254437527627448144175458641357363463734613516261678222685771374382272342567885854532677825641148763857724361765885133725176252644111448575633728482771455242813478484348877861518454556741837262771872741686354858175658428213182285448166317654358534576267566383886583238165112155273715253572746483772748455527636673215461344881847288631343123351667724725822815481361485364568383172463562637867164118513658275483386651433381117215745617276712237564514833611182235412236566456313364624642651544672514232564384337368714875731887145534481776828653383356836533184357654713514235455382152421681223685176133425627354121338387171421875375586768351758472487815814612231751233637614358464854222543732873583756386728463824132286261337443688337175628861364583876575321376221584253628726273231874275314586322717175657845265834842543113332262848212166374744247468438437545616323528344385728322235667583723452474365712348847222685221563475623658846147832754581712838246468742483786551782737715684377634265424681443273132772827444216634372321422646646481383236534866452588382235586713848268482887381128155248455736222135154844731742417137843223835115221672625615816475741762252633752578651787185783177164846711752521283342757887313765838276253124148431572461867744414132724625785435454567334225326635866335525728452578322631863615752552128662224468862712514734826763142678512815562652412551143485711137874742387131247113264124611361667248845754447218233214362358132746447873436317786117241336831182432386538836465246566386856666425645365865612383518846632457615336564236314284524225754551132632385478115232343461815467472315415118571218334261332565423311727187156664664182774847545476265834411763336615571644558773488658268853745573617642684633858424147888273417468283168532787616617266152213815425423833777318876684175382273714343313582172866313311818234414515536542651824324542643325733853472643515566187258483322854246154837288423173585484433278361876431725456732152387487626353326656348872335511335263814216217868518265387457257764132117735272118626323134548323472388133526427185686651111612646863843764523338567214872853784277433626735125178561657721768274184833615227482448421868645268637732152651288114852118563166181568672514681381455653566573743761444365681631765837355868844287242665845877652325616214787864658822273641212414664351336824388857263416287444462516618887386883416726136547174242563257857624661342622175771814222144546177444535366264613711772653116311222634736244672627313247415746854687262553832751582863324767131586474336688572636484723761373418156251781347217724885878577728482273223336743685142336384643378286575427658727388228717748143158367875752631121647675261172143171477721558632382256764448544827633214766615545457112412334485325532675356716113428666861318412552781422668441373848613781411352541558483386435636363542252274135257786135635714481745532726838512371151324711321182525466161627755527348686778575626221576357111367188634473837218581528841442444854877383355172887658324455268662731255452158825651648675362838618332846217786462285131537427175874178668256853168333185583318486563438121626638333538788278675442652354485135154177833721478881635867863246628724526557383853885443848354885464785242677868337873763485552165424635461864856621684818254337748318523628612343418765482524365863535753433534531474823772825473735122351324644772344382171687571248865614747282473762645375138743717874368774582848674312785766724513115581156811867815754832273641522271843543581157633183872845114382173336556338188367656727227524422642464756663668233474363784235816723258513738428657751138513718476561271451162187473543514571485748866578576776234255415461376732724567536762481416824266781543322447357535642482684166453517716146563133566676552668311327118471137137852678814766364416377322882754355181852148763223527115212346468678742845578761738338758854617333723877583441233155617311436361322525165378383564742342382184125736441837854877148263812761368553263865662726532447715188726668555848275467726837418577455788621815721133515254165524436822754811253733178362747386411667551812184166145868118525225883454422331614314562448181573247484512634751787344257234878214128176351386442374385778864882154647368365571467714267154421523576121116532378136243825457178414112618133356736542411125738468441677677571854675586584746441481268584327421758814334614458255248788731668624372614772374861584438113776627142873356542617623636637612348621817744565435257582822377273251211182127656843667531665548454542617421853614577441164387341484625563358278244844657786571636617232526282725776328784553576354746817384566721513483544818382666364763225466227533456544263336131466346853272631146456774723273288521276565385468615458731748234686721447644771751866855616321658147757372666628516767318687664344638457382164825587185865418784834875475677131285712865515252254518726474254841287474512226443561452256343614728527675764264422434346142872438147423151474585418731144338142646587861567827264217822112876157374631786385122518156354212574317642332657338246158754832281327152355426756762143835188377116777113225516254837187517115812271656848285772841648261666737143115768455133724858742528382113171534568642121413157228716823782754277152824642144832513252542484572454625688511563681125746183446358377857565338588367558854758552288145518632657255811782375781825571747727171765156113336774545711884362141226788111181748254345435558743452781711576522247642841414877233478451214836156472666773261581887541267651433172827253548385855418532354184168231656566583757315754751336634627448715435461317553135127752888344372782838665572584163818768718837176371723462521683174652612581117683774786854684187264384123731315241278871121426338435587547264485513167878571771471146551474738341624517136212851531286881873874526136741237873643638877173166588287543232881151371375754127776354224114713517516381463445378672663268558716333528666626213741813876818555288257182453741125725171762624313825381536817668247325467316686685784846383161672273436326846372761835532517573661611332183332514664737647413648478418377516634752341165522556281712635286831125255233441612827888728417752454645834868816254653313213147881824427815562257628658866762326428831687744131483437171664416227117746532114141858457482848332733577317424586352284113364386466435763674788472211677674723437731824247324233454278827388487247838851448567764857716512242535474446251114877163521271353122361761485466431285546222357531653381435648382422533345546888632161674845841653523754367164613711844115568632553535538183453741412513138668734747411318522563674831214771738221651657371244513513684667411132287838726541662827253386117271486746777218362151545862647165762525261672327581645848163576261372565444562131155346723772414113331861884283368514276564362472772465234554852517586218346454332245668281345163822233133638738648223682723188172282164437871745733262851328834121226236884674737221172664654755744454754788378656754132267511684781263252655581373443568376125482478481243762886211454153654711827525348525762457363635511647725566782351514328146411136717548665445377884336331647622187823758481688155587287853781516484448455225181245135726656727533134138651738541743385667451778773256272734488541541726558316282473762855162122745726248161456262557323528387468117423486288426632231473177521282844741231177612522538414836143313375417165513434557568162363383582187512763113438886453658575815675543325373636583245262236424873213134668143358643251133372631826231484464316332326326322472443136733738865565757276717625768248472635338552237813384135327338844217616663873644671153284634377688166713687838386463357786725545243783658458465767683548321875156335312724431864644664566321426128626567816664118162585286715527145763251686186611856433623342643888872841256423278478757642575742448234828267545181842626462726821711387774238445488631173852558341835674716646886731538525646337432818175621426768828747127752554421825557665848541585883645762861862427744148861678875825262858825234575176673422366467174366764146114578247555443188413881273657157426417733166333874361855381283612322764177471767752724353142118211377455888843438372774754155866661576766737746372238562166338566631367617173727846564636866874223356287663842315627182444743265216773245418586757233337418433513877818455172635247247687637857856343855564413836322282832783248578732178478478127334236863386711484687516241753655164467353144678758366856148865547552186457736617332587368263376223422754517835765675418185331152154848388781333851112872215276473744474158158445442311226345781134578551265166377477211812476556612537351827243162472268377834312534356428714111357161168532868627251758718711713326473833781463274845876554214582711781278225112462628472483728688675484363678786868813743184651587234332285264531127457767888855548563482866328137764326716762373841775143344354117245823258156447426581721855423743484616322153755121763765177367674644173248582663711784363665583864162353872125166243378546165158533465651552267442666382867271783745471443221852735554322785445426854668176743813124523382516645327774358131186318451656814238466225312712871561213774531824452178318187845872688644654725257132838815681754688334788241433733175143562254331263518288383272581154172863383125145852551778134116224111118311414667823862574552243341341836674221511866172246432462463266832823171677246337647775182374667466445578181783267123228126251116457873478437422883222174715763214662511421832731117826856514882337575387882261342738433783848273112611286171764844887274275281166816873381467532877465481671683474643147751214463368475551278224555461325142475362877243321838855517288418517112811621623663368425215743714374461228877724241678368851737255368151644435716864517554534128523224258687874542688514834336884815481836324745624244647732486754184743272536764288638118818654131222481628886415347848746762775583613664363161364155646873267724184132464432555631865554547821386755662722634264351563826725421716344232485728254821778227638716242661861123814153741758383344554487474453423538711555472465437867362427725775652617822757467851657811343521253488272364761663718555356327833238847141284837214731835554127211183764544636424784456728236847646681615167421456713274664435718535386764362327665841227237614337864512147846373877655147825328713363434827555518842422811512282475424773335486246388256227334242672768188644858658334852442765684767756477871713315487643785164527361617282243273638251441823145537388174367376325332373144118232167845462318537131335538686221473877575362382712884423173612421714553666555746533164348311428481823788555618168333766663425122173162674851553456631366374776154367212384441755125128756842517642232456712544756355311582722653466228818758244746334184742167114333228765685745548855148222573723642677757132656657757348564826776845736246473627481335888441627321564285883262121721465871848477534524123136218886184582353212852463464544232687154228124331582318553664756633447456437467577718332668152484635547271687525483834151663722872415882151423627127484527868654864428525366348226566185742423416427441874677381853338764872828561412511534454236225283251158825635842515127217428815872543412164237458667247886883147313553726741655327113588254567858374522813147266736674568182876415537734117884267643161838727535778268638584622272547212771314778412335875453267372713887628716613816582686178727187854735612148148455534848771356752282338214164126531621568261742668562178286587847168633311352234241358848564855733483434438358661763456313768142477631748734387374525323551164868618378352757283554243565277665335764756648428771865783371243343535612133174851124318537328623566244456652225736256276115846883524531883274634456745413666353375714411637217313873584761252556737337412877678674884176668524364166714658186124474477222764216663321455352854168177566644761434736772167331413322747528556316656134217542548572433241216584868567648518424447272416583823316268644662311325233141366357255868813166264885477643771113837172143846633122526181337145385261364534886255176673772376472857582124411736181358514738266833787681117257456583553512438738667544325232577344356217426115833483885564432753354875384151524564563681281176377733167434556178133112722786221164867777713411171451638577816163136514385312116123773312757451434154258676546328264481366178228235341374848337824863186465447361512538681384173461446188684182142862841868134367172371321338411387552225728823681788576228736853677518757346615651228846538822258875437262538115773447116555462136641136871786843876754421654836281363657687287486732248822364581386652182717423153877845268538657481588456784251455848256126158587524128715222836572214513277214625137715387456715525146852742264476754378785262782185487537725223515811541154384481835455347738245485441552542682652187587167852282743464638485337486753321775515678672224251684481745175763323557536727831855165621335467711263873324173748423884674332223835881223387362314363712244123315565584584837225253588321422618836252561561353874784773731652621185228876672868114553715768611416188656334177685112452685265876643527741828475186712162254752126334228821535134322575311446555887471148787162518324722856672777682456812718525557148841568656282434134762734376656341354336515444823811243247814514341431672283671647668153711831431161215834868634266163828113725588561131233263678453355323512621374357176364638634135357574426141553856683623355328842475876287143318664816342561135261437756657147612163483326428613655241873474711127834865574245272712568564555624223261484775413251116534176227381526336322722246814663772461351828312643732825223351634542566335766831861133354648728333186471863323421283435458117832316655458777185764613356856626527273425181765343471712264786547466425531564765723761186476232545877447262527281467566871661534273623116367246252675174211338757686614831741266831448726541282631481783436321813154515236756128234261221842612864134324168367751336155126276144243341614347133636288611188768781725455875645524384732747422157238672848514663253346481888115875521614332684176317523613571667881856846223371177448776714547137128424113387166726762152215115567276376273181372737848736143651467783227586522714355847547814526116124773543773865158474862334114413772842276131613552628728825136474265141353471343464825814416624237413444443574736288748357638728556417523867816635571266535217264471333285876346864652821542324362485372548361827184745815187534461667832555517173157644824646281737671532188716778523813176683773222765132578857778748147474758241133384452154712383386645287167672611123825485331536817277852475555334335872172245612421872121363866881554658853178332178857181157644418542433411411317264634738564511434344574684422317462741457425538653227356485283638761513421174516528422757476358283754763736387556157341647361851342425668454828632525576183258758687235741213762674313872863748477367418588543711737286873334347674274714667515688265738733737512176257381752386811454187461736615477774828125415526823431561846242838421182548786455717425416726876525684455135746377738148437286747364478882233832671585234128684281515212125465534651741812867353174614773128248512255246431763241517655554277285171614114652672418275448863458857884152537385546231744381643537387763123428143352445575311561466744812254227124335588726573588848336548537118213657341815724627317123572382123855756746385466864645584481388352746437736341684137684614441463526826666186236531855333476188417718536243825347331534747124654412152742611334734844828481763824736861242742384448747454142418477245825116285336877773883114157532121381621828524363358638681554433263281778542534866438458274324516576365375448512252167655274514253546174226763155258834212538822866564652835311526476887721477564777254426624666122677251757622281172181452837511474286843321538284114146335156782376572713763543658164363875325424267328612626573555572546167316323122857221465486642865272618347341412383116243826161587468118711552647657163351667674581286156767683467263257822686725782267451321666258442834168442181317651673425632672475752783652452723857781451384442684443715811283254131675612225172436416114283225278256524643847251717275562543167183343466666488266644316462444341341557875381224878875388413514537681458577318654227757467687247614621544162117286647472851444862481124527785215568364236231324524535647486173236731358833651263583757366142154344468338515478617184422786858483536538255684564131578434631538587712623852475575281244663636342733562864762386826686164383587766734176552381148618372417633221718876638438231157555413236547234782222264173658512648132654164553775518167428161342214161444715744311774522528328488513214554235333171148357758458125313635754854722533558321856455655888132536178347551142247841415665575744243636487213473767875242661341731654118786735288646257485176228885383842622711662486345513285271471361518471257466166327614822135158678624646444726545126415317773741478458264225861542758478734275823865857868463587374878563851458416882488413422855811857253364215462326737666567258824636633211434523815448183878461841578581583852327553452616354814862887547511612523765616487488853712663431266828362718258854541732684614471268613573585151525265111561825583433687114278346534231377145582511771247665366638628747247467525663354777412634316276617512863485382468776841142365133554646853553416475246241174654818361633187415748324547343667767365138315722186888158551787361117377778136236585157123152578656252511163752427674485767133655167888813778186865172357136153636423173857734287485537116413442651137421864451216735233843874156758657445572568822532786774355841566427663881577737117656773344161413345514363155823457132133148275111632168141283547126271281168376141323723443664262851568633552833821783244276563665487851373465327414484711236563622424542558287515844112122748211128441315882647313473685566556326231762166742638176113661872314877165332823783316627841144262368143336187377375846347117582635318532742645263664815416253485826445621584162115216614836335834247411435533711421682182775844357186718368328468214111258443545152633238237762342758731642186288333643335118234165858888258475417342562742632738371848825568161714626717631428124127676334832817141431251712714272558352342148814654631726667646861515711671562134467116743324622638328876141818313624355376725688576172672463463312443838671848757562711644856856687187835136613136376847381672422226821278551731155458858534635827576382343186268612383253336877343673864278585433268554873562172345283377747147464386475418266117687573436747542762468616633188555173385645561744552228757267221625525788445475741668545438347166637216617856216341881214114712161841327271482285772883863443256322151868864754832787284135157746652445383477747626213515827468114345535778253682413631828455463566121554141115355277246257482617315132535243747153554238164285685317122313556158364687361651221417325146168664657736528384323154443133431316338213422451647821155164117134466344283315168832814221636486818384721722338873771212741286747467825684784683661647532347182735287464843378526357211111711654343688251288122453234241872854377354838147628452764755853618613545514518141643786862423754335355416863464237417152813348478874335822364676284811151185611517886575362716423578585354532272547385831761223471415582142866182437187164253166717164848132782541328213275553348626226685833674485163381546742728111768133357386813288851685573473231288235535322312274843451415785475485127246434322613118726185614228681412125554621877431138686678654762164288227323232245772241672267335425336735625818273464133358257486581848212662376583116487873523273733754577716142147657225264577462614762528723634561157375638533464727668627677244811634814536771832665316172512153686756216851653871476754111376325887327824155151765451722528241481332771756437214625667536421231758615471631512671226666167252744514122782548726414746441856716237281141282138478463277371557331746551245328324356342238781581365526547748461763267377824543671733553347882144151785377643166151873827673573848184328178146652421727255111464341662375241723664412887514247333361217771862215253412832143845241261628612578212122374575471182178641286152138242176285733417665217836637711482366885465425852273862282678488636335768827513421377154333367732224767368176424218525824711681878325152661867185847236527383171873475322878487153563284684658456462864732377754617184531886787231333366211175253653212766126831658185322181513578755548351813875542243348161424351524546224277732142143858661153724836557875625536482654571385674766172745117537276148177614347424138874242164758221637515515346426461772174231613672233373883335577536332712772621838764123246315237467345484635675668742256786165572413858182351776457544228532251182456325147783245888377847133232343635846373586783632522381211414467528844264753782511418531641773585176114545782643681644464147467643853115654528484535563874781332536633267226753316464728218837151424781322864355818172567236813141271218165562732337251564331245328341324442574474311357451572623624412753172531156658285823771223258144412222786567474646521633624537635857136453357422673753782254684378153764761513471733718831118484811374351387536371467827134834434237551358273577624276875445745754676773481457276654852253417884427216113254662437588465623472424311622813361271531564745143882838687457772788857572525286176848715521385142687422671781565256736185284418665177325182227331873378765812565144775442253853656655248736581284248374251425377154374227773558164867374186335216234626264538533585434433262347162288726735458317817852744168842662621464668515153858648743717541422427575113377633517288535351417321765446374244264888412647754645438873377487725771782662244267712466764211142335474316422515483241873861875624338451268821428441185483471658252184111567571232832476385157164833311864733526318444743157832325325112581813243754247241144742334544611762743138128844115185328663711853737117621574175254782325316468448828671638213335664616214521151123171751642671225372663185717818267841872748837433318674764622518113162243783685836552144216334231516336576713482727572887332644664164632178185347115865784826373456881765765488768153532173328334128265313828583518438687635568576554785143683128552122772118633447433517847245152864228886765718643618113573158353342832587665681667544783868782782175284167517261884171466822611815485518338723773176133472658456865273675364622821578684751352825531868212564762486156517234236366454871217341181455122815125353154158248663748785113363532764138215231154148674752274217471754462175657732386743156247842187232316542322152712667478744148423251774613815656821438813474186428166544882556825827525431538867744215564777245337258413555558314432154288814446833868784346846155252361337643132375355455651426648743462315224123515142623425776626534735043444415876724765441668482574678121467633325782383146876211677346181561852537434647413623757352657621766521164485715274258555726385443162234374434148432176238668211173886382634715717823613668356834322546681271622571522845561833122276555568342268886682225818822218452178871714353138321717461246288186652782734716787575383827316223575735617164744353787758371617663225683288541166822766485153876818447454177272744631335547816386311653261645781858553224571226546578582553713765421413852673333162671843871266625765722885826388436271268783532175356123625342344837615384323482827338561712883853784323442651527347815672577443722221222857818413361438553186375283364561827767755864488718234653856123212854516664271751461713668476387251667442428555218378625528228642418818127144261185636848832463518281668463551566188453146854271156733646782714171836187383411526855338517755854133633432468526713416354716188512831851286125753713416556763623573367354122367645155367554833757272673685827743814242817886373657735712358244185518685284878255514241376856436847424134278661232342448242871345146426535412582323567247183226687141753888724846868671571553838743778645686257554128233888742623662233762257863172852326382264411331276488785283366187787812837622638164151536533248628426378741821537188643416781657365853547385455224785236472424842517867387888522566276434645236157414348118157774518853333523327665781652334213323225247465467241425552385472314685816721157447581213112548476822228551623164828631817752466155833885127834475345115777624186671175346146445676846232663773142725348614825453727147374332533311512563562176128531325627562768828733188264573582324756518353222782267745718158357433641373365512424267658352756516841675127238162487333235412148634467168858463618237221457632362678283747682632512434276121814263657838417546417317682418151164448712648263878427746674658463467454335843816717383137451184346753772343331172816878475472776228514447761435536874522736174416436467314157577342311284863178672125856157573366216383375244222484175377746134621246162686125834483187567267211831637714472872482356713386217712732328666832741876327653434311154283165428613456155521724712827186368877425352166674433523672477774368211646421745887211564373121254271822561314781621344743655747752653775716853124725218261625266338526264561738111231244886414237155442568522428512373667127287581215457871728638457785613223578358562428487132163421641128344776744676686115363321352154858147777726443654371278315517568443727661125381375114112352175181178525274423242458738532711178643512788331342184845817258723387657817417538435538186517241478322777227142884424183658264278762558472373447551651885818173651775421254567473445414661268232278427444856482745143478553263852818651626155216417715467644641782464215717184344285338161534373236513684251582671828723446774783224458563632761457111442638275286347365235462176566512772356743264861271487563838355581435666154421515541887256172312341574378636477582687413277827127765284233546386135773757558846724111171434261744127462274777525686685645722455564466255511352572351482148785148245857427523447244878154613313287471287116141734831815362212277585522123674767856816114321235855216474343485787548228357161633744257543588267877461465268818281215131875758357285213426116585523275873468481316586415123463182828467424331132646177655118378477184833135284868634181387385718577677647857454877454481326466135568434276127126438877565273582757767756555134476332174663838211657188654824362681715343316234858368331473778645775466617176472377817856831585141376124722466364255626376436641365166128332627741118726531751877252761368232625324352614385454371223238218871278665743772434527316636517512338856116384213663253823254562762467664411571524738278164427315412775372341182171155862174761372155654747424632334887152418216328742883334764617153556766386677338227452544812476443176675123853465372112518617158353581218264427613574632663267161136716771887737176226451673256855513872567312725517744722814586226512467768657377158227117427148456568356872311773614211813424826673375833751518748756857855355673111263355362325817258624828487684472413141242537334883474133468817728221814124826116452421767465346725513882273751263374452864155447155824138122214412845712217452224426878787165525461846144878767226715451827448173667372446424845582217216621524872476232831831451366154475446882716235378177183736518846187444684824528123532824332775581842472568522581743611731128538631847714733578234215355453826856522457581555577814281613614456124821661433846313733551736848227618434463357187446461113767455225758263488865416218271263517276368885312857285873552544584461716662818164571147381214561664622478365243687668267878142716247355378581421853746515225184617513787453465257243714482682168578538362627883717784883233836755417442561161427254344636626362427838756858581376727741113611558422384578545344622486214544365716113437178673745552348381776364635644522476426672875472456258388464822136478154818226367554573288587767213114212123316237553563282637448656736815335655471717226171885427212512112363522667448754713152443568438533882657553244575587788655558222267313155168584221651525247666583474656361876367334383577141615154271473538365765764182784864246655418733625783478588448782826552688632854541557213644384472247123546418534575152136456812185583744585424472655867324515674288271686718356273668586856221211285834625546335288628421788576266658727372664351732731575134751183665478343448427367376688131746224462183336855472378855538313882834211144785344268734346234234334414424754157262124244537127112558686148255667741852421372188745475156672345786488286325284245674755438321581215135757343457183147687581646466168522146458727138857474427652135156857353244554528854362244326583275812885157411883388521622461356724813217145712111638781644468156136444755336546611558371324876688131476126646164628324455414271778787211731547616317658266375358318135768881357878441436734326844526264121756552483583275366637275463542526367174311525228483367824777841334283633452868775712584147547262652571426311258446686657522417363172738431223756425768526636223287167871618874683868427257766756368237885751388355884711357114336358215382471815515643645245268762442871175273611875758461154631775664472856387473568263264617772418453355145571714432325745231331845867463672467711612876216216881273816865673561511556863244543537588373741654481245783276237556125541722557586226753642255561362523662476313834376651863188233152475534722224328174747746736742146551612731122536162446888561435657628578342261867178467381188365214667567684777255188585214247728783548427566488668625245366217183357266131438313764355582268667168452732864564717811465252225888515657522864115566511236145314224651217415573248565575246763784831622567683616334877478626863462214857436713285571185856321266457741381866385514678232564577873446466451158616644657574817613816341153157685338655411461836287538684866435857882283248888678117177432144336283822283772647357753663476816376577766642676418882225133621127643128461637165651448152381357733212757721384555611262117183843723115743573814434252157734788162147573836826336722624264548223887625625417717481423535856565855387565213554418116456613435887527845223577584211813661513763681282374613162277848263234217237353482822785611584472761787312183443312471157167222858117745625166856212863641228425833773345517214881747228712744843277578731527113757665256186477462721751723581542368881286815622811676355372385533172767468681751785237655552164848725637385141738328271415563663225455342756585236112723366313522767868224444153731622525245264447742753716368228371538753468561854186474662388387127118116651626225634162817517316676676328471678842318268625126674358651255833724622514265674123224771565134426555625187333644635111154366775231683768313673642853534167722335452345745711642814767862614813118741485863147347722325456513824518644712226526455376788121468828451841228471183522157858613552266256835843542811675432888821187421261354628516641274141632447275763568837585728844828158888764427464366773465125474188545523632468763211254323562131682221273336868251832464327582326417583582785712412617145762684314764284148686537615176333483581647133247616436256462154111431585865858336568255887764372874114287644376134658825683776175455542475421171225714441338634345581617845651643323337431888183548378674346422611613112612667532551535636134762733718176743513434274416116583443323382142358362686234445251465414743543448163842322662777882412475416726484684573648884373573737175324153187253534423727766725224455737747353572181843721462658182334764366334583656535248114878778363661488555871311525423572166158436446867523553622731275882557517217514336378226318124523438785523131254478466117666134167554772254166125528381767136241612158242347116367364841321144112376866112528743368731562563641837285816624617522484241114344337827474253374745852133733834437226664255474554728683862335468257424838454568856526421613848435266337368336378646355323574573616138433463651225821258413431762572234567713522624615323265313136348352733675854884576718281113783388578444115112231727334441377617562423874282364415745775823652227336372616443844488674373327436838554384144188515173517788338132844441541121661247585342875774645258811172645438345538324718774465853622552112615228752838776888581723575476527281675865723118127216234678142531514652713711763251834368371433248625415453531452544572278288424473638275188245866484318838741875227733148134286436526528484458841431432414478233885543278275278788838675731751618738254248324313756331811672653345337342364661616845116762144877266612714732582883563841121215682458515158727614866227888826473328838435364734337628418461774215688648846338428281731344182513178128861254283777752653162228134682358364454638482257554472154421645378682755464555361475576638761885834276328475877625874523288784457435267763831718464586765752384617321617562348352611187341235516888135582433838261866461473131631214431343642328372637346346476464417412472314713135565818244851367175721156417422545285726218815478162664474232183263754142613721777142171268334652584117835226882656435147142567334781374756252477132242646853463712535172386585165788131323328668428626853362568654556385537154663535787124347314645162571385453473162471575463446148267364516454637843151317527827514317428161211111866883424763334431363741851557325822823281481543666151616768262738831847654727775241222585577362324175452713647853644411658552674753415255286872226264338872141582538121238724715132524118321841281652745687764476238426348118135761142672168564884485286186866553363582657371761825485282558261163473525153281777486563635213325364585287266242651117346457456888427514321612766834437264625325326276275855237581813721258781127313121325716353423482276233234662843162327641852782121434623271872357156822826713165715276552356443827571348635842521114331553264436842675557252161132564326214326522776317284486561324713534556827783481328425732861841351722121586745546178633528571326157366325856226832555526242243548133634786427277433852362553513266431526337756356322424348516873383124626418181423532866583247277478542858747871881186423647425861872767327263852837368514123515364512848425772841777615716634332642443484843736761327455225657473684811184444687488842534655214541641726821386715785628154362785466547338835622867546422558687842515385885224321262768674524115365465631243241354116175217675212425677768773875356132542115585413577121188474175477513361881237482884164568176571442447536216122327321677353872682735275516765186435561485451528652856116364861571714811552311236187718215288323813314838255248545385813532124322327622333827568217418628722828627588687681146634462133572631313158877443527876184253522451572773341282524868648164176772845174126213451554488362468757858534643123338471881436641323778648678872372778868577842861347878426412341427172846432385336271132443333145511414214334434118173833333633874831142532171242121121853375531681714564632756635637638657877146174241521462635367111172446217576811638762614247658323236744363863643276357442323712734578812867318224756517715756141487158253643235327874725361164671542264514737128723352458533511355247585644246688172837841762884217634268678855864636421264324432761386725421163445744561863863158785543685657618844386851857731428168317564312385372644748232371743743686737826252876361371274764248577756525881285532337842187528136721242682477132854355455363263524644574323282177111652758743115235641642637835643464658344551768181165818382733761316336358883863646386232174352188677163868236216486668877174378716511564566844573821774678673553822145462755871263826175853775267847555617885878832636872865558851715333122378348172666561175661656376565481185818743485564642326612337564631736612127635118747517317761884877624573316474167775325218288653284343541888312751383568558482761815861135556732866721736445528671763535182742537876156351528546531741451281421827371826167888647483418237266237654655468868781648688512185678245627764756443467143851758283677818685742452485258254216773157548475151862616283714885633615468474548312468258446843263214656354725645583565471741157347418645723457124137545331383687487168627653121484348578567844654362283655567686727432388751385423212534682231527122327763513242167872427531352251343131177867731538467287233145248128234881764884486773665566146658647636471838847636853225786263283563371361734684858877234826836281578372162217564257847838688475213617514722567151524315174888168448311447515477488531185254167873878521442655465125785311414313261278884261673854434522353751176762751244877263373444576553536223185171534121348558676138878666663841564162216638566866565418243437284211476746663135788841534767354674427218746621358321873336752738247625688437254756744147721813583455532244831413687663212267134436181721373174348122143251168173647736554553554436637643625321284147451816757372624475424643668748574632874428551685384467682372311431588636582357754787637532758453422152621642184564114424688315254121267738117532633771221717133232857731717331411445533224136128322282838663478221633155424136657544337361277781763264476771223643266668687546234247675131757182376648675441733747673283768634533283231732714788223513788358722618187271337714333643582227166846746231368716818331688767364838361683385373143663317385178542258728727443627672612516123647833711382213245168846254536786271137263153474552242826346526812622485411415761542738234552252171231661476651325468148482673572665618316668617221735642475741116334724288168457537762528283261518878267161826446223174181177745411326728772232724237214872425863655336375165357436227672484656122542836544135574363681548824576546641451534157551521671332456612442154127284855167732732666334145342323732733411271868633166576261818883243274758555535817253441217283466785742763382573454615335724652447637414413666568148548121383414833671222444782782723384121131434787868671761546788687267261871858623352435488748327781577665637316332542147622551136755578722557852165367618832512376445377218184812285865838658847587282573583871786371848421165432827266425484468615658367474134325233742176281256633336164266665244288116676787557451157262437127544141478767672486557372535884417728867411367224441874286355753344217157155533846632146442527828135741313765738568663174842733446177728162345768686614115357388154735312583878758225286632266738278328248483147856546725827382361818531471474246852541118814712582142245781811366226384854312451461255714412535854653655776118146227418558718865332613852552432744642213741637761587884645558448764655835168745563852182657582245662762447822338532632764373514762524637421351364234171428436771532114844675672162171227757446458368764738484562778451333846588426163223158523661226326561825734237458435373526344532858821264374288742846365585125211152775873383346236423178571761776632231556571268518876712575564816138142411183124812362221643738117683831515816164266285731611677556445216384611284868213248726632843554281366142518526412888323214568555577378281723423227241232574236354258265847788771512372138218742836524215874738675573373384844247585515261323247686131836172463872448153775768335515615111346544445122386733556777314524515266361862667451763251557111251434131784652564311233877757763573176635717155156765161726311337683366826478881267772834561283823356827256713838414584626335385621867454744737775712263713212631334241384777222483528565472615347638668713535744783321554782323756783464733377454652417584725117446784734757361646447386344525451285547831454577238138638271333142253625466722342241773652454624541523158427642733426758855386727568742471724157816387344441733658381217276648246542366422512736366376812246256712118356514647874328661781416753864586223347146244212772788275262337828241122345726665424437855644533254835126665333574524465141263455844256484134842111554237712253427888347617262863684164554346645114134562344212277542684237512128172245131452468283458748258256132852455167312721734667553235545786617325645784663181453446116646313215478834381651413657834668888376431174523655456723573828415211723837376312857336275446384812853842741472336756571635131127873864217252152437173722834113581474754671545645524483382462627462727372883267688738135373242557736231421636215275758356337471833553655688125681866762262621673634861181618337423666553672618678236726873416314372813861212745726417665123623217867352147823584782568776118185753248853741261341563122728374538744645631713417122433262761223217248778426736337477461544556744335763622464666262814668272465755343372187452878648223281834521722128285641885436454633736855884612381732871238732364614185355623557637786425485522653628845277118863423164371718641623674788218263514476812842575623871131857464685243588672415667822635471234463546586562362835317561674464711865325847742515745558234661152745364535868286671886416744858781834374877587222812353816388847637762328775354422543584881474827615884577714212846353642756245615262275162143343548723657478841123317412625616861528884438371188178837165286551323262371328375753743515735576578415333132556112172113675781528165368667524781867775113383125838262617527686651548121156865227642822761238612723375151654236616767652345313244578675516881257884736151356532655538771468551846436183774517363585561573118284533318277687432441685753233123163483127747357413263444736788613822821765656116384245377157535787685463518366163176622276616355134337585122488664182221857274746361786885241766266154241167217712571777467445238434825888411351165253865426888748347516444438546638186334824564255815626161571854821543812155262638882657372477565286586757462244713875324537155274718242858261522515714736617823313884278663734552283576847636634683122874837178388656147577741216477343646255752673186412383171688223554845121248525853652156185826848138517328741183368261746417767662682221151261283626481137575442371187764851576547254864733334567264152217832673218666745178182825486667161338545563747152832628365182517637288716752253425287721881241661286147678485416175464238253881675376624664374578782375257256884528252525524648534752447251558662673812164587456812743635676324477435642187513254145117543374387232613468388373456554125313337222148453357846272544542232432858734666662426112832373416311513276521773835313165314624142662171318376356547754481438831113862618514148681235362122871652125272718213648737155234387451252446636544575258151244373287771885257578716428375111445322716855246815573284778381882218376542153724138328486433288818814564441727882584431743728611567684217256645561524564526574217866883467148363324477818254545318617642226718112255613335758151676457638816777688861218455426275786661322175415488288231343157546373412218751866872582536537353181186865826624163328242712617563277875243762377266172837287525511465678166751377885288564433683781354832264213812276744384238218212381217534785671354458563488171728786355735864881412168864873851518212641346344844227625218164722437563616486487876447835747821761627554384611164715567643514287326662267288816347884735646762551234417386273577344476852384256348476275753727612156422212333826752246673661437313112822642144486611848713823353353412374577883351824585753178122133366322771113264324418774446541443265444532517847174832166637348653867186746417215568466715318232434711484731641866474251371854614274283376347481747834858125175511588834335645736328662273442568538387377752184622558444688842464188737671756825742775222675833138678247288752433227481367837881855561356812122118748573332721473131122423384484345881881162726225786115131246341835534587478617354635245855558511268388144121545668758442586557331751364632753128515518368181471565518172826285245653381856614662337282184418881236553225776858748537714842716831343264728121185825415556616465181876458126233475882247477272756554255767147475842733571114241852177534415344515687126683714761165584545236573123581858346384166523676286525884753858741571573815271566237427861255716734558746132658377786673465855637654315815742376222581734388528184284652832666157314853353222731246372135318874712817314533312483781182288256337435825135162387666473583177718327728883581438256581821337768317178648158717384151642741327747523587161641478744525668487778642667144114627668722144184778418243846124586123862766262228156171142753362561466644867158662346142284472345352876168745727628131821337257651727222756115567476545277651525373151346127662275581174751863111413224825357433678687743831216714735227621234188134728117785246528237668648758358717475834444113675557288235667325153555651766145361756738866488862333758543247642423186184431126845312253544117721288785815817688385211134482371858518115363688577785715822748812763441166145854441687358431222164328173676848183767553466275383581488634185864847681117433637644778328478845236565573182862435771718456322532288453423626758414182833635558647288537568353853368458787454887424174732433627722664224128577136484574686168516371682261728388817156533281727542272365144134884688148335176487625523133536875125186581165415777438312662835237484251836434128422428575447162562854144464735774576522756331177843314326761115461272423743756247445576333833265251868841376857668236558428435622324328313688446335642388283454382783331351261558181828515722847287227358846153637781447188881418837663354836861725551831685636336258255345818641353353172622852673667888286151283585754626873656174541561763557863558687845817573637654347613161473312115483722152726837354362115316177324665572631473724341147638116845873536361368356671482335246686885215842537234768825117383553357838188258662755616324714161112455154846874765315584165147717851253327613158246715368444324776768162548724447625827753742831614672785646672221612284248342117433523243572688631545851454652115133824362211141711466228544722821322658861645332467746661718612741672537358582435311546537288338383126823562624812855374681384271582844217838436272716873822311338221311284716424362156347245344763783413558287322276727347843375662678534513182321513834784183355473346663673814862862841428622358351637865353458213314113874778372451747443755462613124478424153257348153185343561457755383718684425482411831754781642772227686815415545315452547362426318675465616237465171715637576266141556724445877453514646282817528344185246612254565818334475313747327538768182155226755214683176567337865442354775126644711177732332228633554817111774252338713143722675647187818184176218746717188224474254654321687875525386663355381776817136153551613318666152287745136535312327184334817661541334513763453675172274471824868667728212427475551648284845118865424884115741113264258324824467116415475658666654145166438575143658257731464131214727232645856272717656663743754785664448132328516868615675126463641154634555275868415561267775241722855312828273773346121867452231335566635211477473152147574464566721478666625221286366732277585166172657486627637135625513432835284468715434864766115665567527117541287412718253561283331278571342422863141635888665117675534335474231431214658636286161374627822344354162447376666833157188872662867365215813666838335744688566724221647885838523222686832475227341871771148612881238422666255641444488283251128113112865356782436845832844545525526661783548788184546686157378537862627572522436557777561187627222374118357117753317654621283711685765662278821852624256342228388733468286158741828415681728714387582521275766865862242881461856423564258416168356546635378244476718232767444476731264767672786166655438271687437241524157337834351513137283616432253655577347334471484221547281172457863454787813148136142737536747384336676136411811674467287732352772228833341131158413832772617853144637662762837444714577755222523186468642585848471745687325267533776741656257785546776227681423482242817584351865343862312458768571767387623478821864114725753411454274623557215363441732466477584678141863684381234324437765682658621427657254877116115783137261283342713688146543741486688273253453232561532773764863648326648555877114724813786254224726256122616286367735774511588561875584752441764343731147666534377547181784577812852656488747846611265855311666823175434325711547252746144216767773376474861624416557868178436812216745817676777424862776778267887348738384873781777662321816315736661366761615651527626667115674327855337858534653285862338467868462154456171255534626527564832574641783482473636715267871474238663448785513846524116562318688656666545213556725885213331361833315851546588241735143876674374561763886253146728174358627153271266226818223851558652623588416581823373211166288752834348886326365581562674163518717713788531824243286832484455886474731378132456463265875476176375757783766612355563236375148777134471736184838453646471855531383446188758757784237562526766716647454881775334656211138725283534465432426521172468163824231274587731648311865273275247266385321654425152145333227733356845243325366748641241462325246718133122555818764585542741825613315676738438376433854737881137165533876426424754218683148722528747185446154241537483467346268123428134411722834378686577381762722621222718663182666884621457345424286377341521474173212327752463888387138251885468656788342448435454733727524627683448138374786381451432348422786717311215575872636665561268327684472512231385257782114132838488414664754553165412613772645572232558542166361527748683857123382447118875223841622251523831821242628516288278247124746148738713664534323831722673157437416347221574613815653522584836643137856171142347578542656246481411352521585436845815642423762817513735771134674362415556811657527561645724783326137681141126437774555137523522334253254833563151463673111433552637121228145347484628586638841714573251155388784236772452316474518424536135615288476688881388458367336111341851464714763783334831638416431282848488435412312611433173683413513222754413331161223276456786624145722337322335844853664811373757846748662554254546478876125157552345812634721362576574855462283126564447828523742456548685572744516612411132125822545412665818836687514577785174787118272438183358116565115518155566441384151883861384884152637374888185286286253282557121883327474473558845557567588852151188436741756757473216626223384188688373465747545543865284183588268153418641412625113382311337241656663647454633831731651484268824582432867811351348425531857418864676561366183684632854845456128576311116723653183877148674385841632448727253232421884758858258288113682413775684673738472484171852821767146323751211757654123287357334215446678466212164276455157782767478754761487384778285486346121868422888517314743462527317527661222167834464828723661282158476564472341784375836211381453117635278814653276631156275787788233616367643667311123486645482412343178554526826685832686815253357226267286878357747877368442743555248624423354815483286742625671762334775676734361368823642215852282536712274577562433486624276115858686412558423626565834128781482832672744453725147647751731431338486442583745345271832674734466373777534817113672375523653116712748688751556585731872847814551645362346113762111167838621256886484328881733631713386335811285814333373866816183488622262787457886385258421675174843231826657224513184635614372574756428662571837816166617626531116628385521271866571317678842118472126337143641365153887582651367176476872342844456745581446444858363857688574615371887817317461886352132546816541381786237164162356535481151674721458148542125752471121122751837164847588767343256867846222721524678415172763747242182374552321675285668526467872787875442338464881237246454353537436646461463532652566213344554867587845588843777834322212655127577442517557436335354265417871434248165771634866568676223171621284116555678172417476665838816826174718144542758383538628675144423861464725661366521288234735246134146435863688427144823156572352366875548575137717361566821726548714134173382172768585254835356837346725612815258117383383827212513341522628835713613637886617464668431618318788726786675323656284143774721666328884358451736143224518551624125825827763815226418556472251653821113788156364675336174866838276387374255458836426732378677516216631625866751572852258626544331581532224516534436228277542635471441328776281311837546467641776586528153768788562323661482365875516213288146683584831671513752322683522583757126576314321313484351322431423232658376475225435532658863615134758784138652861423287242263332727467536518385414483864271422353165538376725833467465741548364377881885567761674526751775618734684673388643421748424288468328677225422186184778681811723644323281313527777365241887568814143158288427815613883873741417813714721432228758745741174732572433622651543587267348426756872735286838174114527358286543811181668137116227365167554324514321353853734215838215132168481888534526865376846567137834478547167236823552823565147787743456364753455467225478153538378535838825327564383547443353282225418411133758875288148165361552188635315341835425388883485222881751487122272634858724761442542336132741128252254716858114337456166842128112787364661676618215827678472157347634717865213224472311855631521384745617838242588481543122774811455575467883728334475357245633767386531486464117226722542715648247417547755362143435245483136847457328185387413542666373575846683234211381716737181478616887537857134641422164568577417714666528823183112227332381647237681423372377587775377564247836486415414338155484627245655427854315725844711426487828444685247674265426716528225623537654378616288732128736448677146718813774263245453316117645446784644837355335567514362635346172446426828243468726321584725483684113664555782571272382431575812163346462857712588725638373541657657385257818764426141575438514846443154722418857333871431447513246228662868434356222855165533727235762825568151442547622375663153636587252627752826478673728722252777353534366267476822313874666821656515183616125426553717875374311166336564866418751117586721252827642367564262725585354633755146427522134558481811415575532133441818212334238831842156628438463431447336651641481266717422155167718583854675322418156817668875652372266612841272787475723711342268363614887176752666228488281414141161466835327574265772381487757565662165583317434112342847784556283186345646485883783657487458747224747178327575761135535846827418744342341215342421871265824364318441242322756685453536725827348871614716687123564877235727627616334725171553716864787168746664117545651765756454583316847511111722484442684436785783276846114753188413362672326565771544842887383211144862614466125138181881676156137534315317166278257824172657132751877277685318782683152824787543337156825213188337244813478713136517265476372275755255281276256517384532866251336723448224748586376326213578527868873882863527323654362328847644612681554713614868163211285536886732486877214362368255332884552234144638126543447853586452767856152284113627757524741272468732546625733164547368423431344833173455645128261817548758554646522864217676683743283145111142614557177553272436443427825688566822381742151818213554323472445684833564751446367371712751662711888224668313646574635767611481476168412113374118267425243872186461126327222672514343536782662118126415834283328721238528655556134772164471477468143112167531884177242356415218724734187556516511185332638821768857337171417235234733666554311216685461226831451513778233233314663371118753757718653643655856134428225161144472157387551226528557541126727232336653524616357821761542821343565827766386888452485528411482455616474778535461371432838748871527236211834447565675578454128131554742834377712336874586884867128114884377857162626775265532481162156482874457581847452871788586417726822153778763325174233788188861367244233175166672651618525463265141563446654172224384842555442154271184756265854353444566112877115111246553655251282514372251857127218565537128737185584418555334724661832413376755162527564654136561338468664421624765388324785448442488153264783246762314473684518714616624163186634861428477584475523371657666141283214148588613364558635467767777218378715473628732662827685541121845835531787447325516443563675378837247887718541257517455773326826487377624675362677531178872678888774256672827683516525521347344723247874132417728141262313717271472135488346178884176817374663776571288721425121178768264647676415131172721387486841564134818511724782631368265531286516166184666715547672385748838385868337711477642271318551514131383733524338281414415866677657647637156578265813414517263617478852667482167565565623446727236728183487362737475824868516488672647554481568174376664382842815766383637752648234867817762532115435465847177662235585367221187342457648557182264633838747517448254127641148336668638368221851876355888818782265687534546638484686276664624586766588648178827177765148566836511338714717466372627832785278546536423553116684756351488874537772288412472247381625432188428863778688844738265334546743382887263113666211633263376132837127531712174455237222446728172753213354238574264673484162841725143448553477584638835143216385465761683881346768433834751276633266835784535363875768832848518585755434484177875538222875813433127327763762566288167363531773741243528862235742427822261235166251428816781442583145858147545231867838525561688754326826642822525418822574528263254543373262383841518327766453337788627132332332172824357563713343824784886731834285627275232536735765364113613732461777167227882478673643114354287245648261136372818264242376663253437325437132328886317283568454784625768342563268468248463417583825318243866871736427454365731283724635688486476637534531278888241371541445881568878843626616286882853617886828817867741577716386453631275476474732373341181426232182171637133273122322881648322537625354254253451258427278177232668714386712624745474382761551323311681146718753481486664388831337454157715687117653471776476578882114755124785361515353882625265475431148588622478814311137625234473273783634568431536317166658663157147377435864886426731463436613576174724827476785267821321657876374423772521755373761862614582285337565724411114887652522877257686224783224772372756115363778224846423714853157848246644177511614313558615571464185668734684635753684625274882387864445771844278455886225511411254315753823832874134722143288765363754126318264344685861745733321382661367371615744317172625827644521253842178251381215337581155163288574458144171787381121722838328234345241317484228881173362813483477162188517586584652855742247585388168685545861336182572456323523485852566661753268886733532778787151227551582818764254576462316713781345315553111533551884184762652775373517528337584678168216178757152373734733378624686517873755262416756738727675724542138872518455181778632266747863233731887834413177121836577462375657454313324337111781247674878142853874325315785864557183282113268233632863442615127637843211486118473535446624235885658668778476174114358821888284738616341787563533157821571515675523817883516761263632758466632884875642613348133812656351133388474528775671544542426723733238767338814268384424353144126418356676346651656168282465864612316832365137768235152817585533658123258428285128381472317431716767684685672858475584681243221756333363811785431881438448757414244576437276426526225636678438451774387112351162681854533432177142461862664762181183242155354734571634511577647423343458151134577321346415748277222534135714231652482182346831658562171257641663812277128362444811764786661434685471342778188186263328152785352415481677257753545577483667884641381328721366522238567582457422526325714831547631374731845675516837524817522454478558621884415785323761233168276111662666277454875333445648233834667741268111265687818231753723271532657225333818465358482378357427543162385253181333733836862471884212416633812631821874542455545662463242117862161235288135558122855848158816711484178878244123375468441137428255533232242311514642355135866558178412272118631282316428113368846774662762482227347588286583184477844187847658578315731551468776661746611165681377762886548587851614362445624443381155728738282362766662248341648352833573412214282727548261284788888844752142257318751464453883588251245421613113188632133483448425445674424624638218473482742744847273525854433318256266346572573181428624124325816623124662486713524473854856254785787352217457716842217368172141685272388141582373568816562665442828726681756554567537274152663562544283835561624466255367214251363372662377848456147565152466263587332461232767162885181213538555478573665742325422877568838584218754181642564262836784447363454846355476341427621455586884311384636844575536354161326126426526876562635358874457278876235876244567647343787814637326116382876131562485645546525424775511618177134361514638486637176637614367142375383765474144553773521647533456576831167543654648862143755661435175288514576622514425651837136312771748883634485814475264537837216851727251386853851544164763351856688272717268452266544627813164441125213828762178483432388256311268671138672855562525311386886623657321286152668587128125775146167711586258283142544435868244447334184626335518661768846851165785315443163574256382382583381741476522874318332721518665182145778511385486385537587255431545681611436143372885314286431551178751858333537436564154384318477168625655677227474855345675384181638811447856712783487833252537362858164566216173128878282124827723726263563337341888775876148732771464326311231231714311112651747875326124637726564681657724567433852333683145462736768317665217261351236517644434271667225633218815534371125454547225136566754424677613714326431852452725261373741217255557781876788541134252182723637254538384663524336418578761781325345365612631164412838776552654874527648872154155755714156382451767548246812477668311623328164211635525323256633551673875787765538281378364137881128173322718457844742635247514276274472353215118478313574444567246254171367547452157416721764644138234237678182386114476533556156661864638337537317643162337614477161213143583388731737827487483265756251226123165147511315742738424186774286588168436226462652388468157573788755715187734611735473357762752614345751234652414648861427581461762113132267477542435267883816658421611527462725135648185186428422157221553744124647526233541178885666633663264238651151814127814541771246431541526327425474342365453167471442253782383847342477871383616456543888627127448676245742212844617554435817457476167352172863181555815562814753128842128823387344541656847321332823185674674567577654128522542413718147572838457881312834655815883767323573177577574464721111555512431357563471837163424421246413516348112141218616558562672873344667248451131157723475211487688156577288263875624657777874643625841455442338567884677266617646211843446646283188227842378618438281434265584458478748637517427184146224668725438323346684313722283564517586636634138468886235151377448387637387761614361644245363226613236653418246563544637222513371683855215281524474813635885828558545233427268223324656722461136857242183867458477748286334444711524488453287713284764464874855874174635612573568845388647241445723873453662625521211774568311787243154412361837128614731762447838244584432172584452544381285874768834433342281613434858168234617266611811226754786387855547874311137687716152447747631775343461274143471783117577327115235443257557566253531875776544653366383115528842814818443757233536866343455451541537142437727837631825837533357117778687278833413552154417713211685534443116853318471437828711765337433733134125631774532528515115545787757331583267381553168645816483247632757775512326531254745282472845781567775826541655711126254125582357633334855877367466648252462514866316463562487781265247855612115482217462511155768143748875783333523166286752438114454842277427348346852347457157153224438742572523867718221176558561661655473311515145163131446388136288717738785111563546371577581225786668525733848264588647416188665413132211562457416432247854437137886727744178786231124461828388258537372476126646418853612641522264168816675151686353224375816284367358586288735522531638236515612534153478362581321484876544775138535578473633435561867388666348818123161311353416563388835561227631137637761612434464327562673153222585167115857451483826772284465385788366758355171862656736238458617235877771377172313853375387755674768226842645544548734853435863426117688531774234276568823576537714374286862352768223275484624284537824317513378317576723754271341717788545771666285474751747547574164525281247824462714755318634231388818188477885743387528258542371377247783653733133872587453681475818645571554736221348672816654712733881143135614647313164745836171166641841272222153136217666134638113164772183764777484232882135832827383263246631175267354267637881481623637356332857454877427366326854324656451543148143744347861336755881532555451152313436338133324713423647881683733643363366514641183156856575865838333266783367346341812361824174167182676164767288858783474752825334183766823418385364578664526225632527318351255778816871842361884752558372886544445781785687647624878876163324437617743323246828124662135467816474758256232513511677571184545278362254777834845178434543663752475657742215666774684725672166721446237445563756885366735138377423712613231425224327117362818617585753175684213314724522417148887144347616183884462538366271136511542463648147472315338853533373143356221134548748868824844272273177686716722685387256342638814828458135717547734658171243788871883715443214657228126117887883677837168156133745754232881445474346728725424767811838187713447462123681718243134783662552583831117166224747127587455371586571257162743776684514151584323168674287338217546187481125526521458564453371635414741828461788815437761755885435578662275331322454817181378787346878684736837741837313312871462158688177647222362618118783841623572275125444632412312887348321245151363826341457385544165864657254281447768574428834187381656468874588173831148837817734518723417836712682755355756388621562818687147214451652344864842567425145555444458535755752813138642226767113444167218682578853434545882657688116574558624561523844431565435122661773741367128474527542155353288367228345144642261621736137447142554154365745623381463642556151864178425556877277232263187613486715713135624283572458657435472267425628356376215142527457565488231368285678361575643258872221181736632881884842473764328531316346825114781242186133535445245768226784873854761464783884417155574124412667251284378368626588723225655483874864157175654471357671712152146513827783165213315734725186712458431871386474764144525672133275787872567825862473484638833337714352525377471385534717617681276563485171438567132212547377182755214462412134837614867465762814572587448642282562825452644512121278881561441517468662713863263376346868114231543511482657761665451146654167723144751135468535642716277644424414871578183116276437645411522162251725782153477272855183255133844623862144152831625832327721762341534447724616445836264625453673386716677615458628182463125848878656381762466845714152828424472144343438634134575172743752761661115125675155563247178365522275353535718425847832431334852168662134212243314264426221312478116325436527545663171463288336817686245567182655534376685285875725416663467411864117633753421118628375318741813111738722163731762466653547334242274263141481436273547863383673717882386113146631574166156335372277424784184636355768565765163882641278274626448685547182558545376454873151465334875454366332761166532836678373746878123715658363822775141145878677255543717441613877158753447475812233411851872835322283287813281163324365164224455345652223217215413516224383727142564453663271336457165265416217234576513432562366671383734222835158771628872668136133422484654266714776431616516871277134581876256612855825342616684117236222717278464853154824551632444763124547444517473742866148754817261231132243586571644147188278666688758644883357172583353347215541276157524558864728222245133286315676448754456548431611811886324473283147271814453574342141663117134317723774835344768878615623433823412658752385638384364733243285132276753577227757272332623138243356112466858635228153734137852854261466753483825721781362133727845157484343582143828643726165556228838163127213254228281863138717462367246163377466382148427868715538821686582448144355756653581724423443718823577528765147166225236547425476715333211774587818512855364823258672618653713561521363511187874747678244532548266384352326225255184577617858465262284485214386885348778262275683578887215534281322311834212677583472858513682681527581517645261478675582467386445754572325437576514631576323824566124746186751462585551752241566237328828514627536153147758573766314316834862625472483745463658376476176263341558465618242226713452735413344466373414185313674836715326247355558881818216574674322853347261335375343853577642134385538143172316717683626472685624256227135335113743774223358427513335745448616846875314335844715717177628388574848168562166226717223755671285358263171864676866477663787824445433742547563268574446485784735447672433886273647147757136476822756661656342366147823483736438372548612845278444713252185747432586424575758384752166243676226463674718344271355468758127415218177255151278364527413172727118113535182125813155562778622432418657857165626188352436468317257771675258732112836246753471762341425882861647546731272126213414242412285338773432248452237268553783828428384316536533322238672632628332266264533376277417146218347867654167521855234661565783386274855268872673866331176563717276278652621455452175773281446355663215447271635811475484115611234252765382464122651256364811624246183672784756128644177167216322876212151545817748846651231858654344421541732512516847652446828318551574254175282452387138481382244858451755865776176485435232352457353115568146715121664876678831423783841721267661713852235225854283384836158583544535657846582877814417661325641681345735452411287687135764437467487672833764851771351436736343653586345637184137724764524748221138662834711828782748357443321134166261321818845238733263565268342135636534437627351574886474825788462774224652477235682111583242684862141115354144373573648524651753537638362463761238281118275226578858556381537656632413337721534236272576341613445672675466181528314222845823834158326763268736436848231488442756688442428367522325784888444528385715814732484582647787637281676864434574721735718578148834663156468736864857434453824576841355558212417881741355227565867858222133843448274265687214466733412572845876714827554832177637565433577763453521443736831461286338654432474615441428678423513243777382135555716418473435773164822641524741126667313553781764255435257532241516114456616373418828434854665633113545275474422113836272355785185126585213652858827536337714871572347568414658542152484232338484388142888154177874728813146672212775644555824427851842753277465244378734476434371145336242148531167546855357786551671811262135633154755347783248174174752132381215571772532553561834821778818185651485528475638482888564262132353483622661311748815532145325411726778153741522582151822253664753481113146185222176275381357418658755161436158767543142775385256783465228872464278251144233658145842533277835424836811124485166557721788652281351832544671876512371166812722524666831355841562751563233472243671338134535687744486476721642568513226346415346383611171114362818826311857248778758854532638428427747831355311772334476541562118774444445663616846382126663848585545648373243814238382865825575616367765186146266716168232746423611484663344637325827681762273541355623653876627875745888627647764313374633315683367827856331223321245668868135468837324656345533344811763776871543372643166286432528556811385451344524877317826165681352157683687745381126425282367168864611648124344353185574377784777227372284325421626732338625281822416382731332868358453124241287118337277267134858865867187274551552168453255652317712377683754868133647863415235123811676157421124478372373715124862648322633743341845263111313366531133815385281144557537658585245828821125642445757622156113384766457458681734177628721287577631365677457411575346826115431883171655586816151355624322534538836563128728282387468517661173563388617556533622268721543322375515272687321558765654365366184622718165416223188332435853668611877545282514773423356722775652421262652817353314636378263435666372533371276524657143538567214531358387472181465836758726533656678327125335148588374826378551888826688887288125823412131683758347776373282661362363543327254158786331521487471617632821745727766181217326665713235437467658185712438332684245158667112734444171714733588173288722228163423487577622577556742424583516418457362214168871264472512428268771224445527113231544554463381268356787848421741461723858345867463713674686466463222124118562175466331718115428432543611233441576776854734165175215266751252326615456731214467158643137624845572127787575538435158357131231447621115524143856253145558577623544221768873245556432184857386541143726672685852682712754683324177856634762163838265322686627273678418586318688573225154432811274175615832867786174376685876551138688883746325583137456821646751488445428147514863718267242874823536165645513166117824445611168827312445182367665137568618462164852112662864437131454884832234386186334121234887613218283173562752574553642631211271116171387473337341374424231328836384423731238551357681111812761188217582264836823588566256313478188818185255527564476118416644323311221412663276635112842573125115684641573812532632832786754835285536385675717667732676458752142685184558618263123751283245428555754276717632613148765175587241725813584134212513178354573114143334658752878688864511825836316337363348183863558616465857257877674115674877818876221666288684462538167252823666178135442372334274252874745262566178321528627733348114474662525823552661242684128686615247186287541476467546615472113386253778313857361784465618716616423457357354156736348566247875286448375776752532865572383642267872565153337252428563783667582358116617117834766683668116425557267835415358432161144141353577311254311846471656431732533771621786727527253788582342112378422251843461873262772666563662673788551456542864743678846311468727431475741814475354327644752681243352832582616742238614258888128824764834751444637585677346245616274243328354724344577313173254837352374328367761727628877811413888234552255682671523271572578868452863185665518621535653577475386274251683223275885432471384481215322386667853243655411238375363885631464851832216457136655388678758565137132727528833618817763315268463243834445445622512185435523556841233244478141367246645817758423583576835516681414745185477438455463263483653351412812458863424162154453485631462538745738671754856158418847772815778138857648715427167137515663822472466712773882618162888253524433546837763732868746615427636248251858333216411154435633213877514558557768275781311463483742357374735673367856856181848883135554813277425216562867831426485847318637548736553346888517216712213243866541255255722462358688826841786557244436877734626585257847134446261561737626178615131422372723415233826677153133286334233462373815356834431618687837422428556544176438878525244644485334758214327868533454638781318418574565514286155367541226224735771387457864548875685714283672751746383676111687234464574717184647434312878145537865134272171122555875774654367762341357433284458814288234631114317831751161215163272162434211331781876553564247456363173263383163227473716822637121837822241214283636617466515817117588671466456728476873544112527844577274836314228527832818136531855774847265654512355256736488552736276514148586783877357114638817286744837844224528122528882447353614716652771837781648514657241572652484262722362433873457838146721725218481327431328521111125466145655564383113731353464232767273715357447455685731737251144838818112816457576136211885618763638335583815364663484454882577557257417654381367663118264812754238168442862814442728336736668188166616784582783864567326671366233483243368247412865356682687362226547844455312455157326283171712233176238625862147845665531587421425688557224135425142282822663361541413871453552762157841164862635643637643688542747617415713643816241874741415345165513751634822685753814641265433651833185483538624161442524764638632887144157636784814126511138618568448525474134124286523526553516256214328773752871342561825846527845436422667753576413212413735535748286333775184445632568743362446332154817517558772818874777633855237284625567413613267355137831211885464677137158346168347741757516721288867761465663514477233544326112854481537212237543453423525773147287847665448814216254462651124434827752366354345656164348321454753337534836362784512585484241582532344547261426746512252362887241842115528262715262356281146867528738182814682315222537643135557432486387434622343216636836152882612117451873176466631481215452388488341346322857632441467663483312844734455527382283848663828851221284586248145835225773174666654633783474385757848574553526377352632646666227672346783655443375228148626185464355132313717213722325354554766213413533811481462561753325362682583555716552658822567865458634854215356617864433681246478352714274721157845484733716243247124413541255126255515846367542811457362484686328668234756217468111817717874215278752213531467344335775568581715677567831864488888136353322188563371778845142836811235526436358347332332586786146265677886322726651548715454135348864433162343677438176527682335838363675771155585283852432521714446661328821256642684543315443783228811461482225485415733377333544232878587716812253616834467677712116165413211473453123258887765675842553571677521882324813351875446382326344114758141117431284318884236751836123174284584623158828443684757255154448588867848832843222666178655765622324667658553735568343328455687875453875736221444337555267716284716614377166761754376511342657717434868435118754273533237311771384686631827783372332644144128648284424575834233162283314716477853315421824446311228558616811453754813184114415434146513313148485485651762318422823271467748347483638722513552413637762515411856321357478412342274122743453245843566174885625844425565472415851873677744315516844262778885252755224584185312516171834483768554232587663284421688478787264136511666288415826886531411834143754487726767851655377235727338362722553835782464162471133552188331473462122737882615778732116838644877241338725886334224324126647115828527561235558841478447713523772731356846468163767612588527515745467767574577554382152164421615723515124562884324525383345412174111313636525623135364365525781756477647466534717142468681865821668241546261421222435315183571627388351144175767117517166831167587231312318853354122437737515162574572673338532613443182743445561625748743355485446746631532857126217252187614347188337487373745533315224551872447371785571861271271658724818751547383847812686712577458826787428857341616876526772224675132874578463141735456784123482682851314722232865427117265522487641372768842218447824342868715648374456137827552421554626387727756863562133885737743821546187741233156351621888644586656823766488782486528525275615846348573332877186448156572713484137683826171558711726232422422731311688866128611647137776128867187654527878856527181874273248615567588487843362671738854237287622571176871764642775371681271622746544217872425384787567643465358821112516417844183545476474821577545455186466836786412241638383726353528865638865625518238134475727641637766454832248168872476628488433878272544458465338234766413432375384228661274416176463771623527226238753872377546751284762734515387864838624577864544137366623823766268741255627162142567716288235728388225677252335248636452365527457465681212322536261715188341153465645353554614131176356772856714434666882138538216838677434111254327876685515286585423356644428747585865233743162321643876425861781456566727175823647813342818585681124362771132414764715186553272858855241341241533123573844238124171511582615335687626627231248347867837755384533312663453566557354724381485848845113454366783574665712726117883261172528287523871256317115462688716855544185451273771357884261116568183218715521415141816121182645345562513635443853644445412375866231441471874878313343554687255565571325324418381332577844438176634466164212632621477248582515848872357768537461425816836653316712137871411844183353113667618186366654464565141376376611261146363815448515166764418736741524247247352218473761877451242213387178514481118382146783514681686514422467536162346585844884653371478632275788683357613168132168777651848285154151837884414561458231881778472557217866116464276615465458157361781557365662786566168324286684671416718366255778275274311638764714455458742338814287588522287675787814877677535641568132857473162768823777212646783462554113365222121458376121686633857335352761672674372878828588552454878753781665661857526446117313481333678413678642284844224145172271228151428143268228641215421585666247856752674516266354563527645336232567643268453275332551432635414562112885541838158324834286334761867246781443455347541531751346131724551612614328661423218388613751813633861353835844261761647683453633681775665331624481432887283253537276711134262216821775585572511135775576558776547225642211121731367583258233746355588425187737832372566445486223633342847431884123275581748536561411665125215277163638774633176784851538716334647572555588864543645755336838181827671236773717277453883353258322778763547738216128114438622523387344265818738232138248267185832756848431373863773316771258758884274284283251435632176283774634758344454761471651537214158232574177331667482226365756268778617773625658187321513758242221277553874425482871812786671887676447733745241348486576854511467178522873187222766522776844872466388276555347134443526822376223722316858253833166135474522781132863256277231414764123431528583458472756576374732848273742461775431315633367622415484375437266426423676171513751358486515483112653687462223487181146314814324256225832251151861662467857856162471141825137784467664136823536464235287652136243116128572711144254771315185718716575513773554676161182381477155774834278232581866142367126878566556744324548543846743542318723245475577143667823286257844683863122671541514365282877377747634115271884642148364522821751334331527674148328853125876828643673741668678372346545643115166842285353727423646157238216311811281432674132355662572413138681725827173155381864778688858535226718324681735578836783448113522813541561358767431776131882821127867135657314724783212361123121527476828356537886214487211478531865337831574348768765675381213815415317856357214757375512533523721322214516326462268426545864846147764284883238126624475842483666441568127447158322426126836283514351338744655354116615117483624156741734856472582238315242478554248788844251325285736442255212385362735842548238712213838526643831728374238122168871261782563766444447432344212285378168725258461572324554672416615662658732478436368682236876643271123586741454276613485288451448541716251383366117357463477433153143427544572842737241285118814275224648153254487778587254742365457728432626733371246133217382836475137366628147767441651251851368767312163537311225766878645662348745848813311483578833814461362745485383373338273746736241763827234738157146862346831244338581111173657463731122774785885721572386553165458161817175644783721641883315717471572186221561822655652573238667783858577314483257483627516564151445363614218582847868738556668668866843151875748543276737454387875578572245781414627117824123817443181222461512571441247318511114371118355163786832622543261272428135636831228768611852368357165678217581217253133725118845447612283823131523422711361232342718125816776788741877812185788178147538823563443312688865144128528448832855816216166838431513534235238885573268763165125273185578688687743628666864243726733342821456386268285888828267847352441283772415185272174666562354267844238146345531685663185372614288377852353815632268174623453848444316232472645733437765267233764314884212163225136778456378363451828318213582214457364618682647686687624534611743641726646826786225884826177238164143727118754566722723528812827883234842586641473661673541487284226277417767813746815855665285563287688476834374844236663378435422381785288534887112445733675887183273483812461266122562586155554832877737861657166888148625266636524387753887412681611363455288856143537777425551331364276715467163382845377741834666755442677552787543277662632758414525781345172815884656586768378417556577753824363345655318847548312138422771216236763314354727345527268846834644421327624285686217174675177423521353134218468285664733347758611736145136164551226681584468315178358732245567278725571824414178512554474687423114358126434582253375474554365333635236865485522515224375677812244756151656377415687132388256871153464541875786136715132627126688145266251446141381861217616345221436723853224854526337265781462471752614186572514843751845648757543711271415636631663466837874484465451261414176721157427273522855267785816111453565166775714868343138688881142885482856134481122432351826581776483357851466277186283872541388535851626421114514288254325314863154286415415833843537165563821333418158366721274247851264566365266148165754443854428216661853571355738312356328621512834536571375558555777426345115858473236362526447624422125633887745725223331674513855137356656417676384237152213464847374745155884281328175886248313217272483143137156634234424452432225822325284161631753781313245864565665854457182163158258161364681853127251136741223117612745364836848462245536545725653516181254555268173535886434566726285272343721727147333536684343657876717158138513143463787732157852338142625545525753118772654228428878251372833275186842724332834782764513753761378671432551644111177417444627723451468325486463231877373454214448255183382515737673422656776237714121325263753321533418273513354453184676628842162112826847248355561517371342247328167658243175382358766456542131646573587565115887871286822735788434443881477666232341142771356868324311127752231465135824126464412548527113826131341738811547675715756536586888523563453226172238774514853528267484346638134854782843338356864674775547217218648838738435127553531782363688354224787737841465485534352336352441788361132747173516143762214415184687656742348661131827234335812176423213383831633681471811261835676513813813863842158626744516132383644532525778542524854815667563837851611357822141535133266133473747825642138343363576768443441632284455568261556512284287133766175137555262287558444831711687453665537142832643283343873152487731873754546372666652858335142424578524874323145772564566641858114836884473376555328632165731437777546654858315743373578233872761572847113834275213432145388265884245855828433541854764864857544668731432135386447432884478814337321351538638131573672675666718617434153185888514842626854542262112176183553221564445111162857125784284558431487838448222417215454861322765825417328811241536162225227414663218612587368827682574276676143161831756573572412536624378654557557333887813224143714812834188725545512158461471727278168567426672817124857682664552265178531365155857823678853878783852722817421663435464155323858252311262178156416623127326623235436443322383811662841463715635367573511331681724677673133215788523563363432171544123375573757371613841874142662131158376527155125478464535312574576174313217426834561681221865481717845255157356774428532235744422315786153485264275235155515643741378774184327435628222377843833832416876177727171663886757611111856522328662145223168621582362853674463416222731646375381526328644782783574424185723828162418141425311528532637266268146873457281676735367537825518273767278585234814541151758171688863442167681182523278331848117862773871751735677662565666263126314568312384837485522244862333851176527724724351722616258873835611467711877173131381566431481857581442416814226313166475474378115255165656744245557783411535515637331863357442654248446251426658478243434267114124135741478254753673626111871383312745871863345273542258816135866151325412412836772163864564226533261672522414188853758273564324231867176887114151142638845144263261645444822876576748484668173166247457818687455616643778457652142776634584116376827383847374574632182432582728576176367763782322137341466357873672175768147861641474187623311665463525581344118154163715735788814855522313414175487678252417467761182878236234444312783641187541518684317187432838667613727562533268686285525365283163112757671664513228541164383566567624548326636625668443763786441372386234457728153187132171632351451748852634345512811278842264778538224354447815113271762855844583412817342748125313187753456413448611135876775173457244448785186667767835371478682565876553732468343615381148875742111723183348731687886187655235133774271161611771275852626846426484767572553682425662711581712422868423645874773148726745823134331738213666714178667357528433822585262415773381724256117856818734148858437333114531816662458843447333343646854177164481345336546846831312566862377787737157778473736656778576322182545851738643636488747752484658874178227787731166611485312647635618532176751864335844371414744314834132726771271474767418854852455868127565281287634572244248474847428735451561834152836456385745356241655768468744646878627768485661443578423467713287166548245723463632371674234514876547233712124446371325737748717568882778151412736534277828411354221185811616756221684156116288261371766784271867536148328685223251883273517665128781432362474765765741117534113653312587446724166647428278356523553763517856438751612375827646887864282683815852882626167748485387477514881585644523371761411818744554654668811438766524552652382627778823524656511858375256856785574136487451277763762873645121644727127554637425463257288766532178771616668477174876316343883787373413676382281357684375345471725126281728615636283386882116275487176768488668455385142852571126884246786421332467673737183664131444731133752818734627574751854165214726658855588862381643437482872153688671347381121784134544647824881528348137711586656122253154121132663243184743215777653535633326541861248321317745518532762183424411284773813387825544621786748358864123364311667823485475735622615776671712748631566781363542673726285373526141714581277548663555342476714428211626344755687624828264414852847661311473622581572214525516711647367474645564623548857527285758683212263788862722477238118582537817732162157845184816774341561322681867144734411781245346153151731523427461821565646841543427511333562478136684325518361563431253426625527383385456158266125131148761883488728831645258467147752718564513455358174316328134715142518156458684368386537541537288125587814731866866526341118525487656546531324516368564664323838664188458547515387754727841881767263727338258678234522423113678162451858765411373442543528774382514256241481485388441412341476613688418415144673384332265371526885483484865884383424527745467133362577662262261218531462814477621548313221346864836533611848326432837351342545137657687378321621424346832255655282622556557328366457152244468158731153317681383147721611157651243118386266785116555375476828843841461156646124348876172738783653486413843224355218524387333317655363324645746324375362262153684232421772156458753171763178817427321465547371735133726221761328612655875664646758737515553672553487555177553717487345582436577774348457368521168558215428674533853864387328136887875527175518482657287675688844713432246486883165851328554248635568643157444651813812566552522244628882435867655523466132844127286256365553475846873653714826735227414135861435228252133531261447785257422554633327587441434238825511152264344673112846156278277687388223657773281154421145653477725446778333252354416271643542181642171864885787288773546567447423676334624881721364685143874636654487838125167611268744733312537673166665232663656611641647762338632865288323385525356822717882432687213715182551746447525165725674111472641562546251178386548114121237461126377664738467128621632622358331568142575182564533582434661581327237143642717857214457771538562154767688571166544545434554276878122582528523763237747253331134886243464885768788648535457257657348345614887577427432576188731364787325474338666278336643585578654256714784431155177428767182527814371431774575154583448715154725751881667773485844755532117271332332414773287343737187287673426545453842726652685564851428751172633823762543728336782531415224844245228474752451118763721487672176368313345471257244533242867245562557558114731524633147344137282814751437866187162463864137553624266825623378252168353736278521617388567782377582227566875716867367321661518334153568264641184582388866823525531875482532617257857841522531283846453213444321715511627542556412726744277571367485224167271732673864472816631475166461857817665663177367647453821557518111837512425223674528471513831846531452268781735877482213566221871183728665727412757778185677462132478123214812754637514632175358153655842148884454365618513117571853126386286387724852463761285257458785564211173245382345852456268747415583652633262856228464776737674783235888762137358363347621445884863433428673224721125486537687782214445174183435516742163843387528831287384617837613826776116834486526453584376624166341152611258477788148167445823227228151163787566241224555224445736733716742518838111264445755337627565851277666637722753837532183526122285563333164821221163748717578455812832214616777552846483346273773566657235774335475635658444677142477881444546645327841474723674822677378744277726311355446762853187636361687245466267717252347324173621446831564751637243477861875353887686341626458232535183171366663482782731572255375574753581254151348283247453652216643517673685686315681183465282826777615672312847266366378418656445276441637482228523841847424255638841611411638351241335766747127872648681428342435265613186585453324253785436631844425371641853871366325824377142478577658444348445164336752555451477721735365811574876522344876825417451544231788843555488747215643277843836172665827267128548274158821213827174343251637588363375346364355121251546266182625851244741343512236376664443612264875436561482521825372686653646635345867616465436652781242215766161563184437856323463446554712267781281341115736771175417757675231341875145285868644275537412524615468561788353326682755352571621756711575527515245487528747718484242811537375768114436416846782873168782276631341651111685145343326255174427428285283233444574515387513643284113328512426742388577145416625783132648881244161588183511848527527352312832118254124154648561128754145845252634216317443368877561645886213446456754584782475317142637155358682876136575331737642875686882857155425774314186452616745434386267421687785254815733414527553248151236615737878452468822377617674453184363752664571538363281637161448443635457526538163443412878178534853468837246854265123311726765837835734228811824435733521264627417656147537331771831377861483821672355175678324423211814153112168851545213645243163254235245458814165345625781213486511681835734811442663828531845263243386546844655787771734585122412432756227578137813655112224134844121438754766334511872168568553135745682645475512658462478412425655285161274642867422456367166333827175611231177718642334742462328737114187283563516336471584426466276356165418358658417236365163656173686886737464411773226374256864211486246883114278551888311864174281714561571685512681382454453748588623661735383222327123565551468137814854258562418262287748456421726373617522338825245676633834623311361788883772265638163455524724757586382246351584511713135467828658175285587644752543712448732766461856375156533673634768458516758825644326575822374432364885577248611783456628713353246345751374821886313671562556862582247836427224725773715862355272463866518877465541582285187566464761477146478624764658254872235512318714128186274511233372214631862518812527333453135461572642718155126868357514823258374245435831582345772642683725454748342731551741338568418772123466317551513387387812758784583748246852623117414315146823472632645312268246084174375877283152885283111624378784823577866877147366664385434471748757524768673276743248473587637521132526151437128183817866311732732678365418876753721567767851681765762172566828856874367253783776431237182748332131267148188146448568874128658838153424431814355713716878542442116325725715817577434222763874685886565616366122551143776242616216468631336515457432421634812572887858857368822654563346483522717384255683654476641834241583331661243322644682153116231875378853833265185232336614887683371876246533618823156484783658544633824636684576858287273215268518511531186424276685511532115645652425521233321886214367165648772634253836855124345732245761328578651853348717718472313846677215767721224752342256174338863441623462583538461345841141536547616554768183635621882885625878728562544524584725422671741447481144767331445777136784675686586217584184734373246532186365175662476585865463654417374817222778586353846253538631457528847225142476437154463335847781484273456611144825353655856412142235472722523624326642883543644567262828257121157673563783734356631533414316873752675531523848567322332638437371425547688151577126241124754377486551471456412873516575551545451113751865213462328133588351555536522377516813714327643245381824546462822578526525371361786655168423622548187758454151736582178687825768345286788214374811767744215778421638468875472542538168451147555535563262775538378253717868335887512434362772426812888775377844362411836772634385275131655221226357427665835132618727752433121626125787157331487136877187181122433578452374188713287166833844754123634723223763788563855227353732612284275228185123315584328353234318336518525237227647175662151252172743462855664285668246422236142386388485637624282272474316817216436443563144231117355373643434763274412475515216137336516521863887315444654772442375582843816385775425752831242338558651651356514153315555378478185552584386546128158675218724733155275325866348324783161823183487876524677378212351654726722658527845118817787138785843285457371741342388177552417688824531165646741676652516327774643265768111685463185312644128554441124685762314373774145156173173785335417644673136532114417416782875286836412324633714851357814813123362173824874834875122872447341374452713717287383714668563187683244475326715532578125168145724734362711482615868832184888471521847737843271377831741316722573547387778766852655435123765528844443327284556788832211547216281234133718865224163881152532716876181147132248326323834146224573372146725186828622521884613142165271567637436158216815143416271617422381113715333671271282818875484324482443862241738847687352512118148273436621618214634166324124685528553282838826871186784366642863875762124176774471136553784177836223382761427553365577636182755264114372383728122576146643587173583687784766367583886538588363677656515872325732226841755352581455763161867552361122716313262364521734531452385857637134457345614453763478664866646221655456574838363371727221572383355581358317312231323714863682824444236667257472571721876243112226631863788234152111288573843265734432462482416326413361625632772182737634772228558763884164328274367737372183846883772885183122447887686586887246432387717726837577326165321635145375736614867625426781882165541274454182588837271825625827542236468744881483216867431687143132364227414453341144854573454357482573421823757537521175182426733682518617554167536542741842335582452478244327772112273267187324458654255656435345538755351188415867488534344534686533755831762135541414844454823373555617782855411526521623174812324784348535743764433252466833753212632555736673723218133672167354274115388836825383815742114411485886422125416816856241312748587147758137565865567388188871786611444116834427662567436472461117728781574182555622452251864141583577336315457188842224322382451378217538671551451368651487688736627566142286712545462226873863384727428515856116351463732134431512421842533844346471334113516233435238853344747173122428748233562645641662616222238447388812725181661487365583715426815713644854876873326875823251722117338424778237466224322237871676276128566288613372371568127182318112538224772715144656668234365343283174237818578655387812345548455738757655514146362123733477834167148524232215538617681188777285668571681572731461336442826713868884661678762528613146814655848587161118853722452323811175361286683718465346543472643756281768448775772823634563427611378353316845478372325743774542535132132673882736637372358461281761864717757117676274476123618475548585462843677452568267218154378234748638563818255268858562865555181558425776687812767524376833582557216744273878233872128478647861776132256141134188767726386273738512627338418578565314633327616557486285716652577717747765515837373183573815163811384767478662418765731681314364368445881827665328853833651176573584781782335467453423358163622642772836221666278277474371358588474666148624387816352341175612646778444223213663185336382552783266122283571746755475114861121836644461337463157365746831683686136244273676158575731228388525874517683137433441121638234276332787364346175328187722641138453518115438234633382261814127828876786118628787134842842451823567224574246623582183784715753111487725336685625874231611753231266537251886565134254375156868156678182758562745761254336182186431141882747123565377627436515845125624815474631868717227777138612761331467717552187828613126646421423256616553363224172153776235246268831352388561645857736516611433476122327871625261651867547351655864765551322815536321142836513285358725723611828652353416733628344333474421213234166824687661564664172131111134237886353776724377355255236318487377871255716885336848263768428813456448888378527278286271777677621324374818856454331645683452823621258241213447847118577581658622414335115355728581225171226175835338736833215735556125737223612812554227545728371653843334382278344736576728624471461763888124144286722214145271723861856557138517856166541665654622773448717458844522343118342723666861552164655276121387813152127675417325687766545374232246445874531153287865538133243467668367676743662465685217288585368782331862837744474881428368563523645443543124222372328853518731212316536544836255884858216758865713135686878354451745363148816574754133477311426486631112852275652131165566574734564562757575717672655818536816163281362236677546372768422278756275871288736342868725463577234757146122112745518458855811731266647126384134684335281458447132416215414767216346553687213612543231436824735265421746333254415484147438578653211852644161226436531372838582828824755323841643886182284724123572656348518333638148235677648613778111621251534234257673156177865543515331358668752378582368762326343763487132163712757555232438664611855435213578462387717522254525376538148167822217645513788227446165661644215185756327653345186413846611617216453281533527133738684424282872574511623644454783763275381287126443462736872837371558757764673126433376862732568385262625753162665613166348556182668447524776521177184685611126243773542588856132411866416268483447768584275755185753451737673627261621235721386768771764218562157135148377426661317385415438244827237756655887688485643276766857656238555122876536151345832324156768685717656316178714863785866641571836383631184865438624722573616388135317114561711343434358228755434832437755685685138164872834176578628572146326826733787141155628388856131757148677634488215443463834533268178654276536224357652545665152556577686126414738312262415811763181856325856348846663818551244523314116682883856328276283323634552133358557518732756576464447861763158874432125861685833173438523888856868277361118588584747765152526373851354464181156436874256324848815642144254758168734841248644531754568144236642384775461344464411563234657178227383841841174484257267618167881426416162266275367272842527424433763541633142378156727171538543726771521885123825317276888558712286844833115114642435175646384163754826337435885614383454743251233535824764824472511525881826136155256531882111252221478267447643338677657827811737743421234885387263115486854513446675417417117471456613168435731568118726383642457225522451114122538571866246172481842754725887656571334127473538681562621771342565368766315238254777641787788655252735433655237675546324763634321288613844256632375617185155456263214414481753847528174576112425736734373364328171875114674533266556841774366374838538167236514766422215543237331281257671187462774511252254874613785531338753832877654848834452431551674528827763545188588615718762536887551134377857574541222667537283147622156522148414573428868677143525486145858566584732435414375336473744135172316681538248233653167342642226147773713726338362667218341237538876236464714311447855458478813711488716873373437874536245132122637677363661621128242756166337217875418646415573486373885228186884212262727346676114864282762427547652581484123421823848782544484838185234613545313254233383313785365875812836434448438725155131333477848248547883545474151261854318114687353218568777871863638651536866787775688566155128172823163468625253782645427675271473351654232457633564715544758864215232224151588825483113288643263652871152117618854822337813271152825821282853524616886474663465526225384256474741211725282285654835431543742283321162671466632123565375651441657354588335815717121357772873527151118183358748227348787543814361376346242283724514554128365713431232446655584855471848775122322834248472132134542333776478367567143581361273514316682185833375256166211284145445774672744748454762448237687748183237322683688773586516846777786216117844274757677435638377163451622573151113861661331758333644423231413513411246231323813343474784514755263277517518556451788765326768185371641566283747824517136674573712773538747232611751561317635613752712383273113685442467711178334112742225486465816624555368852362553432641374542223348442337234156386421325646825758668563375452756415287462124585232285131635411726486848141276781626725758466227757217123781446217486148545256648238887877682468824377243438651348348613272185874123783743375818818771154863157525715756771372342376852448351761421513882136726155341254756531543611556425117678723845121461434451475127678427315315417242251583342828477871372868525886623438453521225121727615534774522765617636447825186524776252374437687536237888515827312624823155732341151428131632138817188162244165147678688327282152767664785883163712767315222487274827174631544834161417731836754824632285855348622443323816572644123818184686235478466627843276255545421641838137661311714788524635743876538548116714744834742712383671121564541227583675738826726152153216261858718644324872554268144822317313841722744832154441142113333631124766121211112526387487482461443835517327135244563373627554668657277678178663681174856767815837626585261184153761333876476561388627784464766748762738433786886734314421413187842222734724461723711253881818468582732213326387378361231227155671851657176375161684673414776145617373247765143718747254332113664217582335548576162756876786221232177871412456264828264753262355151754584411283271717253566653868521141586216434211183421153146887688428236445763562863557458128555583413747381524772783645554228338355631156275553448464815473376222772553862214545158458184182771665481757165275682546223573431484641785358766436557865284236843313182627562872647181588618883284214433855144364674713731735242357362556237254638775638412873275612764154446816554236264333516767124226561247783872685287225782664773281271636634861145856116348334544238868532675381853354558447818388785627553278841263627263651656585164438427417235456841813645484157467121726686747213311374721883786684346163647537465251348837274843344641562385847254255145543834838453226125271182264677813212661376255854573252138414384372428246567264627548323868388483535258413388627278221417484843362474181421142566547387687187184338317458434386812316775552151541477371733827678421184321532344187876865867782434111513252455752626373775332542553618885647321258747732135378411467426681488222256846758443154781518368175166278544235131116173733735341846332376318861631847327312735536321445272748413466885725875535357868553616344281587238434856541344758285531826662444177278834534611588748811273387716372372384652677463823546875423721115242477322155327377143385263344464562184815416832415681824227362787654624835635465822614185528465887368763112545726144458777335722525212267338677172184133862121272668575378123722136581784656771117833237138117816656412477232833373615177688546313621855647836855283457334877575546538161558222486743236622448683122787741338577338558877182867871256617342351778315263868736624486666566683432468856851713135275757264841383136672834874384712164571172662641415215314348686883852626858724735123541674553118362248544523562634187132154155158773737256513643748212426588684573822444151835366287146685362686677522884687372561465612334213747686575821455522625756586674657486742314155664582277414262517324687885417834181267185518628232581185686158555573152317346828178645371576537753648465351648653377775844264146476334526382266562141312337718246745867584727134844565714254135475133482838613164537667188263366861875678615628232817473151886652648324754233115262626683388155736424511181882474313172811775135674744414488216647122273752234358633771881712573151237221383538417475262223847848833452552514121838243335338121863875131246324464187487671647342611811884283611225631487133564714882547664815877251356261286576636881454855224845637422531785527724528662381442624436655634856714263741648451528633854587681361454785436162178148815355624427233578783485364835725427886135848264723138655615357511166646837522884866788161656173776121713231421777226181653132375686334356455113823372857357455125424841372883841248444746573751163466252457323333344387153315412325641543444375665115416636244136516667162215363843153723226326677121787677322262446485624113777578338253554367273823281517756571221686122248666625585623257775514643344535168437184335252611866331662772157552337651835212717217864728871446348171174352217127712878547552273771854841661568126211225671564723517163146753421142234358113554512417478131863164853155656872433531137517314377741745316514717636711351186234667628821576124486233738835224388736727463745282575837577711345787471874368754618263632518284748357846348884463388258475382345341633836836133337351788475626311171373673375377264358817175676475473457682721316413384767345674383337683852573338225383117633752155422763532451473118475358232414625453423567323681238431451367788415444661218137227661423555434134635163778682161517328571271381423836764781664722553277856573675644337466214576417776562836265438438276884122358246461361856286648634183485322713418242886316877526175485574451362385542873277816612811435472528324538627642512748141754317526127267146562328563174755785614112738311826656564572663218448446686623325651324343216576132675441773261646444844854578882756861155468213444717311468334216811525728615141182883185537638325444622278753558628678718662368571842767728762643666556181386842815788631517677622134444543814185351221832366245148481811851167283871163851561735671347414211825823876362185278324125755853844233231524634817548141513787148261443282341632452123741728671683617627547277184365346337755883333755216112811136327841333682872257475755825625457218842817265371785371543722136746317215872577356752576457651812338255724663485247315647111712632623355333368443343514425563333482777121316752255313741156881818154753554236832252483558324311875237473583355476383624246344417622438485677382631862453744745623423358537334486551462716877128457484314646283524551412186517513128448583818251373428218756573545456115112876622821831523736782816524724878346518583311374663854372751858883311238168264541583532766738624615735343825441588527612144172223365885784417134676554738734115443633378425388457278223613124667187833432152816472464345656181558148357534632135268313745244851552156818148212485433426817181613727225721317226736767234634664553434123651172735578863133256327522538855568417533588418322143782522516731361231158185516667124875133776413283218765332687466554264412752661157534737814421166251562346421373644286554116671455412682823747763258824374558264422242313643531446485781122548176887134168477188415854525775744441741346342752412864335524258268358371675852768653255614785373214712876548485162376524551287175555421172181686431278314331644356788563773712552338261651431756413161444685821144636413112284415312313477131111264872772157467614515753353333146514678552367138278632656156361577625567714374288738862364866685456624462585671354227312487136648417524348726848127427564466641347151154132483165727674672222843655452532647654232155414222413464171231865646161833573614411727326885188233846518453671731728342517214286286416458684647586421357735725431762376853486216828611474165278333551852387877366787713368784487341115882768383863658146633733237335835162881854288753582762282584774352127711288665625567454523687284163424538566715833477785762652625866176181671834767627882256888482658458484276361783652464724438515212726232555634561773362415433144785527741871443232134361573774234383837835648138717333451435528857848687868543183873237837588451144571447487317256275845481146117265316725312637453526755836537351557888431311715136318812322734758645357887865167468166268112456181626572167342188683375786613372141367542166863713747184754658654656221477772232273577134288162136725564127782675643415873788868321744245135784354364853218662583477787152346348766868351736152181745342173726464757758438741141671325221468775752316226787757536624733546484666784275532317237456816761476843388614836265574121662354113656656684777264387785453358758132486635261586523312824341732485511771486256565715174268852257627466472283441837213631522487366163411586532634242514563413815573521348812642266324431448435653612613368243326855367173623287555386538243275847141558577716628858272263287642145216755515333225734121136761175263847184277568258237841584687775138545131476168653443368637573655526788744417173137155885711675314573224534343343144244371147645168172212616536737322326427858255231152272544384182834343217171314165253824113177341371587866153461873844342346141738784382856214868368464285715878538154751247244237664284341848883565646432252332715872325471176881521764655758545134236742525825637771745422342552872233374843113771835264868724617782236681587846818423578467547484214733588454644653622655225834142435752686667214275427536215511751885132418226545744214524141723428682832521242372617731742873832712682544334153281164754813885275812162285581521684148581786861262447326743511246641256815518682883425785126136711484174341718168411876587767417227525626787614355414728362273664133364141422843251288733811377357684684742883877884573744567863732717777135423778383677631537866224612412821884834258622672268756223134733782372466338564371263554824113383581644147164483286147541522846366816421786386313526447268864652858261348648236458711577571516388326327158843677355878336454283272571873876721313412441756362358277276231772818358118285728622638223433521462464174111257681733444484625438646141227288168622153287531771615116284511577448522887452485236444623271787548267826758867257888461444434855533432726672216186818641783255417652431754875352142662757743371725655647216347128386232522841172354478386582313388513431531588484733438175825825743676445462161351564278737128264217442155762884621615647451163283834818182347675452126722585815875335732653281645823662522278367856241873288361432457626584237683363431656548552414245862182751284286837578515412733486355447224534886742667818788285721165573113113344271162641228667472616817864368676651574216741658828675178566112643681727217343712436531557757583868626414845385237787823458828773642153553153566113761716785363317413338631147328662653487882728631658238334652677753668527411331115887727881128864826768671423421178562327821724815648626355363442884785577366433817536238465668465824278663315366626341846521166628613661857555726537522731713242212275737343735244685545236551447522785536778181426662885627357278158527365862174757854283587363375717611884263318762271215833831512843147522753438224234484684752625576148374586217587637786348466685315234548866475355112432848518745368484346885277357557657378851553187483752171722337663587258215521338375578351448326343657374782785733146843683575876212546623863122123626676112285776131468666677446728544744864223883641573747383172136477574163853726841835651565444143716164165354518657834657282663551327621822473815617268858625176165514585713711371784648372785368778218478338324453833732627741688568224744475787177132353113277615374767713473847756848711284665384346236542432224527588677151646642354675788627275835561172213866171217786365148648715561681844357448285537713434171337316161213843533752687542841143761146754628667623773343214217252725266648323274238158468541332214631162613877186518522463566654784712167835482658511454767514573133216868268444365826114722278278251823841542847236713884178663685386377483286676367523677255574173427327544712584856875716335313352673283571418864251637121527553327637653683678712742618462286535365632111875553643564517636146643226173171313644882448773576317288584718818363737532526441732652312688656551534454316811181856776653378144113514645383162266422776212626683611264461647751252346657885254232228353326767784788451828542662884525724482356435362163674821716827461826122665868172156528616387735583862287382288164725642341782416413623142247241238464615481212842371272115536611557625831847243136655756825646313142334435228278744136385856386567362664373861715874423515232855472527624866657222354324545616845254635183355747161458523188478855135684638863676423374258714761168515835833851588584816884136734472172234571346356454123523365424228447556387173675686125313511683514456782581535114763168831181826133623747587184267444434241818613161824464744357162272262853728676745378634766241427244486475353637333366348861862453563316718742242568768463435642517835362256171283748773632385125515638825228845228857781186588826186147268753352314278857514566762446261213247845821825443758233377161671162553125123356517422436283867675837715317388156865627417481355417787485735787144625433862614242687544736173787851263426577667737388637185342233841877613161824418373278473663856622553556525166862855764732184422346383555257524665322412266378511288252443284362554711834353361351843176463861723818168411487411185314657124766154626633463271388581863761826628656431464452456416268113284533288717822856218528235743733252268155527713581458842233513488615577248526646643516486444453381527318267533363281581811356276237738623575468477544535621144664247678847254118521878422126548161748711235313755848751163384381162612681871766357818126155441224872257816181383174655356567351658831432117736114476678416837664657456366146344453137144646213545842665135766313226631251577717183766361816614185365142785645245137662438668138362835612845451661214844761774376241717662314141126226514648677412148525713214776287824448324725686254735625161471277373375424874318647226433567255148476578143164844436275432753427162381885318354713432832726735687537623758755734243413585764411253625867858232523854278323433445423661163183824276384786118152568833641845234623347434715427264137188673313432633376734865787867376253258263413732172478655518343635857545886336144282724862765717461224471663377763515618773138876567116178467821362412186481445112578753711252375186312617342728143688878165858565765186727616271541544111313851443612184835553374837348138421162382517182223212611112874576388488348215883324142258354762287116537247744236342136168425382182632245136416781611316725144321253364564374531381387678281382414442564888823843172756446265173474531686688154853214827282415714264813677673635523112582342878166453432855888551457674425314371533833128325231843471832451757526821888477186152488578482476818656352811316672827543273381146513815765773441348763272466242818266444882846847521844672463251246787856741212551624778633147138777571824642784725884563765267226631633116853345884122454872768133215523867217664766517116743626886214182878425882228125618667836527637583434521643645262835338151721348573634465615783646265177738851777127251682371345563246828572561842464414687483846756225244851151883114461318364526345528825586643144187788732751282443382451285456563353783647734864814226815222765217544425317655253572832554341527162424821476663636771812145767262168462266843712141721821156868666378216767614875566555361624552886814376627226768285637456773677368364135546781716846473261288883828888541838666461218182212711653352323373858613471888261827154875774222276124157154147748544618887375284565862474767642263384253177516651224168425276161186572576314678487881783177754461228134735218645512372588332477466861413571452172717833526732667831167136178844732584826318433833611511874768857124466716346316666326374767453832345825626857672321627761213516441848262834388487421866185415145215728873178877716484718341522283772645643512152767757658712827755885266576488365226172633422264431854662122854235781664812727237323651558621734261216314443865467713555136776281821527833235433323235715274763752724376565218416486136555887834282526263481417123726237387282621838236562312678137641271175844587421144332288758531656434124164823586586775457122254413765878437357623382586485372422755853453287656852122437165267151515557776318112371134886584885116237123313823211221271515611262585153384552568651345815535658567131858122337781882287641863728588385864186643613422383378552277216713778544874733652875512436224454432453411583755611332262743284247154465221263641773581334321735612624736851784848284887125218436218678344331424111588112672332842516417511558155175642866688851672122737583155658834277724411544352215154461583273366128556272513733435537686575828531273781827861221333218837278117625812668456244277284647135186765135787711572656442816426686833413687565283428163331648317887847266621246458123846171517467227115464285817411665168136533825773131218761517574777357117418647126637475483731365717518426852723283631841223828586327858654415432664657366328738546333865813252427558475214687222845888481472531175181367646537438825531278387113512235865337761738843156186787214834422621583336336343118754265335643414534867282772282637241731814852465552447235112274685448415517745467212871352445412153553223614211837283877183338512727716766284853338636412443458512882535851325355227534745671688754627771812246635578133516363728347635786816676884754674467658371158687888333828155533636412186118837437436327381443415223422178843782284533333464322834743642616552432885887882334374637618468681831278768364466583835653311875178166742334741286155382622616871757237322713578274421573411217353663565452661577636754612773627672817241416432811645623811738384464848886311456587761126711636748231786123638184846828316141322314448652884511181763463264713113114166866133738765218125515473773851554753233228486368586732168365127211584762418215755234312317516184143178836727288328758848766565546744444285512534515516251864237773823113363583654862384347462225174445678717133226212516451347853156515172854773584725256851743118468863738313532674286842623883836481763361673851846582461661621365121846822866136456384336168612361365663756238841666618466843866864486378153523371816824324317154164618661583826527378367455231337464312157321677266758585727857384785667468144856283228411253657234361167677671461488388122876566858666514178175722622331485642837871586682568847626715544177768223842612738424882642783356744363636817752661635556446643333436651416888626488115656822824363588616185136363334568367428443472813528772515717855757551262516666138816727367751813737555513248827415256573135735125542788173565123517323386748157673758626642251521848835621332111152884657554562265268387327584218414741363428545827554356113583141572327558421612227358831841231848172514425553445767737528212383262837346852883378632271211831324126852226474617342268376441262678435256564812715128646356864287787321547645875276128344141236816715668413552766547148444254732572145656512485111514225342631847722376145281467585517142871865447376646233875614755536484457182436787472466887441614313357134844623237461266572547548572151554873816613477242466827743657613762263413442263468757612867315682878725761656811556377242672242111558235262468574778313431652527271154661574112456376321842281628672627463774785484722576383431888142575838177574662571226238385868634287265584657866885375365552232642234453825313668386484816728151761215264664637234474731223275858848263518633543881141168146631234247184736777176747754638153173283568143421235568442874451467654177672871661336867123238872416774548444522514887666141844772538654355723834888766147617273315876463552812311844254124718281384182223814214815831388776453488765646844825112612441177721136864235888452568718858854436515263373763375232173567541681812584733266111271487345766735833672232117474283247143326818168336226386714321342245267737444344155385175274367477682445285321683333516772277586453384573222782181312676764673188338777785842141872626388637636638374651354538373445662524187721458421555875413714177218524356162621663821262153556364882417774642777171855161823326723633472545781364151534383284863383342453612635231851375514667186437544714643233888526144511327126762728841361628561875342133715548436832824876811687778188148214244536388783253228614574577415476886235122184425843416725332771431758437347675871837661783147752444446271515711863616373484231171175761437115252182736166451224833268227638242421383166377161551476168737447551545522856623448474281643574416131672864525551215581564578188612566621242617425845817236146673538317173321758423871683116431684371255446238137825154332662641775582115475177756158243366221284411321525681546747763661377163524513332811154318242427116428737858253423175525531337218556516382824735734353575315733654165415654643333438646844224588165222644628127857588283315632688826257531287684144838356731856557734656372227332622324863638371234286784112734663452557772425588624351337577615657418357216735364486588326244376134668571221426563223724318684466741414286218855244133558288516876827433123665886161823817727163762312273211615463161857715323661756672883638865243847487835152117462532415358843844671243445316144364261616261551687668613243524817385123641653737355283114152228827221474121358742421437714123584413416824521212413553413562832137878636755472533875882355544327115145422868282256346232673774683353812167654838634856283261348532582755331674616617187812145665724656378853384624531331412634226252747443647211331333141213382876867362332228842845818186335584776573416228228461862562364874868686617426847542518653786345348364144743216157817744733427852475858411721275163727387248112751443853114673376338238548526782513765235314218832524165186343581446126546536486347455121755774735287742263822526168367421884874563324242431653168582434171574832333746686638535272482481425818612143413642564788888715426874455336564537655732731667721518154243716238655847627455346484365471437126643746318154387514112315347646411685423385432852157778473854555632763758367424335211757228365714687664616428522241225686331471816774742551263483462612881645716454514436444358666833683464112323443572286338366556883346316485741785872414347611488488136746186765334565665443558187667328537311813836283714125582468882551372148442627667236486613268121225826826688565148488121816515686875546376288484411868535883422711362188478335435238683372688571624488437837242661318584331385826363365738644476413153246842534866278753486484744226217782655148466418627124415576816353538618345183624486813152623127237117613218267676836348577558863748311286211535835536284816574457147666244317482625341417135267542128634734561348441282161677243442375427572663524343456282623523627368624542464815817536485646125723454718123113514336665711218751112258722133448747272663381845853748627811742785311566763756228413872732426255583541884371887588763116817634878213718836582447881362563112156877834824533474861167222127833687281577112146211816375454344673488227687558748835251766817833848831656228783373878656323713114817643452137463631313514572853458778782184717777767125573345551238188355435878655165688621245835414138241687664847466135221664884454465145777872685115673631725232368841187873722338787731818283386781511455636538475367825532732176743548177737445848417167227835676836445374238481831616275877242715258676766475545673181585125265672526863327442111176135343856582628376325651836535218448432152221727518245785558136572222386164153873887267488458727835222435832238274667116122184483665827478212736253864375544551524173671512351866334357878134783261538546462245537862438188564781518263477687751627536146854311152845188456242371718514768811813666866518233838168186163663631866321861781753321378583851888845374462227283235834578845544215413846637524444683157623243364564865515156261236287166851353416763174555267857564131633434462157436483675232855468247142577681213718643866233368751364473128138171624821611136678615731632512216268342113162631367711573613521314137235238168682443286537585386485878487162132342262872386526353442457834134727144838137481183444246838112474284357227657763776287451456265352676278145488663153765512334728185423374523166468425842662223288637535544851314713417561753737667436672244841132432255387272647461235126222232464341441324488232815277586778582874634656755744613321775424868737811343835268648837523724877832323456351766417452828267663526657664385148488284173111436775422887834587434123237487542726138227876135845827837776382141458347646116352758343186776586383386136637424265216165624378768685317642253266757452733737414471877423584517353765818888336742518356626144848823573132665316457184433113557246461644511717424321433643158461276326367127765257817232216621738221854655217684272864671153242724416548128885173238317121314553683827821565641824544123141165332633282715168237588681555663713643627417172685254228345712757688851617266413127136131677423172874621245575754364866185446722618646727476522154252832263424542222514342861776317261844873316138378621574532838712515681882562286235751373263653463138727874761471535524587868275278221585162765735154123816734428142781363246481683114412672284687747445456265735186343512676254187512154361851431751117743567564475252584386118672747233558113422136756352862886641561875776634784271523715665848663651218447837426164422848241266448226232831432215213417387825335357632781541422848371775574773377257816652784654553231755231567153423275131486722742574666681553514538633733582335271527386128431483433613667762876147534746746752784135867744828578133524715451536181587138476445448357445871844311436738477288788382235621472472585777473867714443633864818256373551115467828361383685753668163388185282184886533588164417872271678868765834673633516147413622656353216415434784754425863281366588878286748238311423625885188458314833527486484433364851238162683155113758268368515162784767637813111456168113861537373435388675655612175672845155453416885561186663442111861476823868638872877651164262837176335337311885754525683716168533766386787443128447576754221771156553238674676577145711228886168324344362636154766346127174451488581826651456513213473247383887857548322124444452488681278178832355354263566128757384417123675727124536474155837547575473657818726731465771441884628754725576527386844438231236357213582756467867653612625614346737286862578475217474343874175757533236185681721537138436512176746738545212271321774687147223566258718831215283372742255554712286777676457577772126738454512622385731465881375546326838378242447622645834568181423712611632843464585674217776785773854684744172211475766644481168331488544128718746433654763876775583543625285245477422717753111665686827546622336765852787118742422173834362185472144224632513421527567664744387552574114732763732655428513812754678248232418458282413361331273547433455353865844154147761577423233567661663237613777262371237221434812166158881868782871668242381451635341836833568434481275312857171372162634646281516324715616472228123253227813864365746174673514563877216584852184668833462737885244624841446242575248476538425135157453264445618274733282783863465827884348516415547753538835843544431835573288344276146116611864114267372512513871685366843618766354183851161338165362533813876622681872655658355782142312286727684752624358874131135232457111576827756243136241321434535416261438375811871385823136181337624654672248813883282464241774542627143837734224141884467455471347123326768257332427734368874828382521817778622524366781455713442211287646274433556316817288583611585326544184126616116823432718437151715771372823638177322168612577225418434336355831623835783622131561274674326818862721166447227343157226554814767626784284125526423235556844487725514524183315153342484784881673338462866874176476386343742776176123771274378886623156387275753525714577616665114316585374555876234252138686883371846544666735544861733768257584255876313186211664723661675282524667318675483268217544577784622148878553763176614558576463811725671336614678458862831374334122551651137215127814167752772878115741451866467338412256832281667313855643356741377453723132217118161534736211785642534734622127172641783411561731844884155263632715784733858537673753258342415256742835776716562516588133331855285484643123446564823723725712181316761637668433784773254712521641884664232241181467481732688421221576561771778586386856225157735851527382446186783187718872665821148847142457736222888556421628383387163877357168335281538257687123486654281654356736455132517367326558664686738462774184344741548814761811678586475472765846661551814685421441744383445636384446213538272872656255161631168261777642635433685861366316813526565146266625652257875563264223448651336868211335221446631618154825845323211844523333156136688151222751741741853782257437284681773864617657644621815447856423466433781336216338388534135365677421461213728228718458437165231133746756715426384816748515734787668321581288435775451371751816734363432517247686338837671476221254483623234884674544813627431455512743752357483516864836668372732675567764568771276331114638488627871754877855544874645775631683151733271843557652226382434553465217434187424745667454516628635346186213814855532844462733716137414721122164636431537621687152882364442328678182245573357124224117222113867574655713145827145426835735288614648227217461264472772352847568843632422764752315281323476311212132333221515483122114838658336548338642318547726874176817447257682626554465856222628866727531418347881136583724145648172745753486256226576834138364333413558884376567335888187122444372346313431174574733742341154248371871828184252542576777773767783751458127441364538767522817344381345244754781324886658528121548243364741225827327751667341311375327782571278576858886721557356785642558364288675541783555172636752816541835584145785246641764358446666435575155534655421474518411743246714878283364713531877584365656334738318643734273841318743117447576427352532658841672532513114857316182123277748814634852862327744424686512142648212264451573134573822268174354232157253277281215466371255276558432254242627437841365352865587237123414365125576314846184321211812822118676814645735412434254222328221648488553613124257643754852873654554276256457872615572646812866188417223565458281358521861137433143722765872786733441415467867272224482855732525466263421216672813818114347567611386338325681742742728844781237234856576715886631827513548263845441755446532215853624135652556156733346686426618176151376137614183187526265543512383127632463447457311683744265851852682837742654284724215572674771651711552487813184161635584143214775717556314661676546285551571825265827354772758273788125738482117666113482544227513122354313111447248154725837654133358348621764355251328718271658845876528563687771822557175727772331677614874333881146811288666866535483456871778753221818775362185582547332371262244242238722621841214834153775151175284646865161676268245421686751141222425172658333856565214556652441257726877577578383473638352265386738183852315385223573275312586361761232858545667685813118358145638713117858336152223433125836216247417861581285126436438687127788511187246233445754467483214674384311622282513677181581726855175572253368175321788818586362566685817312721457517288125722665144532128276783618225186638513114236135811558538418127452317325614124614731378881788344245164212623151283737487277177287752873114111686178728213612436368234485513642846885525576485188113558725151154628247682132546327541428682663232715544744665467828637684431441587652783366863452881726768811521452542534382333482434226724773877612852181721228132224582575734664551435523582515486715151348776788542683123861515255432163117486341226487472418685338222473223526335144573488357882463622111863662236282131136873635667544647514677113223885371254787242665426562838346315431555641455682312534736638358518655775837484335257536358755722374532125535134248517381376424323665544117361452878728813222653571745223616457626564425444525544324816764218171636148251377833861231477785453433784478126866761878636573628137876323884287842531418724186558356755115131884144774463833585236868161671368643237362332571681457362888123864746371414328387181486583284252545348186475322772836246263645415688314853551318157743266531632381337788614744656332657377151241868628348633767588421225836122715746662311544163612434886687845521743674415872342542541376771482443471437825216432573371865812723251864662778182827243888486377581376614587514485765165172668235253581628236572658333536764673365384153836381553256126784238423122224477764731215813558662271452361777335615382573817562681782635778513741348517565128355815274323341531535556171688385752336567713423575217485232151242445282847381228436245458632452586223114818871531354516231362482773771267263386137254867552762628684522814314813627271516658481161528676716214543127275426436243352785566884424426212653465175112861527824325754275321523732418555674165464648754352124414612367715327434758442546745853384527817185847381715638411653882821616426667213381453168135172864812621386717144185453132536721821173172728331615312224147631627483312151174122618736331758437337354268364445565155758785744644178513546842188611353743884455434482442116823481575568457761414428554431123367375538472767565514538563671867465128534621233454714432315468216775387765455752847142768426133477877354566242813716684615825321667414536222127368634182373672648556521312124821473558784757888745417215416464473415872423823867275585143476871781385287576743652777182435671761868275831574546384181811268353315824475413554354431131247161867558684222264661714723816461467283758341464512578567827665418234271275787348516461823775886516884617787632348652653587157465164285171711645517733177853716813488683734714124784673575525223252637161427571621187112531122184363666777235264764362182163873865843576816284641635511677832738474347118784754884244218662825851882762321412561842132884255412417341443283125118323178514725133457568775776854853332258346811356678367813515666881172626377113642374762687355622386554283613834737712571413641771245632887857332273441257123266852521328265764878788564143326613552563555633787646688613115476638785616348535368688265546675844581632453172578417432145374775111164776175341281684858287543758823312121251246376438357778152653154225837627326556572136683764265387547315246413226188655642128644188836221737716576242675547228687247755548126744125353527345762646432153532812874228267568242176638512734182871313875448321537287748588154343171837573175287163823473157543556251614627287512553861765577533727485854734251312658442661421312257413756848868212716843842677588341582875758446526877742818458481426365826851578866652823565211327555117751577562317456321732521472653418266821242654175235885648775783618162753687116471666231724864334312177456763462238718476853443864658254746271163541455751255518571586541135147453214678462183526666387187218114374458313563434287584462372288377721421767626786343788877754472731733817445135451415113455881763853821624783415146644688754832874233255345656357872127613183156471466111363567363334782717113427465145748115517582147228576828763837222188346786651442186688335536847726717483758763668414837357822611152481763628646244646568862712866623786637558874318666621411684166113743365353454476726756583585713246163565516625186643452327815378183121667311518371576425375721476757422322378864833342568117742577835123347814364267424132475341134313617484432848651721838258338351621136578431315174736758473128177787422165165368753217713122686563874272657782746624284566642467663777824481544823333456627824457643314741765826356352831622854338668711853155746143236268135565287664731142376171361154867181318146236281134738466233386156774757167754466816828542547353882867472757214884246266132753213416714181426763887364677458431636327473532878264667135537562345143782712118583158837247885735886362223328775141618124771428528313434326315415546217583685653554786838635773486717364511633677237581161627837318133253785262872441244276165816766652132347443273314682188575833617862613214238555885754428123841416344554874588255642271257223238553578744288725378264876418472484757413428486882578674324868615257687588435285154828421514172666432372882572173272283841348172625543438556455654838823124832761385335381133264557218217566451588782877677814136747438285517554543432216164467228562456627561684834751523866348213117778213272242323145337762358621565473466671578873476738654536373486643378143187316678552684823752283531112111811268782121527461681548628736887622287411222165214765737477246515434242754631211586236665151761871484341611421476718533745788576583626456488214752765751885754571453164411136512758881581242556587564522522378222671746461376125563681853147556685761573522873416465526587151431176732151848855563782221123165148472654355346564758661668143256252186132523871823888863534715232337811758226828774737781262451673471233225577462515384477223351365357666274581752886432221245278474847636753787686436327383576131275154388578147757445774783415534685285248651483887473852213435462671855586512882448685873772487563635774245415215275438627767381533172252767378863116148482227347322237814718456467732671568163511674572663567872651585357334372458477642865453388158351174578424358783888412412316712816134863115154841857187785575446756823781485571243118485124225516267556252716431687347718737348135477763641383438864614384285787813658124651661657185235224752558834586137715872352831153214838788845228181387481274856766366325778417374111728516882575828512188635534831873538838744432383158138343616462434324888318537544413444475638733361456356276637648658286456415343145767256876611275252584714485418853444132663457634884341471872443776786158165838324327423222836362651353338483372428832811713481365387387236235346346447134444161366215835645241534845357418772618831571722315468524121556415665665384365466618357731482733366584738263471657371224838722225744827811848821425144487465387747881651642218812222532338624114754828551647337451668473345442736878511545175886554587783413256842452286681778245312257154478668775785431578211737554851367842826216315434155288821113128513363873321724338515116267146153181354673635667327775588213778285781358582735553142367275223748378822436311732743638424636116615586446177731872844755225773223638864648488256442734152611823855858324833755458342344571643544731737727851465458372645461624766745384278276732456282737766753213732755744224138755535172334544586478133242515186316712844165485738482412663747568846117574224363313114366626234135413251648645142443446217587882442634685631744645851337786673473625752385166117363486765234448312857646351561356382148658664312456732233745742177353775752743844334116187633542366354815276142241612426841285138362622846517432588611185275375228352212443372132167174362516187838716851778188853667764822331188661433222737621654432583426483438273511473822143446512611851264757675738777852366584455457231226654833867664551376672883616785161258526158412215764633151638812837545751462652836315362312783152516188243167857255752843733114855261151154726648784158137817453676652454846266253537237885741717443545816323645865777377727855318333883522576743337732224661266118168176342586526468656631447725732311611731288782627151285547127824574667483838261876153327136587144277583875763556233254634373774288858213458612485671744342686713765353618348545174765858787475522154481181655338376763752365727784711818162352381547488325864643733481164386473146585474662116356382418484133344158317735846347567574424584735212742525175411234672788248388871164832216744437753613336366255837131851512151513763183788172261144235882656617881316246224847122182371546874674474115476747318278414258546862376483831372272715616737378143871275545373457347875258153866221248463887313734387711415668171762628724515874874762718435311177355734352716814371266161581388171361355446246542354852876613372474121661442782583175243521827652664486512377446425111357828742624164774517338166246768631465534841175233632516721513545383716866175355628848537575581225463668444871242686548154523285331616322628618568883585824833233282883152682638527564235225217534624616866735657221684723414856485463228468185723543532542834341574715443423551822842685588888117185636537484253416576883482458357786411826348241864554718642544821637428721642318654715641854153172781463283324286674227871172841285312331353671854343731714815525225347164218764287247227227741858254667775622747552138827782556247624258331212533443415755877382233348778856728251152646234524716737422377625581316461751823363642181884655375123331416184481332212286662851237461262477884626816136751623335247355114853832323582335886836212147344681654572541441518888676471712347483427663473433138686345423224668171444482635118865615814836888857612246426677544172342685381356734618316672536612436615212847676744675123846563724184672873311885421583776238572871817263484568762721614124132286874461671686564423183452865754148575318378613714118325572636637555773771456636134836275424677248384643678342722224538241278181636281428328261178448438146623672367126825582681212121635183337235533281646873564375314524846436578718541314522655856417568212751517168158577653248855313283444185417374832664655211742131165442682585545777754331122735888114868635376825666751762642311871364844247736463148183834764452255625138828555536513515847381222373883544566235456614887787575774748114251831275813813448713477752732857611637128366322712248811274445766848447845666754838438224227715465466361784268623532244563148253418783742358727142336458321346553233476618357238332573565316133345384562414777672548763483262456673146844333111252717154161266632613466481767541631285358846676447644488243887536623847848266822355415178345115367568133146715141376775478676374246158162722835121415523287736227572585646536217715467674263854423578123463141832237515888845476441317352326426581346546511148341441252474633442446266427587238264858714374278431716225575364877444131234552282238541215612716521874616132847132673683821181658527547351122534352686675355187845611282864183137857673328437333561578443742755616275464323713138774687158831462775478576866248724852726328135321538477141554215317448647651843515223524646156354187633557658571182151574286582866431755376335812123132222746144486433631451512623184872266836845675518351312544528814771441235488121843871234275736372175788815816652821848124564883161347237784536488188157584141356152772221364173588482221475566373431258373341618225346475588326528341745261217788438734853785224127888425583172882862327684713384771627847753122714646473451658283722616258231827488686648621611652788215228877383363684263314465654375754428247242512637835162683227364422316786817166861444364643476587685861662248543356651674888644173347322485146378515573643564143136834144348833884422472727828732585688771674671177734675264154873447136754387853746772388412788212871653652346687875225652817524678355586422746245753135775337756487523325188721365645228723288517355687784455478628712741166576123642187413647671331414277735513834141571852778413528646136344336412565522786443352373682176421267874546473183135824258354663378244214743727777378382886363687273581152833467365882157374621245265331488446333878774528651761883573522263465751338486332875174133452565522756756783486485883213417262728812357634143472547554855477526224418877152156321663737166588367377363747144332165358232576474873766641512645743175617553266325352633484527268177644456378171276141445414381815438742278154763243857485435573125668774458843867853658812236447675354671331524815857748568273617341427112251327778624247122183737765365157176761783826388265457811484611215757817856252768321771776356137221177574718176875853641443716335331257234148486583434244224743146122545826526862875315424567868232272441112685553151387644137121738664661816153437126877486768852525688648452361173467877334235154523254758886661677462885375541168184561445778747251146344718513423531371727463287388634271737246118784846683628225174252312273781461755284553164547651851765724857648255372555616273247882573545115677313137655373364651874718315833454664431837154136272362267422754832362435236346632457541178855444572721814388637764387416812443861628778824477334654262752663861688546238574416548863218173845125576351324322666638611578573242618444143564417167635753312323454164277212643225856587535434641613237647878757123643583742265236326177542287886861886866174374612111732641431284758553337365432618672556666343438344536168518468317238482186435836351653571224122544471368568252456273441258532372781733486363275884844636271328568227554857775335486858547666381712637621417112641332355738227215135584541341172762817247128548223468723824132818265886468181672837526718878271654858353862831783352118586571216677524511761451443543413731852225146284342174237471481664435254727544834733223657616741874215577182254647138812678438577614267647754334617487362274713561653526863356433333666755835858822368166168427612648431584188652755428633662518464874833118165826238117134342385773742253726815627588412516342776767143835625254164572432733676351235234653877855474573463632434246366713786678886815847376131515337817784528467735831627237277462238714233236628263814724243676461447561541212288476527143116753467784544552471185657537735168425251325762525325876388748455384521612255826555611431324328548866535411867334811811642131152618167518363115282253323213214445818765353661748662661641837142343285426454444117244815168771611688732544177245838436633221257326816261235641244756426418534133734117732383874428637478111223553564456273447571224167638651613868364688611558567642515146714166114241721833455826234417185562267353381151816564877378185322415346246842138655241648345746673274567367237664345818711454627183458243132817833421162116174881385826788158827336834212426722712114351355856746248321552711157364611385872232713435247335142765382332886675535865181581281337434653422151313566245861175778588554812276715767458646712178617551622815376761365346876143623235286177263825543734437883234447833487225166617872382282214514164113884487758326526333158571544854841156882731272572784727473745335841536771585753143474328213686886646384441876386335724644881278551386481478765214446717766852474213712526281671222567444716624131161838548376865122836164742754827612533257554163335643674865167888653677434516818541518165567437161337746714464237746623866775252372726214552631312843746272766862244524645425246317677313548243123445811428831361635422465856367523761572475562241753586288775344686344558625416277436722611811136662277725455678488262118668463215333615317772481414674221764674363341447235164172226247824358676627622411614723615336225352886567816226877436616848232723528232633311185588238431128782228648817745824561544284286673564538238871568635746355642826368683513261834754318642365263781436753671768855356236321584841684838314452843565854253373773513865516117712725122214533466787644312662557481118838348653132463863711522452333722422347246184451486458664557445673574365165177727531464531874243566183661865327767775347346427774441766531263546884485335647122133271518676836333743842265864773161727775145774228123331584868345134713324752341752742417852456155286284631531613576484271832516783422573215375531836325115232612528767285323543316814275314535386841421858261281482811546166252553682383871881641512252827221166313547815812673734556725316411617158521771154137141488528821881763722718465844428255126616663428457684347717848562148426241452166436536117768423386344628662738248482268625564714285667431571514421336215732828817542874118655266816386766724624568363743625888556375648422744857782765283478425141624622415812651716123137868571528541787475526657138832735471113866643577218862645314247473453758231457335728653844325264421352332347731878852842174556565381481374156725427313466533881421438457531877588826234653842671683315658356266265557521874243827218764366788465637285253567435345388486162678347654238583115516783432718163867588823747115665824364242125117767421412373746117232342423622564476136354214862354475323655517846555857875432566675724158311211423128813425338666345356874561373651547758258135426543817321358324444386812764175736724625651378683222468655733323712733165781725117842777151458485375672767516273577733237844784127643488846554872451774365652738284541235757226133216383865117634777887241863275262762754132812371746351423347521466322722567763427643754754513548261228866723255836867143464475468256144483478847235136341488586577258388633287161261862176536754676675215584382175678746586742816544752371775573727312137672531384376522258777236564466211164154287446568217686343686863175152141852574184751584551327322834115181327334771715867851472662742357346776324862464326355288861785336171678766578112617876473438163447115157616514744238577537415418226432388836162552516151716147838372217267561486216868826537187835723686251358876374733555861761142372814131625813186312515642643572342724473848248568436851785141275136561434427832565231811262286615123132243615858452228836753483182864274224616622544416678187886751875456737558521526262731536862856582244666638347661713863558625472566631458884366457415657336734551281816755288811712877467147461288278533658658711685142713351346232875752683634411511751773864587443134784836834871566641687224565834121473766725877227187475812282551687645327572364261527267174348175855154712118273244527136427136377584864744453663735384143415211858426487813866226446826855275346347684454448231462223818433554347714328458362325217555267231524262253787733632252664251668687725687877456371412375761447474862582878682131677576121264673275184388338132265131342325483661346465455367252454457381846271874627864567143355612311181378346475842365631153283371486222723462153858282754171218327835717222384256165842335346264634322684828414127328152555878117436615764715874616367481787355215546128351754372528137164518186541823847581185253725633178657378471335774453844326476452186822728858134271244336642374583852244785665151164266531665772666776823486163146163425558736861355646156438783418647868748215212663444687666677628115158646366114145584327686127135517262765445441155257126338738376651846447652337848421751433327684654168735164438372153285187564831146836184537235817336816458723836375155225815216838388682674536855531648316736486882562685748112664415136668865335187333774485527657321154622842156841884433884766368361442383514357844477646771516111251151811335781335165448166467558524612311681688763166171637241612743644611438326381687637512548481654734764463682657536844267716748823156583768132755256573151711383614854882712156343886888641776613284384142323616566263786442162457783867185425163455742275383285844331715314572736462578775782353373434655121763566485161328545771783325433428446243445547252346185326826734777268484114431532331462221714258666675643275325148242161217533366811245561762873786681762582835325411634666564521885578618562111322472728243655352575525563748862775537248475576644855578563227865537843856175728812261273215558227528562378761622545531746113871442418533226248113225816663532672582252568251137128315843316244314225448462244842743443643124554672386288113484648658181113155473322187818817148165664345646255256153723671285253786836487274485782148224314726665458254842177524437146436518273784361761635586588481143751475324747584354773138147628664672814155714386664674545174841177865462557147472526677255525333731337288654513425671563624324687437746718835337413228481582167761251887586776587716725564437271786553412778518856584722852338428774172766476478645276877222251614213486645144864483756567441422817827577787755812246711344453313284523318874561655112113227148138577577263576658825176468261773416225618667488872586783486462377111347214113167727564513251455265855676754722661226537851655258424158484573648437271643678861772844853112443185711742715413486352756764868767145618776124143675821383651347748325851368663616268284531254645543618633656537314734343348411122382862386656446836127422162634733635435881512814563114362112585435174331181241667875118271136541624247254367812758855743743564245336248263668714716147438356737861672517532427565861768414757554328456818622564632628666242666786717484136841323582134328273868228125434728751266848441165362751753815474121714415348126548434476343852351131167568531272785381124378262765877342255871268467136464242836484124226365358282615427583783112211688435632227175586123363373511336745417388785312623811745755548234731656312733551627313884528248222857555787751723633528631622531533157517171238462431183235855115372137436256653512517887284682378158863384831872148817723858747343311286658647422423851856781332628445611672183381346148387426348858421274381388474157687435731475437143238265214575244554717855255665555563778726387723384645352474148663542588735616645176368427588223477386845476247415243742581568827313617355635546721712857674633234261856236741278358123766816321336488612343152657656523823611744258236131316468715233424385445421484183783216184216418818158661761736226236585873531271183128716746537246553751674617774176623117637222564848627654532116377358737521466738486862382588784628267121154413153346245181148417134513276586888888524138214714224362666835372372814314384365456581756426552755145473577812536875627131486567273487445313455121373185234457332361162362514676412371861115414632445232478536734168655736873416356776682544887384766426621132353611471682787277362113471471373653467134713532364245441255273425453365643663418881234221435473138322553581838587521612312556856848762221311761572318241465266727385467265347886734748485667441246754271774541734315744176827513378363316432224621252268526477365718781514333484178353724523456636226346641846851843382454355875517317667433634737724156452656314614237162844484875477183835356733846624825324418523478462167311682863132533661232531444526417167832831153126245158111132762645138888184163376748748723565436618564234646861325386847864214772417882152625727344114461577663713668464343574828386483527882272318222355564863567225237136221142524755118113151537757526817168821866533248525275156468165533422217437757761884456281763135437555117541486473587774732141644166576417146742187546626531555633386613127752537453632371116271276443751513566463342441546765548781273213556853884287728562626615771261285487443723312227356886261257836563126465483565317566351142735248551883233478175438231235177513524274586542115458837157225673615288528861172573276558462145316432443131134753836583141811542751855858668122115432615485426687454128573285352415543273434658412774442726858216431617546671636575835617163678388438751528387815557685412477113825512633627425732512757155463732187262283612275115287164326681415387164215388881226571622347885231144454653613422141112816463885586127473714643827887175483672817516324354735126773351586831722363861116241758214418265727818613565662456182167478185647484164387751116622578486313466363475514356423155878728215458756784342443272557645384222534478654755885864221655875363126434116272347845424471575162471784281818744634346742415823736816386354835815188444572243133428228421524272677423447628632841558262338424382281145717746611453441271782221436541187437287814348334413532372582662121816717887531632552658415642421526363633553326577611257432244313616175332561874425487237252358528777427341338646876667151372388877685121251284572826622328525214841553544623671577217148567274377311531153321175515466134752356776448524726585643388188235461145381327418137381218274287481285632424261843468488377466276383552464587372378335851666885384226433578373512284376443217384325627673577487627645356337257655737385414254872453557387673516758584282226375477348765543851235754371462786114737472843335825482628632827337667276171371763323472155333123586165361417245144458252451723647345578585311522526513744873757652216725353161218851712351545176756548771175715457444236251455142415143717385532832425141743427534647688584744514746821662864774757336855416756316885657554883148778372522767267534158712362365821747566741336676173631836131323114731211284562846725715277271476538216386321214786144552478284753464253482413848343668824584645888114151267562183461838485438638586687725243148475245682714763633868742135836845221455535128152158818173372135214758413672676578176154887782172566514443617126132316756642458665183236564346618748525755687635814334646142312856774861336168536858871654772176324776517724437188687661758833365421262858183463448876167532824165158841526764775674146718652735411882743281637862366624656538135135365372324712615367413655338817432631722382167665465447671561171253735132744616824455233847825187376451514141633745437428221481225531581564334677222651548277865428445212342661558375318734527231742462383436572411616381728287273375212154378286257853684224118137525482535554346112137558868568382816661322455726138772445388387148725415521283452111341576466342728256677316328488234377522325166678316744262122631224673765342616516842157335417476845372476354861364441868416114684883132453421554187654412168448534817714153777346278328125836585146424585774574853845427727436117356616882828421765426785315815487134721522263215427216484884238112441412375263724581841415425486312322246664645173266773475121622543767211562778254442751858181352287668732126687138814516123215331767311577847657618766564855145282838157543374125618325677883527322373237133514761653812681613521328688212453585567857184855276217647564466626853445325417185473854371737466122166565625482638671128162514276154667748154234783754437278563365383176643262517783833722375372717272556448381141241473327725613272483246776757563527525817447453212573866323165134755442756668575412614135113513655886273425844575422731432458474871555514164283334413325427156224878586563172871832321538334823816826271244313483335147877138331682325136536743743317715568563533431144454148423414281754476646556356413773385333642484532752576821556884331458684511863725164755726476511643373444416487882334512828676427616657787137883785756145671372222774533143718678361645318347258184427422757436338413511515127874135834626551751417757877176844353516875687343178732681288451555866362482285282744173283615661836331565452677762271256587632731263786133352145338145662244877161121738225185587488633444842315126185677374714313876376377268676153332725265616862361184722356652171763481626421546223665761133817641156627158271517864422282187853137688452161236824222812111514766312857132742418472477558316651171833645575683611545361817648313485666234761132782388188728451688333142288758844273182634378325347223488864738254238458486427618481436374467458468475331738316345184683746547585288632475363187263613676312236346376232437634251476752182862665161783815675286815372456344577775752712175562822546352186111548284362141653755866312461746812771814127744731384524736467254413254662416886582844133471263613137182813662826272354587675853822737585722624338464588127323262412861442671614326343354153178381156217136164213837261342551546352137542718231278856586757563265335275166155664636185747682517712336411726458433287462781627218188748731133642652465325474364764645684464617861226355851456544515172277558453435766438435758316771618235667877434764774161561226373285468253875138276671636428643133378262258632658124754265146151375862277727183652637124675871125522488772546568748242368837541167314852723478121112245288858535153528387512224824185512464186618622251172268261331477685185433455577345231156778534451636765262686432612616882511653426718476343855726654328171225564841847368531778244543256348562553316231654718721844236851476637568348474562211382765461275728672213221244464518646351178536154875264878333374358742758367161528715884884833335811182587152224762451521828722318174213828787374476215756444642245635183573467576786342683227348517267235248886276877747128551211877467142547332628564345887875671523187258643722477773268536712733238621575837672538416166747881863545561728586421337634325161267227341323347678472252341456431752353354355121638541745771281273117318414613776487572125845623831337377725788448283865555127172611117755135865552827461648526454462826425678334432748771648144147345554223623725116684734387471364535815376567764111243678237221234532136678234514628657336615738758152376381627288122454235415851856284881553378182213583738485272466856778726672512531721728344282553782661118235178726568461878612171824125517273632477334178538644585884222636818117511115867517157334346526273254825673871647314136567881574818466615181631552662185884552628632158557317433356465832143824473348212682142437664833287158213517584624634437212365652456174411258288622765653771115727526566648364286171315551322413332587828423818323444666658418713637276238131837177144721636314246165785468163566447825547368384167216743325268813681324227654721642873824242683838637711375724558427615285162135617477223662223654283472185258771235644576768112371525424116854644728773526136724643272343827448581178481611358423447663851465424237637518584213556324676681833322282642567677634462518244834725114267184738313316566256546138315788358417345365838314135615233412484834447865265215368718182348255518153825243668886444343274688226738672313238234567868846423115645614511731441566158154462462113373314453217251563548586738611885835831246668626137686136864124316411224887861241818318816177415155664231673366437158126624262633816186134361613515177416521651611416178425253268777374136617668476184513737114688286558326651388867435664445521431285774421458143752828424876186163311653768361525723622728185682883664647341318477328582581636575452882325413316148114821583341773542468678871352332324473674428643586232738434654883337455716447767276356718865331561366523854711227821666654856171176448632272814412468712287585254565247323473523726383572837524671781388546857816245554753562511376315865562128643888132448518336534722474356286275785681526121473752661252431125362737445257882344571283113714442574888522316287626486616574175711388842648468316846376542141281236282153566116762288558621441131625777745453288318751433534344325864747188365356812152174215516183444818546172663545443851411726731282213722655628254226237366145765675124258427311427147475271453527181213214545577153816475126466255862243367533314382811228523244317538835475325715563654216186527377741378866224477643624833345741524352725287635566788887833427448462621838668323862437327626131673814514262768153185777626328886844414637724485682371722411318674632755534664814147726634332288337514633166257238672341463658582418572857661274152853186333387115851225647766777161141663567464836128274131424377342825863476848517236588246332236188673571262813625132655458372871525764487555786186258454372246887242377213462136628562161852322645871667611464216741117763812246381164581647635118121487484668367162481551883584213352716363768363162284883323638835773465453145153832427318348348476684845256738232161767783473322652252344136818762457386542844716187883382858486642447763163151628265511455812673586473346547676363774536236452666112415636562287246288778371127725833455722887727237772616427886155362858128586311788836537124635732137118554283867436151558578263443748385472675224838672615323656816843272828442812566616348312662433311588511312235785581137381281431256767814124564783583888667667484637234384621118125122877425261314124543815662343842138537152752823343311767817183262725577431523527847885352257244123347777815257518417514438318477662256816588351756676126643671427331181441845837685867533867118518568673767166783488828725583313361215543825312517511458524745768571212453683851666473144584176632322427774648776235435444852382433662221584238852161515667566628646867584614515462588763528351785577116177514247167142318881178284164778316772674258875875648668643787437163842426822566737465386375234612882184482525255887287433623273348544551418884451231671847223256662274334271285316141612523815362156575854673871574655774731357163727174458746562836271554346153212511622663821228586528641123433361838285587575532884438532732757422447653572784158412852684866325438712226315462467361411584826435826218745172875328438175434677375156516772168317216112655628456628141637781421837317441612634483187136776735575316726784656763163533362551278666128684236513876816384555564217878425885653651127657173647624213124324856727881453261582863471353652616475344378683413265514415661712146541168615823248766716141282813536631217651142687365171155846368638715542343112518213885571773446124648541727178651625331817323522153814855731666387536577426478244242314454477727531888786212186217135371387266886585235542721112521625755333527346451622754835674752183285144848682458614187262317414733444714471575146523815235673653553613246265576785256671814376242528781226732277654187686284415653618637162788335632262751887163181134712856588728115771541344351451537384828562443736552342377188218635137682815745281182331646626371851335583246433233422275424143745467684817411438662548272353513151536886484137161232711636857338188657154467874653844614361754458372757362125272275242648681733632523311572156862185365812844324266264782616384518616353436625118425782552357615375677882353733642871243178426851228114216271224373154452814265386854445261752886782314252577774541644737713667327244651465341364388462858875666287628453154682286214485444621146774471753332147767264478717527886345181383214151544678238852757258357857874358111547157154216122824421718331847852467341752121873321162582682544681222366246834833848185361275522348546336531824724484176214456586442744483255313753751532663383144827837358778224416231384383663262165486142834172651451786764142324424225427583668764521384768561828132641288443871112247574111712672813523233422133843667277855733688842354363575477524388275625674675772875783447885184818542126272635573163126563162568274356571624372545753211226141157174718567865731873363372675741355615358216355153371674853237254681885816512223252281553562874131121677818172483363887254428528627745345221138123323784815864435266717178158552853248281756718423713568531286347338257384874586863835448435761653547464433747214454685644221283217122254245835131216372751575866677464875277482518246173247735268813161677223141832311274154241847245271688663753873512164467227188577254231273447484218522183483427343353176882732857776846783744535537545241174265611311551731884416257477485568738728845524673621116712526274154623666735863832147727841434486765682142538532636274178772822564744147362235465683256715886721385666288463565144126787856335332557776728646326428255821244473588376655635136665341742833166436334681828522865481271433736568267317368877275724747752785428113734337835724383646288438871841811834627358675626345378844685675474842377823274875263636186334778863267665851144557781218583571434421874538241583453468188453163425218323817654868873487483416627815813384636128673122837834516183243268242422478757611158576872256374255416345276526333371875267782827537258447618433457225737277468222614528488118841662812438233142813131848846711734682834447627876788584244875637114357318647515882826341735888465882388263881278337132761368873562466848848133633436573676364577484178171683623852528557371718245623287354325572641365711841461883822524513222153788876632674444613554822384461346311164787332463625723123155781486588548468316645787185462847553868833848575246775281787657171377847282648831667284843375244378643552426328146833824353546832515722651388814356648742185455376857731436387628161652737171627174553653482734411472334112148846188125322112443151373378253246523222323523334545543547258541862271327331664784325348652623718687686536361448547142617446684653283823228353713677845456132166483442664358246515866262742657383317544566581227422187342416713231155213737521457256152352642832734325254675671214818684558323583681723281438558815775837846783633412636766388741485685248788737768817345161852562246657517151834724228473548613576348266573235664682641854582751244737272415638617537684724865556638554751874721374211252328564344215677336615448521513744352475712436268511722778431771776835222432625633415283213847636328517426587722168387265538882631247678314746851855468582581421114562468554826812425172286318375433346213384842751454374862518213233851278241436147566161771712672676652646481111857232278826685853315568375872144534652324878542462875513167873332666585881544787155263571447467524834581554611412688154167512158523673685755462632586668438382254282232614751183228576475275367476365283575375366371815473878634161646614348733267257455721483565611167417142367258585747754217444442877788885417154645231212145258354731778186583823442238384528422581548224764666176385335376887115238652235212476276465811665576651385115623731448775343428543325814122671564675251455464834323524625854617146338475677671228531818455823436126534788566385317487324565724183646736681426857784385348521638164746123654426752771172848118625751232414613378437245436316345722541451722226638153353151674836647771738651871585537833167567743371344266855825277837815753513737862258745343437827777468388378143857883184143745633136825858431633523582513857126176378834573655877783623117466275723463431753416786257134872365423456616777688464177451555352584836367813772335781516368764631281436887736165522348865838112672781588168343564787683152827783163682385338555135562433684173446675722851875445617422657765715261423524363827244156382174235447581527154823634718287163545188825536137535465756476273436113651714427837542226751245465735286367675265578687141755312854161754287465831561372357454628723457847652854872615717253674323565156483584153778131752776818736438177144515754627458337888577782665266323788831443366122641425352877261556126256151732183615331484812663141623437117376327747556624487452283436883632158888322643277834743153743272884441472555571448521735666845784245284121264374335115577858438524218326814417832213367728633682672311861121861651553335818744818785853531377358124127515278271236423675714218277378115574218772521785136424182425385554841538772826126437717548248411762524462524836565156471452118745516853275244582264412226474337778271265388714182438241558178737423438864425874186617764468327761168833174572652138863111818775443446341768642421816364865718424325656733354265263881183341272374448188425542224274288223217415451456177238122531825537854654866623376711417557228748231355423181175666413335147682561513742721538283431733434853726537578622461856281248253545526336775656481483278763787758376621185222567673652548584438834615474116758316568481348458152588116226468185648387383738742187867378585582736652587542222877744568238485537814131851673877623778713347712618772467543486338523254588176226784116467466716327684141628386573574886784171728678651782322148464568248656484458183172873284781746637368128234232415284518557638168716668378457567287517461813511551386822467372181722435425443485284553785324481572371833263578665131316545874518646786778734781363161721866436867316855535162665672421514226518341612235487265718541312683341865182884434826457323158375378172242437861838665166178116215613824736271364212627126574811277236578316481777828487743848864376812838265354625331165166128454754627632233311544522724586238374753276865386416467351376861585641858223742543256648477241281464536157338251242826462375362125537743346232756117451558153351864325646321262568822836547741884835586288223131837231472333372472181626385318862774578428626752632768268685382436555583122774646781616373868728574111123251682831111614662553417564272164133836884831417223238546162367457747137282337121331385552448882735245124754656445434156812811648264733277648851564661356426572467512738361362828482184746251464335178662468367263173533248886475858486683288626621578861531264636372817237755134758743815573622848711681265645721761227475314568558387312543132178851684882358772422822273272451343178268114178232838216132367158327214112271788158678358282614636126287375862847513218125385654136743371547747357367276465817421652586611182886734228856413812576743474588678427515411622163337617853862515214855565344552544822464761532752324842266287313414627185725686735878266472383334466343534651441615522766165485538763272357167137276438135342882774752647454726341854733154228353488651462444265827811363352346673558353416571773631636653784252277218221775568883635412357674517885817153276275518746643467435331827388617885546277847885344844686432468237448767333178328463748248852864488333755231632665628531435678727637814175154322843513325774453885785814271517668681172366371575252737846584147166772164482151643772665382415213587654151363816852135635865253217161176778276562341811464658676244357586221733666734472416442155271816335327352181538376681766472243835434858667777373153635471384577772274746334263234217625745888475263514344426341757338768155663286456442758554385724612364841858562823667683123584632758843114651448615444443667747881855755376437385418551474364734728111235847364771786444747322313811821214817886136376732353483481252368621576781234577621636842656778728547283716851478442115762556218623413788152781782563746658376748758685361456285122316663556247788658853664384855753228272563342824578746342417183111888245466335683374828728287185284768173765312638786668558168585668374257457572451724448443172227743754558427531223233767145826487678735744386165367342122314641574467622147742847668541777853862474846726552352185658384275273876478151773618574145675161374663116873826377833814562744542865876661833661121321744535178846534786851283865616442561135638878138721716263638143886681331827727381247724154167137653376347726623334216573875787524858253642411414722571747424842814581561767427761627658267253421868532668427361432864772613642317852285736254213151547465346566128247672184171186121524227462264754388255564671452271653216821166212224742825827286732243712825232123514355544434626586577338728131177173644656275744253883745727573381632116422866178848333762281421253131443615111815434472617621342322455635836886546885755673326555662784473672115784371428757211646785782258458635234836417235755514784828532252774837275154541267616615624431665767273655726883631181538172618273617843532777721826548523774418665231243337728712263724252358733413427427288145767246538424814854286587317873165648358262652746233553481848752326828835162313533887784887431662868733435356385372232526131184357811321523752276368132631416412812881622113377814824753754565356335387214513311467713255373818212487827138835868728712138386776623471874863236177525728324112431677776831243512431572221671821657512765755713626664885554522675186378424615166611751112141367474672684262465115771777682778333681568646888461647483268426446623448111716323474873816757252788144654782438443732723454376256232213353163166426387241637341134741743755228532251671614245228268854315584546333486536547265753654744311624147153666281824288435511616645756522584214862187116237884535616428277365438635115725314634864513487882244167377536157287574642147847652138434876587177745815271135517717456425772648433671318372533871473274467533265131252655815868816725352172487517688465633221777456683567766284624566781762548382131154731221678612481447583288488254345426182851265811635524231156587688165832824515235757362464183728436826727237457833451664131172632833511881445215557374457126371141417284347525141848174876372876683413783355861624637774572476146443483437182663733362678834384848348577157384363566445117237578518137821348434451265743655174142612513514246588626852274483463534441711282542578274153418413765221856163287145831135153183876564251554853356721531235115413138222277633535376838118226627686328443863775423176147665417236534444732121357632835418848438672285635446438813283418311713767686351761274272157357854844382657141136745838115581386477873747623322163563543612417756211582323322428446667887745686827134263555664617871741322772278143265572147478843876178834157663175284315713354653331834318763746356664342276313546335335863856688435421514335556846478146832686318742512132357842656531734654381865732685736537484216356333722575157825417731675756258772731678255654261151678832316254147213127284371443471171261486881417671565511615528627314421271827645488628686847876324435443112765272144671462826624666367377432648823182114753435862355171884225764174841126435882727832187468546152115774424663724324523831881356434812151427768857168163157252484555466474737423221224186662472717142378562324333122487252358548111228265184283514454765162623381312277584513824155442614476615413582141452453455166787342678328278478185846888555745665844546531165675835532276766884555625368432186271443566211661785354571281151448471343631784463667183768771475383133866112447472856834768826426485687358261627713283548237836236312227235263544828273763323136434555435552823865888846877277572844257668562725371865538144853656268815862641848142564475732214587458125876177848286311851137557383851126721264251472273356267564551667316314575521434738213161472155843543582251711343853335834245781125162846884837724253416837566378452544133486275366617862687173634858858387572727545148775383552127513518837218631112671226433314162472371767447527475487717247325454362315751568316823318281822234256457643451482651651541512421846657537574571356428274214156127471884647766868372386614776157883543674566831537727255338844488754672135484544476762182182147181258438568131435772672756657566688382328727737426242336783526852877728786346154468572227271545681172857348122555428611128248378486388788782557218135245628326235561148188251831514225656578813125236733454457377686732556243225637177373785323658442263874715445713617157378225235842811386887477448325111632714466663312157515426148228878138263731767644512218572163657532255518583157124782748825872484225766382557155244385154552452473126652877354764861265517743582554736184476461836152372122376213283757816351354626745524753568557714615481232681173214678583545386464873616842111331684351312812655121177642842532361463413468384715561314285125213846264261181547712812377581167168653768877688148386485351167861545738773228284724434535382658718188563855871852852171521775326386248242688672574483441478127326682525742481525654855111562161648862245352173544581167722178153628781186781245665472761838881733412572766847475628713462822111452275168653261638675588771587681827231166171721644813777847424466276358654435461561518468711354678874845375582544315743684426754753744348887628218471435447133264148448448726716413552185464482883547447135625166872257365724671535376141678852346233136227342485888311347713134757636447778725375812516473456888362163532518784342517756258558452668822742477523333215581443187322271232131782281222641472476818114227327866173714847653587355365474262867346523574125372716384547823275171387353655354432742282764177646375727251473783576366543547473617175712516883326154467438347224673261432686828681647277272568137141658728277746811385261336388761732523412282778517234234431816151218221838773641221313445443128781622772365346428425356887861856627563668881633234661436333878557164411116165478453252755741662548558558865471485317553144727133884826514758767185751735213126865134774856743243784467855323571783262336167387346781255647115181877126424824725261275726227483552838677146228335424513375631845738464277866516247265451628674854511187455712132847164132161233578657263344543687212271456468737681226541662132727643677485167514532343118718556422351286661121241875242723375177224731464543327822146378323822441581616657158857157466817361212362382664146732514447114841632454354287612872732333644115138872313423843146326121441547226175772231172483672483113757276845288312126835264311261556861665844742651448625153268875578322816157834864543228582541615217185762325678748267723637365885412155376425168653134454382486143828513255438415625731851161442738671163325223351733835182745528554627825287433423415172766135176126514274136147376854737241625184341768267563412666256162688867113156668533731516888552487862768644127836321447633355163858112143141814613346771724421676283157368131582483267825364883377681287181726556841337834431658385414274855326571374263323454874421817814113766854162188384783214384752767654418473388228365386683837622586534243262261167384538823455564883324317434117846311858365428877876117722832722427574521658524462763654756635844462728545264571367641685424675622868524282626444224283412431117264233223144775716382388542248136215436311645833232456871212764182632162713485677431188818653262132285375672818457436474151443343463166285175527441775741854778183158678247716521385776532625685582556471732253847186615863413652514228367151144851271447754621577856774358321772461514151538373667423447147285442268535357776251157311724334747651674368154445442842881128464845121417121434838738588617555626725826685637182565584252676247536184753373752825144226385676246445887385662538613732532668473184384183625438418457666443447427544553772135832567184645648247163124113272644857657717178181466637735153386373225865378848883526416872761565474141675668334276784477361877436546672215637256515821413512322663311572622443181352888316248163468284856116173177874775585113828535131317113371764223368846247762161267565753516187335726416383281866688272233782684866523323337322551275357247174462781282124513668443148568137442531218467587532465748382385181228846541388252355518244464548632385558585271814534147572513542762836552261867371782258476341577676148833635434111282781532571125485458327851337326565327443522631366285152172773216745686518762515772476252311322162282857735652341245762167767834751845435152252366441523218563554528267434528522856585815628574143665418537158345661267538477552425133675457152227322164868435373746122327223842534636714413546822581612221575434467145245286858125755163272382737317433648384863457622131238378671521481431877238652752535138117736775825568153824118321438416878536785848845747355856886517283225582645647282624268555375682174338464617434355372714833568766856764384713238434364764632575367824814185464174411577127265458226677674872385685751352145577288737682671785135572614517146423415835781748442618846357137468678248428461474342812537111747773466127851667283873213113674238445216811146553557567745721731774165463436757623566127555546574682734734426857812568125646365431221314412116554772771824612252841847377285556184243734315286477442871766828625718178275482715551444272844463648227245443523244784318453516437358731174383516655276283128753285247745375513377553243254786113286171615735228573866242326887827532668752431147342525457224816438582463376352742813245656223735372585784235878146467581313375571636386365551534746616687623872622146344886511181431266685173212122746713561266878113762361352223454644151644333318245478571313317773745821151151165321238335233167153322383314162611681321514877374622412418826756535524375433267585743671533324567281334466774383544818132821477863885347683273234232184186612488458151535813726848125281552467323788722413452143622381343276175455816714148721182377878814662314465743727488565464253223581477782166314654617314336627534347736831331716743544574313165461321671663421684128546667841284385828856887864445361643137254258741613182885318533516516382613547475685471662532547287734662183532156512678412555442821887156425222548663224365511662457261562751614542863166574522567882125781867332285182758872288584356746533433642236813816786625257542283215136721527525251832126867254134346638376247364424633121782215388667213827711857172388845253352828748746574341215844817271423675236716135566247647217636434668282433246411122485273112345428488648533864533677313363567725732355225572645528421344612144223428642268133285283737354468487781654572452576683176718822756336363437263181756222468151212842538772365565326635753358876231484147264788831451835337732455252265151218118214214517857788172217461271752368458868434771685875432516673426357822825114778346575446264126628212463631717618427167345723255675738752848416128782323565881128367254427435236675825332527681227821158762142776175578717566375146643586417386182526416233557153776746487723428542377562823687673457753235544214188756624854427733515835141167264221477864123755725164648326148532268123182147585783834853234256163645125228847524423568888175648118322483157476734742717313576447446285257815358741677427663176577217424371816447265824647656175782313311417727535183537181787844175113121582342856878688435376484682864183737571364211753847556823727286535181176514546441386655644138773852866674718428248572142454488385287733273224645584455567664614821488676665236453587125788838372827586368543358515127363353251153488622643878488117714737143626655534457653688386146578341328884424551432367384884523217246645254361811216833488721737323883275662668478748244685475313517535153286645635311671328416766526872717573113331465263624387628317284658126151154271543642424422711863744546223636657633574573733526711324512833667442485553786645322324474637864775524765242425144243386466733872448576717826277373217842284573333842638226415343261135841468318314446825666867351423524552558176486156333586427421442814225733438714543512714653716567656235248181441782172154484727273865176176687746513424721813632875254538717553311252611717666532126461451812713785656786261731113756752548686675857583826165266222856777456682277623112677365873648126428277113474745124511665148127668355653811451532678656857838462487851256763582751485187851486615252733576545677726833727767214721514522365414355845886741357638756225118551642813413776728358834513763685351552888247485321728346224573225866653536146548331824243511578245827277573317281873163324148823272668533751548384561888853522581666328665325255362837481752162744466413532224341211646682568441887237271368664574358878712456426738354157184418441138571723524217748845651652515615338322264552185876212877215473816817732757856222883277687243588256185871643164851778346136183675354848673851145281722215711177514667636183114384376286634312268543172472442847435741271522435156334573334587832276384152262774567883835355155768458562487632775575747168245427342357163543722346581383877236656758256226458658817814313735182747461182746362263631232262767622458424214537421483562688833382483115485545376323376522264411556824263676372671824245453568384156168343632418456771183321841412628221574324336621731237727438657648613112285464546225864426488723341651538246586775443772231267213245215271511274588747866644562553273657718416853486261882824261457431167877338575818858751234248682665151544568758622286328611361516728863881733465582274722855672131537583363571745824863265314564536183176344887571644632357375745211418111215131785354151684265455513273711463457642156772315722142355315343355231312871277626481632833554586615385351165714253276445382416644371516311751263257562187815271667635353318183828465342738356871753155442827371284427317284583544555651657473162271811476746752273728574138346254321368128482311657366765311132151253731778116642568813543223134226185243721552477376681628537618385816887521757382822151614442461627424845521148347113271324137261677132581682375763747546556463182511466483581774758513267772787517641481621485742488376734828671125221887684247377276556517242254435132882113811488642463276162415677544642513642223358547845283637282323573716685881752656733165752684147878348748522653383311555671774548474137586638637855821258334475483763328652375247345121621155355617616578766852373882633684231362732485333734833278142372754771631778173153555433444232127263835178157853264424724817225533832235112513481538172268851224514374854721658428376181155676214232687146728756355632687863353673543123684646178512372745162838351252588663136874772653238133857141811733635181538412685587551855822684864244287784168535841643714831133547633423528538181724212215274545118326667387264256336154542655353784537157534856248844864211416383725327242243826778873453254888841171854174866625313524531888874687643142544875473481751815463538318671412886214424288247764727354388138235843454831555317451752371771363864265638672877623388573337365357345877526361242547463486373475226774583738851714321565854388421264324567233271218333528625536341738256668673614613122588142433426412665331667647826235116851367867742464432883651131512816544381772887311286233835156324868167743587415231843743125446811717357317728337488438741185745883334732623223838762423537163333223613761752252115856276181183815375528515426574261587754858751144356873232858436172534528562342777276285342852258473712457258186862281472377418417447281665675438557363281817847358775442178228641547753524325721455816164753637747322643142573428568273337562115844115468583435883567886753554114272377287247444681181733774755341477367788338665444284463855281714682141571527252372684641825515133216865126718614778313163323823243516218455136421827384326528411761442857351557656455577315353885116762686358775281355286477367845233388672536745572166414217663775121655478151618582238321246135643465123588666373512433427731851354753773455274134374686165157754316655182576681134281767161822158684354173758462847834417261365842347425481334588888381216221412615424153753217184884515883118366568841825733688257525675675628336226818567737421232761845213115487185852415344467325878588766415875541787182485223471316883511288623463767177265214814581826636565562555328116634734351812575837485317448456681168254352528661225716552283833528532536745422411187713688153315725147432561771476334383357575137313142818844652152472316232713233544731385747643747877312247462782862867542113454322758538476335428625246144451442676216255445686634827338632676842333144258634154525148113371542362635152582114465768646535356283354528778551863546272814241755751228857821576537322413586368724543587178116466368576735138617657177773484787224162322484122784652111445485717872118824186265582712414153214812618362761473618576426788711361117131277783763727466725613338141411587877335214827388735165635676636231134242313643375888433117442132711825123376315562415472832615845634245541867524335741633818164637618233828647277432413458163582163553745475263613828755737644811763143352748816757741178754345182363685548118672265861825326825622647288161645827225263485153284458875852525174553148175541866172875537688864135411327543516825613336163651761472168831852643221228436768445551366828175745727518548236147388885674352513182542583175358745641815412652567772548716447123286384815676511178348721235884321611667885525621614383316513184122784574742174115231561777174256845464425623784373188774653635335563684352242246546234666638238783162154878768432221376826531426488655258643385463587858613421165112274758184212427323784783761462341732437844656558844124461124828517411282644351854322428236528148871656536123614715157866685518154781148317575656857322171316873322883724358775277518774422215187883842463352438286772373411676246441347641884574867116113777483713737313152176264844342686233424364251263142757257358577887318343358462745827443775714514481124456861645816717786363718748857151656587185463343546826567423725857276175387673547386558152441182728284673252213618334836146626865872121145353278122162446215762136234245337555524481344855288862585618218861583138153224381387423881522428547447421317437557111365127336751382111611551476873871587172363188261841513521815261331185832332328871681128718136125685284487326374854136813413275655842371778467563636874332548771462566254282527572371368231128823148664241163532625353863155514717741832187142773425463774845382743732512465553562278253523723686846286344566821137643862353328878558858122664644415463365583141113557468633767327835857476672458615522285267861728812748274425356767654777664626327458173425126454828416834466684211615123584846335343636233418571252654174277827217472751161125212374353676235546451236348127688486833286576142674716187616535175437424263873622157434212525231378732827263244318753344583775421411587175315616357653628853285812627523121657183726784451646813175534415437836388565817852343546161516721511888553741525448611476184766484254215281212455433241828153317733211678411522852745713418348227485234172713855731321337252748658268347474741124223855677757783471111758813825414381457212651115615758356625855475487877154751387564216747881535744543127481581454532772362835465581417855164676788846264324437176737688286331811565877176181718577316383522673438574177757747313711218222485485354458315186583774711473238768461466114563222566643742761626251367574882871217467723551628114137455555621732245186453122127287884255486546662362626585357263133147687412744132781228655247442446872678563165812833515178538641838267184856557741267366286256351747514611335716583426615822624714365683686874533542312861643783326856886571114865215851184163412756145764562137525711776883881262773131274357268656412166156161328617323757535267424572374687671351157434877462213331268535364115621523518122213145258778376476125134164533744628812878887332631211576646126258158844813386256876884334883618274275632632327812267366753274668253326576768261454781543726884468717265818833538127632824671236227841287751128872425324682371153523388174683656588672126854156877817715342523838817671445557325716584888627127818774487111712178417587535136717442486857818726457374616316556452267853424412644243573861535347234888842447378781125212232466258347817753341826117225418642836737328112435234884713828844134726345353153665231317568554566524825221433686878115532457561787888422231411184652222434841836426135254384864146337276532321138443555152527587872715267187161614666248381725324455647244821682125588434263614226671155524578452512421537717888523338577116852118822844422271783733472353847725374547676464224414648564735267413726645488512122153816455842478332166362223882287185312865771614721144336335512322847614872843182755385828246164228685273144353538734183817221683263746742246286641248286825172414384168351668131124631183287818144517113245745727857156846614327665446456141673178842633163415867573735588667563236886864224467836875435452875257854611637245635383742174272464766387161552122511554668244871444134436588466537271226282566666141283528455274588671881744471245234276187266682561356111455536118283453375815767561262823433714628665588251414261177275288461587462527541642664432756442187644571742253283351711673816115555814854766785187744811261767823521675758435145588176183741238586225487441822272756463713436143664211825777683467772132432635618786867412837275151733846711347824516126871685257346312878873335783155743528613183723827873876422737172481151336528576144333844226622531583226845464274673566655124236283572336741757882358672381624141354474737474863265244163744314831445725568653841224537527618212816275317361634456876437265175846322458356826132725228842526772121362757555768126338781118757858552747551243722544231747723578242435257743221345424518857312886736127713722722864472876674844324522412471533425534737213366368627837772512754126456874361813545315774811786254516361687457713148624775751246564281331775533534562846213224731356351134253573681782562481774516213712884342612456624553511167657514713884232367148252523326757528555555135863643368382521882723745117212765136443462581376465418618436373483136148768887311748678388837833243546538184825686535265234574517727247756315462632847126445563322785662852265844135534358512714583226188716461861434538175336783675174161666731744786412842671524138242878327462452788151778447822732171517425651515461555181582642546214145677337745551736886737552378651724614257321161738168734622346834462777226824856864726775621311426682578377363138567855124122233468676562315327845687811378162427846364451183474651552255663861462667774848787831872764341314816773532526563155124887418188481265287458173378557857454364271866473335783286648511856448434421735257614588361372343644287646638715373613315331234255574445174155383521542142154277635746342724813332483356468546327567358211517432541846378244643115712622442372143116483176212178651418613512413778288483764172644452323348481465444888376745675232851784718423857323356187256748542527667611813612636413335178631758632283753788863521511127642334856173468318382323464463716641133341644274773812817422462233746167713237315363461877625818848626416486223321233322681351252774481746225426248537416488275351361411628341851574422262678875822523582225272335477554688373764633158367552345881612761318653722183676432666852632775523277456535854516431685755613362578122641815133463432177657672718417247828222467717676427856114642133824745658286152364235516577751148411666682857282274715468244815825683832274614777868165655243715172461258626664227134311472432136731555583738842622727556616868228272682171645574655217848233724743172776721477721447312782763856225181478174565576363522318681172557365274587752158466217744748615587775815686817412232612166814134812213348685445335286468151533873761784324735168677125186156812857137258313425484883163437735821788562253165672767141184563132211224146324577332746722264577657431531862886786167648466574331761484587373633438264176632764458567824328652865777255688743385312711213767855211183358323558241176167341746134614536427448464438845666627181251524335761623736621844573382414532531717775858276862331336144256311176734186815313283735515521822826361778546176116855216657726127425414128784161455173444716564116523685232348382568711386614215736763485321225362827554321782872327563252773376238684182262865157511726111315628575654747631716257826326126575241326766386447161552258552316487525852587832618452646382488637556113832732612224378665414444788461464526754675178616254558815523366684138284667387661125573685627856451175128714662641864334465351184657865426844625772872324551326682245786447521755553475816838568551638141862547118824214864737343472875138783361362748735375676884773143833865663443436125281858437318613885223263522274418485485735612667881717658844444481581141371514488445822712326322162256271842152865553414512843141833621672576673718241261352633435654782658476764357162263146355537877158657882336741837338625875661245217167212583352245714162545556773641231456382576754221471616351582324126656571253345348111412232353565216555546571175173633843777182278535151414272771728773157536422364746556875221718747251578827152113757226435172166548286245652738215176326712617338255531712854562131438778141548444884874246383453465113814628563638284367883845252322328742415777463781551541232834862726657712355634656327481383676837651142846415542378178714748412234238133348883677382738314741134524123126616145471631631622472714363565343614827572614443681847865313413668122875256387534388186523463486418264656173886425334543885735533241575388588381471814764343566777746176112836135686268514562826762165365235887267482428572673121236431643243651115817766181412172424477463484262758345825852731868374881716234166812283655514687586153733523581371185137587624574745128147416484462171416277632676275788535242378153711588157826212772612825151632628737683272518677427365447521477361281278336314723258784223352174281818523211378564221642663447837635674614338356377428275236181551775222342367613214238458134786765383537432363581618312324663411616135568685621657377476853854185357815542773715544182653645725856424667445786857336517843271676384452312542844646154745753887286538435656717842517657231526415266715437125768131415385454154347627252661227127765154566172276847431383114783365442567233141642254281282641833574431823377848734221238851653672181178476847427818688584626672786565161764313173647266385654714556734761817262146828358825166188662225765581451123124663261478353261727143178257158576813557153146177887865442324743481445327327836373265421527813822853255876436135348872511261462357548117747552752751577585512435778788244166712176112541261411878534555523284488766131756557223175282723148257715565541854775641368442432314784141662466712475128134743644123533261313674787181168124477456668182733117153838636617612447185664844711525877857224684515365512662643775341785324758215513151277153336431471128184174635637626422412151118762671255627777525264164776853837665477815484752448413886652622474633483138121324765131456627463835732731742732824287844563878337572662423315464871661674842572481327456476688777711878144317244336748486753731372345841146557852386242584744562362556266828674711282321464726813268572871728816172274726384685877583787771336635854816586653856714243886681451142112732286188735241218477571242452614821285278661477132558574736566125645328256852662824742821573355435834558315277166421218364351718168431122218612344465367481446124823885225646867374577824135346788154343716214812155827872422782364787147755825737478276185265117486261653315785383227584221377224511343363728328436756347145524862666881848751384146737282453847714561355311345455738528661722512535352442576637377848575557765685226162771131838628346768345572184766143655424353876663554612877854655581648244443615122488577873315764515521131387561618635123421514634373155642517548267371387458788234288661576412888726456387737426743378134764833575377523166815241577181445745783171718222567283747523357512187365143534747637818767764522786283484656212664532265842811141558715346656734856744335285361823568113465225277552672212685487315312328837225167383228358584385483634273511214534725411356486585725744714575845876427221428165327762818354527623132841582268617554442847416777271845881227754566627823428216822122277886462888267165417427775674862462115855572355755684143617155387164666222426813238513561355572385428142848586765636684688843748172152742762448178615644388348254158731166377873714144444168854365855562858754714765371486348346587151256218245338827656357358617114236523214446345218514118836647767186466812342538476576271822385115422168861733747466771538768475577482447537568425653526461314823367463883448377821862217345683886714618843547138126846747824313851886782726526275776221112118152151715684822331764586354234746822668335316535671748432555835337561284632841278253764628273412827134263337455347435786674525716377684124728124853418736355444762581688146658722737612217627711831561245827758643521631263548618765471637471154813842638671651584747462821875173467541218242851332248136135313546162748663435268444823673713233718574227567181685653182363343683322448355632787131448543464614633476463642582882835856781331363526824785114814213455142162767735587873183551561815226381467247467223232286221212421128253644581863374288511537431547534588824772778288716768613334273388252346474468841683351354677627684524238265236715247734218146523662744667841631212685223686447712585123726876667446828885511147316518456225578383182557178771571787431253317287264428216742765455358431367187514813488764821332727437554338786247187172441233825427261664348834744247458133331563886524648547122113528232435273447188264187786667138842854168378785667266823358158831775878476463648552821242717616445544548855725431338848238666311562586442131234366836441413614766625831781724226418254862243385124316156185117725437431644571642248544844522164514856177112273157872273285182123415771281415717366444464868742788376185713358773587541614688438333638816723787625548516135178573513584872837718324841544728433484624617517344845888151218223457588836476877362567541351742154818578386171527371212284277151257775721178237665782517186463555343522631224177233184751514428653662711833337657153247255266238216383175168741223533328536256766165461876527641881782445731423226654427771542387344585668316635357388247717584388647372723242674474158535452782433831112476351768874534131375228472588417231823427866841835344253127657447211447812682452876412671543153763577377214341445746671385682145111815425521231765111248778644851112213762574362578564542272266347455512656751614652663581714447851211343627657281857226887318764775875344771688482373867415872436684235313343778166131841445375825187535825818476148134747163634244684755343871554234565178113523653134638623648752878453363385557531868737262724513428422641883626418153745836474382734164264512723725681258584681878876368476667518265761786855844818245771447217772364123715156126181368424711358175553541146754424252158246232646883346326568662183868578353436283424616438116275562286728662177388336641546365488327161834748567261835686424533562137137262185823676715224576581484266681818552486146358426243282578848815852761454771328611878246118668232118124258782457446452748465388586254331378134878682442478674531825356374257342817257355833454445677362456882787514316511515846271177734524388226326664634888574343135244371267868343662737775778252366452545118638863745681277683886333154354827871265582578454413286263614255541644883126658718286573441826277237584565382367884512855845351148817332531627224234425676262273731534487526417431568243728614187127256518225858665286238216265546452178611363781425238625383453215874814616586615275653343558565238581637183624812474715732475817524657156487788713254643572147511133747257644274511541888168528583464358771718335186742357266285241265221781384868543465382671355877156246273338754212387555352445852572868258745255381616318154646561636318373414884651482363417152774425414351711876182787235511778886287338471565744628238668613318685235244852285364377251782778458837552114734421817431568624651354115863353364425834547578624345423876823226355417563381263384515784252543774482245265857744264442546652546685576254746332727368123758671155378815446666828316817851427288626624827682353844545181118828586338677126322614764344152614231758477258887737712385787555177138664478145774664481146788863736613147628314636773856213286561211272653278528314658175165638611488262271718646268664341813541241766872633513271154477545551372458624576733722536142563237753165536585845326176742667647531486126643736455761412347713232367645118362664846654757645534327753361266183587251346766371782667881676384643235835518844883738385154771722132324845735384547263478824585765814467547244668182416887324587188515166771824781111685286356163684786442244683663331821655458687663424617633688133672656881435882314331164431481468384653312887275228383615615628357684631726631353847724452584226685627716441542486875476326737184665213727447657143252878532137282728751515471852246132854837644483467488834685718273474567113457485235715234422486614757527433368883148332661521741322661224221176881724741768753545473482723527226864845128661885433443281543341537632314871131578533413554557677447548633736452361322344665234835685255485732835164767332844816163684341771674257334734825165673642633677723717237311318812241471354388231212884425253723837865666265645756526165252438732385467745478152324677713823513782345225334385284552447411666816746125657654364386247145672178633132567183486536247812471385234244457767776535311612816615775315712555843362853833781467526753488324725622817361347454275427734356784466266881675436512724586138377735127414543682453315362632521168361217553483545545647827646653376164821856227443526114868311615372763465254157828335778327145543671634815877735437614612115528857686775378738332788338135684381768244643322224114183616336763448431752788872183282563256518741354111245213318234142364674365466467182663661588113716235367764262871724642661667825318732274618854642216844617578616341165212217237425211277815563387812233418838662148166524271266667787688377335436813662151764537173753382771333583566642678148746278274853153822365838267647588874883475756155347847435866485383478384848321725661528663322821755451744345437884613376524662324751812146678145215184652727121583553756582152548248274433234871213558874686541532425567452516537841417536287247351574428276716352367227537457241117411134721416343724564365766866664366725535755234287382747431787282843185677867473872155814641561334343872447253441323563844152182433487543127867668826821476383516843664645438715766255814348656157184457667355782277465768412217873188555487647755368756466644112412334548323185322264516262378571321465366245465352413286132858557682277762177311427484783147618445521316271617638268524738356317838831245325755768422864511346188143667265451816755613158751258224157442177245581762644678385364471384518178515378123546573671735564882485125651632543357616471534683712421672644518515432261781355515416472553661631761156645337878531737688166785448512275427363322365744627183647387473511137436554785334634164581316356461213535524217547552611711144641637677745326747388436277187452112868351852285882844533132434344416183274111361424547816651182517327286554686338781252526332548446256583522352887873135464375271816232283885174768743345434123671318128117673755435631831383361352368776324566716435238268552387475162668732123733145668274424328526454384512544757122848441473412744744764675261668438464278286132423766845527342284787776756151888243723134868155531477234545232724165367452166536635228368753634187634241344663116327322886261248178283884332642371762857342336884424418833263867144216137331676237245215172474278375648542218878411581688817183886562175313862462586664524131388516722418383511465232554556642313555753683141676285122463714135871563713666335122523766626276472234474711441623472325686465614734378456257288233335411217478537826557244838548843283271675347241483373346387887264282331851344181874378875461277663466158251368834453131567553128336637321346318422632744368567261431358181771423363446833586463123728325461218515426161135633614152684231817757466164676326286288468757748282637315671168657274127868414431514441625377854362741246257386417427256785541874728731125741552164875564185753334875586767588616755327486862862138577833478425662268817375433642361221125836581676634257662613835517316718258273526638566413355823323813575464382152828228552611832388356851881256425846558788788188581386155247571144486836823483448447151364788883188683441488431345727821481885385834737876526641733384431138525177257855363117257276226385857563877641877377764378167316812425671554323147582526483221822751387328442722232471688112268842542441474532455553333211873544417643342714115237557477246267627242176234382514131844657175713237436728827135547533667563624143456115686161674443718323551622666343818326884845372211223354427623171613167267665555365656788531515573478316148664882166714367477643882877388225672587835367676242546415881728857263553258134647568365455244736243275482181432874472177317647363377826635637573131318136512417446285864114632835153636484234874311457764237436613143377657755842187441563473128124147774326722676132287282163144425881322861287567683163376641752147176841836574348653656332174878454728572238331863238837732386718281115885535272515157547463244148726116325844261346211514525685346854686846364317674615754834528721355841644644517677322771732424425668443777834668282341431568676254764752215647667582211236782476551812132316178835745537874183445435645736241118271782385484344884257617123774617557687244377634218675554433861426353633161511872526733275433272716631116734832244526712855833178653661144443624732113314787165132817678138467412623818475253723571857861764624452443177661543457454346181438564718724641661626462453263325378331318331316134646583511712116148736451486658231848216254234444187631465142631625283887817422427851884165387436555822317228867724561676226626172363412373275124162141437668367584542661654366641551584361366723346121776278513654774226813383576855131634375252635726265581425722422154578214844522838255786448241155121186451573446328515328234886114714426565525827768451141236717378481154273761356358163773423356756537656113145442414472681835667131716263574184815341221363516411551777283267654258276274235763477263642868432816582228683746182627878145645713552671318361545616182862236326638764785427142612827274387615468112452511374542441727354784411812247115741865265257651241651422333213474466674866632456577331151441455463287371824265471328882835637271218836885162221312767121381178186646116663881587774676466271251521832288545314157583781514288247331256167655631276235243562283882674186823455271753867382417464642121418322885572547164371137258332468116366872115518817666572222135816338174755365333611325246446187337816377785128475177517118678568325551418667222771546147123536438671676344166324445756357527721655484235648871172656378786378421651773347812616742266126651362147275526866745178883565716731782518732275538136823248428268848161828787351751523716745733324221728758271863174465716458371658446423842144353455616347773528563365536347448652322543136387212545758258811765166777282827718538122136576531233722312281837481813162436288868322252867831731536414353848815884621514363126166724746747617857428246564836334165226817777374783416261533363341858328264687166467781721714247811433428575887615142783863354614757668327423341524681877878451785232751217288251328474748744481814756533853744843552632576685483844257551412885827747815654781651263687648715163747545767827688666842472127234578141636485754777172886158877116817841388841878754643355814714172775571464263215578872262528626762838142557565138687712638387145237647864327881856316571116876451832777826675437268873581844281858284573826161874438454248635431111265556331887331855446411828181726138452427222823256784583468441721453384176268174434878286117688434658767544123566552237717547487521513334645668824114772343757511357582635382741851485281563183125542614818674775572762575785764327555543527552276153712376763262726171883655543218271825662658736211381263783263177741474341281511681474353538545488144575564631756584836751712122623147514643675142585376464335514718265331668878218316811434854182825548273767677214862625761871132653261457272618766117382378188724712853648578454234851158625564654851881754411471835616578615162533233364722568233784427184618432751147238346255215326622242185836112721451746334522784175852224725564576657256528715768145256685857126652567376733426431525872446755481447736525426256274463674155574628167426838342638176111126645273688587851885624333114713573662136656458514646276256234188435645312624362715481265478585448668265816131711156133652367428152868531844122723486438356165671864787587586638175427451637785543617456823685211758554684441615535477148815235317261315721476831264847415137558172128361314667672632573175517276145867515162516677885762488316617765332718155421268753563163482247761611223754777431747632166782634455576768814453584866744538368615331676367678685758433573225756178146641264743328233257265647825826251767328317281175588731532773468353751672462246456836856134177664555621733627151444188612876641715164127158461412772437326671637331788385747875632734655321158482547537628263743576853252727764624447816731764238785116787632681245645885178288247325814437654748318515613387218131626731386646337254782621241224283843662823643167516667788512586752125173846221671324781727576332211315656478426244681633481733623758322636537853477522732712673634333485258141878731671732516868157316838518664215863845762455152753253768785826474445822264736623814847827476724768327211354122177273162871538615314185131213461877252415435316584854443251456242663424126323878835848354866372525553835255213113516488556382113655128314735686653368384674482726388828367517261267664232262324628317814752344432784216481278256254144276812424283671185774316172185461267868385324188567114463577782477361266765875542318443366216854477462728416836734675612488185238646838766468723386727764643852733275168375157353142577858815264473655583886382362431883781166275152676663463281418287254251835547326188483327837844458742545258157354354252154755157143713185181423528834736872477858815214764823361731871667573875765455548886874864533585114417654261431381177232384254731742616221733757535155242363426511661158612177511112386531863524657358338514854132831373436487423255255712284663726551764214842834218471616643122447581817182352643381327682611845354454251173827256857784152742377384466445334146418877444235421255383817231322853526457467668652386286877618561832366771544271161785254834787842147422246631637466888173428173254863786426581837383387521224238586762374681681231128847858472182354543613342322134628472478685481814245178811171142678424151558646721387875553537483115516263186775765331856821736146267872282545288433477776758231726314231442631678887466128688641371411215365143187532711761384388131747845545415367128282282331311372776337575162548155334263884182366556321777642644747331538837722277765823354275566888122622568374161321353661387554525384217246528348844227313754716115533814355856741868368522683411633134125617888673518231316627376655657878474358676311137768284536268657563784633428223868585618135817334261431372351327233714666834633758851887721742535872325618742634671668217788858117816546227482538562443738784612162785223127767324335227166283371258431383271678112281116473721482415245268783614538688837875122833446638268515664584254822371473784154841512135582573645564522851453726573473817635781356474276878332688543811773158151657773472362211162122166367878815753617815125787586713211587355712778368737163533378665622226456641533226881244143615844136372123266555742523186834525125354233516832472532831384622874526631842531747162222842373277638487253814174742161252151875615321135236282676553544716514672214376886365441282112383823186274577844361474261372566458454742266831154262578373488242644727112364366773617532571452385664544461717455423745188715835112533668726533661825221257417578417661648462414516634421352271631264848753853414643281873651431516687671836847817384878355414425282635688373771678677611241358748612361275154777656276267388243711537322886872754432755354368326371728867366527532423817483134628486354787111553312662577776828835332616524576513641518454223665317268487712463437575186418746363756485273488448754863668353846733562756182632377671657578834624547723178328527345117832535553186465471423134767145538657721778233441478353415871431862743882422765571115853541354146287277436263631437633854855151646434844551584544466453427181651364437471511631147371688187738563876422442272346672411377651624162371232118333866624713575623171877517767687653121412425884363822572828454376287315144343636834747541272661888778181474457626212653376514588247643752764386176843776546566542122154846476144688574384651365243158141774458825543843114112376277783866372831485445456733122345235177773676782813545787266812521728367532316164435125582288122281636476364672132618758145116723453761585661748661552225686145171364474546587524378457687182216848444578335666282616566133758223265523213378654734257527761772717336346542123263687216684648828427123433345562816387654127876525487347633786646473247326174416116446371231782248431758534874655865688663452533245837571845126264448476377547722874738584662448488184633274835284334358625531156156581415777484587523555775671386115153242156466885327412641765146317338411727214716346426251735163865523564182432153462287337441617858272371124886833128448253331183621817826176661662673517517626545535184712175128877785425274518168665725621282145732364558121536268611878688484144831483855124337868653632267547582636683814483888455784617137887137417714714288742871442854751534171831417484465553665532613633737781632431873415463885122181434328872685471681344241452532461763756685844614714837831253886143385135331657747386181775262776775447667411251541328816221468153313746277251324356846365362877765248864458482883274812115383276362365667326463471847754384368116888423854666523516188584532248537146443568236557224643266176818421252418187741333613188317887546637575155846668516875712362733466822583186631372678735153813326528375674226755628212774775167686334768847334553578434812277524316358341741785211753211127576816343244877864574626616615254722243433532338384536284521246285311553816618645184378382413782433454723183624721327856214184243545686882264322344686167574514528184744636167387437145551821878554888368565182715318552524377731821526473878238336878112285678672633877343855555344821731487332165451884256423116115748785327534741786328121388565741685734657737577316265864586767517277528113756354842415521287114583344312284885185115554341641188181282317367873454616231212877574583781324123135485675453347785322561383781781311544888281566287824123888675773444833828875352158252222786334378768727676812124116228885618186664323272432341711532438158535363414688732163153763622583156553583563153838312388227176358875335358264454155341733637153837556653548782263457541518415467721553726352578581344862872277656328366812726365456554622785332661286856788433667381468225717174161452182632515414241163654227384335245875133643254336263571311411174377887722184284712755853568556672536818778387777561723161135681823574263683447864553568238465436785862247248146162125147875587873136822646616873282352251466834834336461687186862117388183645748267861611215513774218768114554247582662373838776854732438554867487532465655311115488238145228658172835566787757316886767378315721568235712644544841326231222381327336474357673746746428211446247637376768343227867371711721114864713146861388653572258817827174551434122721452771613251842628732774343182217445173187183331864158241455646242728125584773578142565577218433362744481438786457521734625565512656785735724121577632284627837278458642271352126878284333186514418341325357261754341761131676687317131526188141565447422546223153752571788663781332773536825221263887163146136136874744585774587783351354864344838118438617754318585527772815884882811446838355875543171262461736677632122124512726185228353115368118827278546475184313214162215275263857567716175212488655773311574545353741428836742664853251365378872763514167457285687113116285281136354656288827583464442762846146372427734683258565668452653327623864644773155127555286138431383275326614621777631328633532321548737467535224654773412365586622261127546758234378521643218532428526341124514632388324312361212162485254625658574476817632753128234456786352811327528188742141554651448142338122841525288314336418453167766765531578788786788131873348622118622476453813583215868251733148672535238338554472667684444645363525717637583711874328653287632573734684421382358477324644266382374441853877773737531554167467285636787683537526438555638165882222462236251817522564136643318577724514328316268185565245242751532153474122415312538621314578248415323422652851213241732258761771822821783658666651734558516572243415171456321555387641361625711622836662351366785361367435873645447211383481146373176425673157618175225162133631647876524836483382873275855338158454226328854354418386853272277781223741713384435332186815221181777268715734344566635436625382878753344834327771252752123323421286437426828317128255364366627484714653115812421145548675144553141115463564766766387835536572846653868323416171471243386152825242145667117472476511586788886562475558326752111336446723672115213468312674752784284776225172513811441315652741756312623787147815121747424554226817146882656254755546877111433721374543728215557712416876738677613237216127341172888286865418766258868247642616566486641852545351214785668546384188433287858574262352824447276243276466858816883735573137825336624137323271571521178482241443112264813381154726782636522565543656257444228686176226567682825882563874386326681863536163354754617862187781455553466273415856834481561441142614152336337581378484442255861116268367612432226155566388542252845443311223335517134461825247182645633454644814376733882412772113373527653221547386386284472353576815461378343248545255568382325865263817718724737351476173214767184375725613144568273882772855654158331461475718436773531423885182882138244334264528832174143548745548233553646618563436831885441112524831812663285448783573286783152525212477414827864728117487451618718844471847435724684518155776666337663467817155532553534218743275623858456262474546518526552748412364211483637753413161786147148773364828848735142155744548823587834872866858133335418831488458247345413155637626264734863477368718148122554826643715258217615582416165232583335215781417868487685182322141433551618451344258688358246847151116144675426712467468344648424522886164523368126528454828831187257752128813821273234673566246163725627518867585814373686471683645216534476245436442767115742215682855113787487647585853547655871276653637237818434621844426565681325387112568412534537646481538331756336288616851821454761733423287782217177444413558582572573783342558334748381312762186345585528472462856452473636545236485817542458512853211241755177624272183717768525842653717813462566665146888522162833274662528765417628864425383443451577645573633452125566783616148714567776155167861476725686167847354738214727364368552787284857784844854113738826778667477574321472747844386275534557365721728857612412882325545181777138621663448356215313556626762364745568524218738828342124362584544762771812774473176388485511862457346336562566864668217428475687127456763636332654644273132351133745223285875156272618678722875748457346842116432558226265321414416341611872221173164387588531547847628663555361637736552565231585453886352775858338154212482246382652873232484326788376125816543767654867213515852548257647418655221575863381845611522183514445554622828754718168682856826351576155824788845728785851352154723275663123614885432183125126415423851267287246486386317711227665622344231824464184625563385127381422515513141428887122841428825866237344654316382753854663665268547843118515714176153221553665381245253114574658454463178452872666777747253384888136412346542374868448832231626336667762283131284138122815143463236874783765575885866157223556848384674621378465552333732657317137412534222268682583565716317172577732253146675814767855673451218178762763411682747241615611787363845133344178351744771857637425626378321387821154112717466278456155653353151726234174427216648124546572453535814323661252773754868223367681772311344138224268526115438767823751742245734246765145645232831312856176551141386767312825624712116372144717744222852714473561746274374635275614566457556778451277263635854171513245887246778756641523765771831324711314873865211228516781744742873128417482528611232716551544713114125522771321441282847617285263334583637468261388443811488512785842222137642661574532561287166662551653277355478583636415323688814576685487682352584315886253721177314524874215334352542836875843748811387465164261322471865461314312416841157564663422518142643878628411225878116444552133317255737735846211122452577782278564244623277555536467686462346213687666152416831634284417313131351723537435134767874382733635736426445878253618184583776615258687312715677847524574827288774641262328587158412865124743471822635737476742488552754215253315278732266752687624856877413484677652577831686534671374182142225847262654382854122726286487265761543475825176275136455152447125746274643221515217518125338236317633266455125633274253645358651428615141627372365671612214668427358568512416233467237428783734326278831646431473213645311553675313363144674383618142262326575723728728884423651364481573242478632323318627174111225374564313176214282663537815537225342773746234313476486386446337463316357831852866526222563856761687128873145843661188225516854683483456332725753727446663368784744646148337563425865533566513546877383222148181356876743251412678518437612216342681374358861147158617438541841211284227224827381852611332835816683225513152482554382424613361531828165162227173527631682687728461177672461374233155732862423361835781546542134811571747555542345572543856236336172125547212146385425412782424728887253833213738141647526668146686427627617677687423265847528278581338215674118847365535146862772524212635746641234653357651818667274127687838148274577858121153577848427826772466525377378854318261162538724121768116715616714421475387275657412312678725565126722847736118428618574165628281538334267765676317732237416473245248655218644165454647285513824417141351282354711831721371368478741766582637274764825524326751745823248327783846317836867354114253566265822316836481154845845162385718311482182481213366832236845423848158734874662187457367852263164148623276251136732254126288216261748627148112652577576355243538214145755766612855373116286558566562727311641433131137327143686411672178123733635715344157124334458664546528458641341456325654781426871388245726711552744375765527272817583761112164845843586745533531458335433318381755722516638178674627856277714886148385867542511642133727218354168885152562788451354613431125233178281147387818832163372344566542461232666526226323327152275545687472558366177776768271418553287146817784268116784318126843858733128868186857683781718583455115424476875377625114654661873284636141717133514161215368437413773446236116856131241474476727212526836313165467488514517886773644114641643371235756274661327678781734517833113354542818842776752424762364332556127828571668112223661513886758231887546588186378225763233414474178834651268817475663885716842156141273261126455128177637187354855678883664171358264583117884876224778123226228632752662531186667726427436227157313176315162318281488848327683521437737482532126236677618477586515385784527626418766317253668121625255623152612355173465412314863548676153338254437772322523625161815321511583635228347568431144784333158128343554184742784465444544741458453378378731815122563636772834436721658283888452325357632584834373428848884816648341614861134557561451841142773316437534243368125227273874132337632482565517511782611685165867332246364834742431362137612257687713545588143373128328758635482372283758333627635324261138348434353215145176746465582264264267564581215613154657324436553636484543638786782337255565386351115126388868555757271417816688318812516212766318734845642162117685526843126426486882132318118845263557766428838524483674285755373388275584476815124373762844547476462621634485586181367253376122737151628237476656788372215524766548372212111475631628445154517832758646714452672724364531152744636366547888237116413563347123253778531136118766277242435344266224644743141187713326261462558266331375378454785234417254115882622728154581148328338152268637566728424871544246168652864714661123852425446551265711513641277775277876431276851482227583571157343231441567731866158865713518183373126268652625127175325573273271472685362581718676815433647825154814441351411345635277257121523163424221757552125613135516655133142453235882711336311466233315376122182652437227828553343343546245155387116875467881381572415731413632447785448715434541451841681854657244774624367487431585551623755268613675278587432257774522486881522786122871481626452463321675736676457523662488212848876644284852364735153712482543447218338682527817261457363237562158878528467737642356673863426322386217741538151285531586785424523714375118815131371338667316438725821522128272825825853451213652314455236252154352517723734715186118683164341362588862321457836544263471864567776471627621524847352266853825464222743325433484276113685183631117853382482431427135114568888661553457257462121583281643313266823234151886715464448414415737421314728465713126461178428587418216375882561462178773675612422242436825248773651644823254366546481688873738114738287228646867666743781773651784673214245433318641881634686666615183576231126647713466885331817126145624383167417722576711457235535667284451217688716556388173645373782214785362228575815878251447677565125348532558646285726857785358721152165271652442528822652873435546741857181734153842266832375418671673343332487658543735131331268844235465664216662852521641736437452865212573356257821144684486838785812741746452224875344454246174374457548251472461864121481718284346786773776131676285785862552683348176365134613487567634586465786364111261347556174757824657814631117782523457153547115267865387365754876322734155725148536123558242511833213317756431381582824534355427317546122655484422313723356767288623375557756815643675712444864742741412747215775154682436728861154752845766341523872182344337413775848222513634523787883822638674247266424456815244614883732411724316125451247728881846381436275525323838628252756727244757466187386651287114885346757338746123842366885763228453215835816378248366652815187841851521677476881883338235734288782514578183672447642351711328715155181585831775548342122724471874243212482478181584714883181284278461316551221341487453653438756463214756878663662526758788655382667651414862318251513183125254172833161457347231842356358872886748745857687272245147474837134728381543322736521225858853436874421264453342114773845817342518156661226147327483656854678748421777865546877774621112477152561654147662361717876557715572435211522477671322726443231757562178741844417511478133122286823732662465713633467372343451222212848772433452417283426461152833136611724728851476478233214187867335426784751517246626816463761581248424861887717276847274537387362221674463721617487723846635463351487712781751361258528773816333148788665757855576587264434223124663246738575148758362675617666144165447353863518483322587825681716316743785143652144881768188175376661846222483367754411416874578353123635574811453768861365784426687831155243877234282825254283822372186526712685712563748367527455355527365214772515778776315151543712338728753621215243563635466756646527264146733357362315452243716235823184337638453653718578536341518525648572484438616635387188748361742786616648676111538137868816686646363644372178113822428171621471676721248147157825234237258814647321215616467868278562457144467316823151787551245282316117224612811225352623446853251436848315216235621553884556542675348876486276325467453778143317543136473266588115442781712712323383541854374251784574331476367687552624747723853427427125453878342573553412487788311171325224155264116146353143641427446857131357634145732133186637548742625346676276621783718438883544712813371184736776653366762225263463317317746234756783478357844757774625161748882562775417253347735284716542132345233364255441228745782516326421811834858581672326712653482614464437538488123345686868264415458762225221632153573876751861215153844223275147466451613688716472345457673357682414261541577233136363147133418525583653362282164712672472478111561532868655552842775683737638455225162814551351217666746576288771874774281886513141321155365213816352772531877253282156581762667464517457226142836233857135767312737262883356155745681261646276126744818382514257487514245833332173473178341322136477512165185283117176166615767523841246313588711425122382545457452443274288246777356272113648572485778718524217114337548418464574653623362672257652465126131447821758785831752523431833515356118754641884545364617617634251837423574644684321382132582876646187443463512831166248158227472186587442783583385165861553867746283116853327554152525436634277514715211187813425243443275281641287314124774723123827345532516376174572541678851853644863784228487713166732786447468466712834761252534724153417325857545637775767187276542878461556176626285348227635386252155727485733543644665484734428272761561741181165438648227268657834187633648725435381878752787381456238261122334531525486636523368887562573476538351465235857744631276412645168884631851512885235251552483185554577368886285465146262822277783852375844568713377884785871321612516182155682821678755423152783641411372722173157643252533712743878564756125127758762884362225161137578371578335323172225384511371647633482485573582618818336155738363627457173142218268868545225153174536835218136841547582771382368372172312874365336153831566458487315513381424627411383426663563311526526665147547574572345313383321173318471745358686522127444333132432168631753732441352752885385417262734526718121616558647234462257147261856525585816762354467551152747583342466626461283681225326162731752865634471216546557646454517381286751254865588342773224645174663148732338454175233145568273611521284323757323712623278754774716532521863485645576881743832173632584552786336885342335385588533688721886381156272471626746785735316463263877362116748538717456584712185141477345138543488835651731618274328151638574584283328488251777866778742766875852883717471457745288141773242437534571427131872182652646131864684647441358817273158731513586635155715537584828374364821378512627368587824423111517586682343521123533131547748786325642776185783226138273827564282436612171556777272165164421516651136235342815422387414823864341351148364434773872638221266317118174116121285573452843637857765763734513233452453644676478355788768781228455286237386134825262158545526258445137653356328815767737358575226611165458686247434264861824216864541245121415244332737786876661182616374434518147322666165488267345641178241724614446241451364767383816737811147172416558242527127825614252835634872386227367748342727811283763252147758353117143781382376354645451216748121522762557355182423665645135817655718855452866778112576785156488678542777562325726842387584243616632525448262418211488255338216541418823545656364474468858571742872444414848363426823578484275431374672775373531378336845431874517146271628577376316511712868326727415547185881222747538682384863623866663133142736376226145412743636114463377221855544258486641113321427622544386521815552322373321368712852142611612853754178817612672544758628655457733387884765541665141868544686561461225383824881262237688237772484276423774741556331215778233473457186134477544266854532454458461271871188821817311651562187535621425575234234654676641818463512343867281513175411741882534555688676465523587717772842711356733761224343682437826777858642122368176421756611568346117673484577285744578346418884565431645714673864833837334333478888633218647134134383676278474173846864784367366313677385214328678863123515843374348265453474118162831751445648773357783217225773843127738364257344131811718846841218183871362786786854611515888826523721527384544336687427817766237475587133487577324156544181611227767236276611412527842346127138573383622848188327112743211511267554722626583124775636846117181523185234543751315867238816326147444536187868666231144845334147878448717212267842143226346651218741682117281675457638161645726487436234124758481244611661823338632152531815822885165211817331814211831127575445528738736628725884686655118641312755744574135431716142653374372567658867377472557237481388426348724667282811756545275271633364825488865266322546152338318313614821717432123866358442172178148541282832213156487333582465461871118818675682341848288115518616376336882461662355342842363288836661156263835767362432358275767581266758652885638433637316781516633868841741863823755653132653382658511654657618582736236463387534451525542377847121548242472832346167671577337721462175381284485167546361614545382486683628755333686421581612241156736784666368544843882658443558712577125617332776143765726762658574342463315274557442174661583226542758758474588148317644411482143885762375484855876422428567748737361565621226462213352275628587835673252348683764716184536273146222244348814288345555674153354146266662338445338782155551583157672427247777812552663325475647225326716552152317141433166212888287574286312218518623576317164683147534232142668641858656254688688423545626474344111665357386856567787856364664762835431831573736375746473521113753363452171164662746562523278562587744127625247133378417436143213154225884217662816526366632857334316565853721577831636386153853174647883845883783523722534581885838725218668124166357277637633826457875717421723524142512344533878663834763441363436374578618187632621256157784214543886566533865234216523417578838388852315612881372531746384884828475613841638453623667456555516552188143175537555887614456827448555126384553818215845177671174115314814168436143536714678387754155556538162643663153227153588864276448443374351523532313523226385845551855876687852173144423743844518264668318284162872184468331377314467367254228426323637351388275388623288622538152181433538116435374684233185862731871283614414642767382267654714582672557668118886373588362422877715567311812766282127124853227858313613781543838132718815873778416377624475467447235282371338866511843377722335625214138233628336431465224344576166275788157652314112628711367844228717461745843423255733758318732662278258758162146531422143183836714626368345446161667878377337817446268183214876554452346771272173351365356311665261163441237483638322826344822587315516338738167811162453852672517748462842547417221436427555723356784668821631247341588125653178665742331463174878614215332616343524454561565833581671222152345617741283821573538586385451685732326113415523575112447153673866164765225634578758111412741134442728181238677534111147332115215354864573547161161245845855466663266284548322428214718381585862845661175674886526153658725377263645721188458716128454135553447312553637343721483417416128133461676556171367476477737311273535654176671674532836688425234253685713532568128728447186366673653218553321178836572147674423375366237536235138754665413514548166486211834243685122663581645328658446118231265777612561612744626322887521284762318452282363644436235144764227144876785683864367586757844835631774431181174177483748541633162646281868863167724285228788185856642637385368756233424311876268743673578625357841773878666371232216425164688153232288663187272187716873443827317224651166841646284882383284535113577675848161781275165385724324678214687365122618813547621722341761386284482532133456325386282277714273328443655681378576285178536855374227253638534472167336888572175467871828762876258153342816612325613785748634111875861766514443813888231168561235432225846351642646226824846621268182643847868718131478444265888865688674447877866115156143338385724488484388255853168661113188342686343438344516878423438488324158458313817354527531738777476558485485773378436358343277685141186515754257687173164853732833118368825886436231587184843633114816568764417781851426711272557518355817455785876628361154776636368431365542118767362366454184727762764128785438265168715871363826158532116341333738766825138121323332143443473632368862441323112114215141455677825417328426637437525236868417865423712754273883454677142658145643534776782252566632113377277423642728418281416166877262156784737126134553653866632145821516641542821342266264536617718835611335484237424237287427315217735855264284885115784546467655234681864171148356785351663237657783858157168654144646473683234814268761644221334665814343356754741637753272812145646131153314778752384378578371814224876326765346253572515231282378677475158381675843253474488677256551236753722322317415752476213568657834873122358751113847635577114864163441343838838883656222128273688514637532482141123614423812366886326876685711517738847817182782231875544682647212253853733677781485848428551471356322212268818657258257288214818332548362358332754448228745285727648572417147281534556237617886451367575171418538684164711261512518123622437152827172532647315435147416221125224832644876413626276177318317581851234388848316885554182633547234326446336754323738845664888722813347841333754714455832481348548561334163115275637286136262682345347422423817266846656838118888431847186186461765281781476336876632547223531623233878536331184427378156178147136475144474243685138182361372151768871127548465674344572365272324222331775488866417535453667581878272326555428768588715768375371767166373535568285145323741445428886375344852441824423484234746612141572634548336447677787338566576512441784434268613478868536742517623413815427877883851771555323254512762861765355627485427851242383446314456183322161318162755172885623667463455567655332414162237481663116152675241741682155878678423731442661252845161866431418821881511744568331546681344441327117635778733756716246876822521486868417481633121684377141818854642378187632638615611575342746367116112445318845423241464625347728425336837422131324156235638217121452124552435456538843472118877671762824166378113884843613317176133825388634584581841872713676351642837411531575641434322551886836771687741715135145264471478762426285848686786461653282218273182377862417244451135442362756223851614554348772584718133815284478256573626255471751431471816855536385653445584646458486244748313648362376845365811521832313813874767685388476144715554685853857812667356372546833178525712614581364181384548213126668328186243338345171532412621484475164675868518727566627566573822274353528137128763582157426674413834783766274736246442878227664524611856364356142343242231686138468534257351154858371213261438345884176423584181627384611351855422571338588184123842173225817521477212231636714168377365823674487315128758236581587822563727856747135677586813132534347638282736245413827528773142166415424567787317381228157337232772481516883483333141526128738127823844681141138884853654217276634137465238238288384226644162634234741861754644638652183418578668613785447872825557756786721354231266727516465531375552884836158776228146473813537758648727471454176871675645615151125513452587872365114637764166267338641551824152658673235343826728388415213617541415385838727488185116276544167765165637315152152622811522834462574216547721182351122764533641415873616174183375456311661184734438388817173812524854886686141253172138746144856318767534245351567437418188244872438783373715438843771658574648843732625663326221555287146276772135717464663181116435216575353263618253381285363515233552276211142823212832425773163327416773474672863252114248455644551848876321517483661645586232256347213584622157471155622185222523313563684516455236785684873632833858738848572664411866155135387544133627343228638423715817413837437361784213645374524122568552162767747138351584126287454366261356217611316352754444375463776772263843561866248353656361255814277142165252443868342538351817176881616278134127527742373441258418275851531532481261165118172132555712825874774566373771458558774861233371736854577532667233167161251157737531857327545354332244326332722331335253624226558361462282344166216488457438182138675852742257535744476728734814437683767658563156251433473538878628165437444426142752768723617378252415341352133227485176817643357578611635817721636884585138352278145725366755784274514126648436147685823564221338688761183646127746445313474417146171788661362745451646881112712361325783785166372313682663528746448127874541364265532768632662316875478734557134374437181223151327553445487261385417217781783884446671886623427828745284861258251735525244175844537224311123618687221635111364724385386155826572464114374312451746145352751115813123452548351133616833774852123424436246173783133533476432544743885311175331213253461721174138184325371571581613821687655634634252351117134785253773647872351433538316611256468656677266863112432332688374872723287114717625828227487322771533553361411277471353667216455575481434435123857653531146787313423552665263138715835541325722164385253636611686848413282363546572253186764738484144421256212735642136413743653766865881671433614527354585532724217684633446426545366486851742827787262566725568162461242722524451373211472545527335148387258355351571688458867782312882613338535588257681456783688888635565528637358285737127474343862237456321653332572371188288446551213782533753611518575284218535242587641173441282721331746661884243567645646753635668411276745325378643827668638266776452142364552433432867747732218555438623138848282178438373461125624273456142837732372361276375446732747458312655878775713232363126812723611575631514755244167146644475723766135186548623731634155413554587211766281132122641256454625765652335125688586662754268217482627727475655212844231216736633581373786463558654234854344676633632577321346322412467557833383636584383127716523755212662866211555654163414765112328575643163175357452663255336268174658632631835667845736468775454576458378363546111353166141356414146644342212778814811662667117568213236444382282558323558451274784274875315131856885726753547836142418511171272537628482425265466574534312485648111121357565128476746874173624622383428345524553813387663114563373625325537871841861646627132368647765178774477265215576141847518852261728263676264782263327665542764546238414737264181473256621554127332743872415874628514845157135828718667716461483351441826438182567215773485515417258311851525773363447443181312186526378446885877733376343362431683237638485574436664388323436562572854884448753525622251263421645846135246732641372563271438268333133214576457453368685317382324324214668322767165731362751158271517165567722587637432517363246814766331712836461223341764648448525225383156781823223781365275636825424726215254143432225331861358411583368582566815786186273875736882888544711457583113677665325622561432417513863368517451673821264866124745748763781215861823645133782372565128416586778872842455484388443624661178637333476687817134544726358157171821237564424823177535231233547346435753854453757561683516752382882256443575526344323661123243218331635651213543644162673163871578548115783653826474322535584247213271356632838644666576235251141855682351223153281557347851534381856688667643163134567421461561553838515341655537172588683441466666523716848412866732752286713566284545838746543875252337628843337672832726276465657557426172314678863221737272424278621328525683256567526132163151128757371815331544365645728231838722641316836882175558642331323382233264554328137541271113114112834727244263243563582688656764854145826144135852321246773268532142384865174541667458236441163763868466561184667424484635612175373775448517674482532812152356542431841867333673586674588671182245816583436761171355462345125341481256465718517623856652361851811173438178846667621486228312112171121585288833414214432123231414213733448812342423462664874684112454755655845757685832136455862677758375746472857412221866128857333357518316287118737874553548378322742668848758718683727773477365541473477831571441773336262868581237533485453263227246864157676616266166682518581112767742615843355863512433443241136516347832834527875287183124676434267527421831324814374272528368343764323166115555871815166661682847168163363777143144557321186241156524857736341614235534631355426778234527347825488652222226658433326477778262777343262383755665667313781774853447661568543268735333318186457488735888823236761163481881215642534721622182367462371438251622744833611461513116342354166617758822272238886266587784256434868761175867453146715272367176474161765357784764444538762261867144777878755713343766323536681214273677534721141187728778528536622676448522583412271737676615836114627646416613427512148316781516148513848571838445528546833583356864865783553187658674363538534822315854878278854522525865787881681243631658524643584252641486265786268282611761181463314123331826588277845131218846346317646435644632233483473164357158423733384437626656812724356623332624521651272757214356777525558676714471588371157253747366872455786344354787561876836731137243723243548684221725576258238643185816837764875764472664656537584685375732215378473341716238848125521681561767676716754267738331852587351434862558834417871721873712247871465381378431228367855283426274837434233263881476378518717586686515877815785843337854735355621837536376563763753557112533765857667476733626652817477347622276621438618146672543382722371467781813761641478338537476362324784551417447343765735341867266555617657163586841221624476313838258632518465751768716355842385827541687334728513154775341546634477227857115653827112686326881415387658258722173481621142717755145771383372241485537243124865566625752745151675335228127474632413554418112648878581282811471587421551437682386215232122656773231376188425444132244316273831758844548267713813186224743615477472413181846883263572166146672176386313816665682551623336652566256484742477544458237561316153445271255168781346758623311876826415477682671662324342378346635365474351127771868163387232585228466562571124722637624246465554117731685457738118547562365522588462216643436484828672678387156151271542881287355731157556358665753573462557874566548184731414845783236152846384627634274824875562455126822627681254542111188612754135687536485127448348157176832332867381881217623524438884576415368117167654225566576275584212437445817643665377646351761852112525213137112538451683748585366537628678478318844821261276723233664242156176567136623437175168333753667162675554735135584181633877312624553718387561226586366354753884428616383155765584372614188175486134354565828465883654148644843622147261452888455727887838331312573351166353714153842635635655421713778115352467622882222757115644832718182848617566485637247718763638538773451276536788511157185867786475677765577754422483353455215548776528147584632747244175666236222434414863133877652761316826314557868163462758585477117776214638232615842274711147455318671221633581254871131135577777646437566524531137137711468843477136578812363342723613426316545124438431336551412638671161781813212125157761527652588383842118121333744272838665784321574785783486736255815868147547265652787246471162363728631242568284171852681663586868512533781676781555622657677372237152116741476547711543412745624588316671485648478443451241668288726552281755681315341132217787476182271823253278774784564241874253447138122346324451726818854478471251752885573685764234631147676663318514638117642255335318266511441167231216842224456176861382343145835543317236542846333433234545787452653262786876516511731254731263415327387555213833823818142665163274111756843835384651235487662578176732433426113147257467231485254713626855333546153768288314471556838274327637311686373263621363152146278848648425213431362414376571388741474123513743568365714237324764518612832872338833274583832178436484256152244784122132131334244481776577468745826786886628711245334557184845513872541268748531221273148244661828141836727732853167462373325177187742438313267542858244253661235811253251464885181665751126716317871885618188564337724473758458254721472177511144573587561475157241357253871152226135458514171581685227116272158631275732318865185366774167873543531178318883168686864147735771148126144683818835288683575721432413714244544285414344558732574674862475416583133554171621764743816211452626821873451123656241547728854132481485481218562886616478342441351318758565278347515341744655741467358873187832477871564636261824726415675274823776818163646347478276424837136325665667513214552571728862765564632768626616163836664562715158188875524275783682438873763138145833274663248225337886238538213663877124116825557843656276286123477886186357778371646831648457455844511746621627648842615321126616727513731813734617835257868586867728613718748275648355147667331218676833567256621353523476718586552724277653835626878874632571316185278845244716261158227443531845454414835472617771488241354345886837487586763311446347463457656326752622155485231532334671422723115147213428182744874858161213328728316347224388444545542638531228746537141448454714835288118781471734685648341382784461177836641731711444866165854152666455788563628638723488654751883316785458472354813223244526326327883547476377664173856478727548315636162465842416362171658221712444727854545453678853688276355165446813134248414166445863455863474262135458161536277441446133841324587643556361654117218862863162522852824512243651161837734711858714813131254228223886765855626387455657643764683578236487156755382764618575611665557816418144534426744667848823277135462163216345685133724475318763476574564354424186165471121614513337684621738247542781857125245468217336828518361515282668274327217687861521254364854622635734524151856665686184548626456188422536587855282766232668412171833742461263447225514671387486558738646338364246616132761516223763734466483474144727181727541576756768575433847885451543363421763256214747217584648781687185743657474525885725786732511861525857382424121652846286347142761155854113264216481768461872237231326783721241845532278233125838867327558578234756672562563723475216633257276353621543661842386777217533821353632372657648575253644463465216438264438861885477443458453863673311721416263671482314341517535562514542854873137327623673216358578514465854763655587733748472186157184681763718157542782418318122722856541882517157716854644355485372642712632134864365681285412131772838782512868163612787847217875757684655727684554484354175541222652223662211556613238313467576628537854164181461341262527863314254841124484481225348252125125187558252556666687888822271372882423437281757484184552741775132773776685477284651125886841224467655422556143418477664337456484238467681185315851634637268715387231166163563755578122434125644134737115337371844415658766382461544421553482145586728616183848861813164471574711283233443434381187481548264621711721131164463278877638252574334113172278235214167832554777717827285461874564577231885331812688274472461583622432436638776553536665778545714626756136675336641124553216384635167677355555226284541532757237435263565721318637258362154543446531587166767646158646523873387641618163451274555531773637134588535231472455572281875328782247781171135241765674668861718633468264336727564738263158281638633556141382727786721182662341824246712541683272521588756581648663433574228216855884866282866711743787375285587756314534786476526513381876215887677742721235747214484572263452286171768542733223663627814826183462544168727231463332223271551786517625516176733163342238374824675456673182431613147736724226652766145411344472755245826845362557837468514618774167261531227878462376883364818376218262844348882288488782878714234117888131538725434364252713322433238718758741178476863654676785718475332265861727562546562221766412814782147186523764131223861661437816726576717285565683641664426727256822513482617744215842354143558247464623554138156641576846313784587168174254631481255421211181231883517674257854875577565275257856864643234521174348656274366257545576461833687232153771724286817466723715642422336565434443284817278536712624743517716256266334143165442313657624452136651148441326857778215573625778221834438566338214785823871445327876486854643331618387383183682181438781835368445132736736155335874561664856467867221883365717166238353357185557346313531277675884821755332774317647166144413818456243363221527883786567627575472212234453265161821563381857416284114518723181172745145231147436434775444748727688314724585417747286346427368738756815854561115875225623428118655342715822132276318837875776712133378762532425253626114657118868767741664776458737114476876574451212875433745478886384888343685376264684547276665465462155421127643762282821354757114218717516142324144312837381181277728376171773884321521128185671123651335164168162281888658883815331131537541527416513464854851443245315665487237584781353344488473611346585378614251855786333862348334578774424481575734234437527422546421522132656238343652114825768477286411265754475421637688263777287814527163227768488367852735622118561847356183642638221164343224136237528328351584113171211422522811633622247366634542527666585473445464588832555675447372181687843241516215332456111844124751624688326833533478148711373364346465187787726121885566665552152478675132713262332775212364246174823122367285424363741544858564635544662581718232213227574217561721283423288172188361287217132113633141158834788336456874446547526531583286563566727272586226645387154444617825263176233521384774386781737586613672462624753832332817671518276545452584135135258135481557233744151318378673275747187218828363668466162838324787284874446363416811526618312676286552165318315186657485426251846367464862412162743372881263837554167524361474328254111287271813118732857163215236314823347187315855651237554634434482425332733175557661123553862121353582742648384122731656533731556713773826753822165787152114158416375634176378252732613423838568374547815641235415246587847482128568831312324535646412856315527442415235334746127628822253762272383522652735436865537648683412622863717877587885544875544875153218251854474263484752316782863384811562828413347624824351424724811524423433426885354476288641636458517821723228725821546272321663683472234255283475216832723585825338453747166173214863145161653275287432715513531576857164238244633433323741283257514321333824474386688174151175782324124425551886635334618614853752254385517564337566887534186363257574745662252825324174243846762686177244131872418574165151443663142753732731677312428874825358353435377257385633861728122223147457855477367546711873751667878472376571417757215383248862731478573731667431842447452128353887425418263165736841653554551426237464356232714115242484525556846671775584645742335565536258521274232477748133333541288522233257641548481318387543253771184165588651251856546361673531516118368882176668423128274417268436458428226871438732416826331848582513125771833862618451751755712632141328377534412424511356814176871118544167275424535356627125771582422535443652272327188587136143861233334317585787266723633117884173126524361828446685165335632788117428743715415775477877221386367715686647784173627175884634436717444277563172118777173416526214625683226531382376671132444141213678661321451357823832236241322386253352386333722174287528627426638124752551487556676245764525885856148761771615441661847368565157632624668448173625711584251753586454782415311347827574818142311613158881486121873437785551356427484478188717555855445862814616226232231777544288432834681132444666756885655735478237667642873855242511643326551174816472536482123248814812557363324162772532438324362352577114416428367576628327614846165573573232764582234765516657435671538522685722114151376153565788753615532713814425154731753343334364785176174173684244727222142544624287556564411875167448351474553567484646784842525868512228344517144477763264173541287418334451862371767154338583613421121253258446431342464328656568251363554188412512314744468283127645651136874784834474427116468848222775474734734837456866614565273467813155114217823516864371418415363565253664222272445761876487634658231563645731664857812322181356746768214476421775343565674776152415375621138177222568644772554314838462262271862277753247154584643661577712764153538728225542615132177457312726166627616267337537586348641822384863433726558177735458481453277465377651312876451873523634523426854436434372837635874743315344818148647276341763457523818131481181155578278766763531872582511371343886874867245264333177385123154124763836647265687562482664146557635637363688325672887165236752521181576455144628518173285772811175234546152271287785623866766741431574251434154784153358133364423477863566667257258254664662218223871213471882674381434711676318687375383378527154717255223823448346465781323778261645755226266251787164262556263214471662884611748223311435248236541217486533577166487131325334577618125765173588317627741838387825733866441411181468313813812481533531245882182745636636836732885357148547443374844567766251451853456371782738221634182414515367213826186778466117576323741147755656123767314612438757712865347771282435235363272154814787182875882714383538744126466543412288455646642184665143758271477567228474654833151561423136735552144188162464731484212515285452655722638742725731857268357788532711141624812154756638255512255442556274545757813535547677814115337546111343138173614272837148342166376466671384535648513426327224758263782726146526447475776585641366523365161428133867442752436228571827584333742717528714614336874173487837778858727364735337526684142534467464126758348432388568743882888713215541541474221247622816716486774838648757765851632481241575323376247223576862812756731585284523814683641317567343183753332481441875246377684585485736731875521364888683468427133525288846585233677547544485287526242685442565443353127457674286426676382414655582588415741321867336822643218634571487172671636566738684171528667624172358888615457134183222278527833734333361565177284575652373143333735722775353768224768557838862212354232636614583145617152154735161471213871848814464378142435137636654642613383716784714547226651375456686833863548885156734518517751585285272143113514854324342723562251375276553464551188238372545732555754415723868678288274347586651315452614167635251748241688462462573754721571762746461438143376484465724573526462174724437323833176665778712444322754883432785613145523411324743887177437366714117336343364748647556166784272553172326624258131682417644738144858246528835415444642225315211215776537137335748864175322783828117627286681244237216444684543528852777246232325245586623777186882736546331132543767231514174671553274826586751714383124588556578587156426167745772253312364883553124436613274338554882724274515424727287163516158227381724835533684411813734246137466225514737186217755214628382634456574153828615182223642341111552828831278121671412443566547213452841165146775782633176611227233424287663146635567763213232614523132867773215628266583773544615865232126133365383547876721376474866745144442166132886267265511564357438871677156843561853564332453866721855462753165661187121262255516653868112318745545854146838445277161662857443666868838322736411777851116827282547242171861362458852132481871135726634437464271263162861158158221771833665781576778146748625636372434367544688844527812744163717522657228547113462353246244282844778286127527561756166457566737766352134475748874277884646176851385557863244132221115141455227756468825341611832648314851243824232233624385457328211363473364764876828345551147865513817242387745146647283217661237275856155731112465282278645434748414121258838163353546417627613613161783376883325338846468245415471228554251287772772588118226551543587171615574438547527231773846283652472146276142453375821775561842641555333134746131333411836676852874276476532245347285355624316264573387621842435851152624721134283187521311424616372523884657274178842568662717416567534111777883543676314551482617566163622576737865514628754585858632811728268153321673535175247211166125633535536512731885478886563372744664227534476566275261737722862145536356714252546654514856143324777274434846712443581875286577633411553624381215234283317833483313465337334442622741667537546777771464813124876251834454274567856164152433587274864166174417313665677782241137132235531651477454833777588363735625235311118751321367784736176348763368461822621643272354832633215113125677555586775617781633121537781264521245883464751828831654514221678461851356448412361482553844627255326358654282184144866251687211312814868155755336724446265873623871873548235657111515728876255213786222234661577288471335651847334615728882611586441234616486375356818415642382182715243488274725175123276472271432645552161518126387323522746858671815128731643842478682573234783488112845626877722452528482847776744647266464213158266673576335126476864612688111677453612241322836638266146813672274522336365265734421132478456261523726143265618247821155851374443674358362748421323185582388431764258776667621717167234331868855442271754282863641258362356337542756483822214245237664566355118874681583411582165847312686264258388457465424332522428248565857757753288718842181818884747148884636656384285152252741782316382465212432856133258181778128315557237862734447738336822888531772564162842182844535233383815871126584487284447562142441632831817626662277683446352465588387847661446652286442744881416183786561562814623434617783511311588843171731318642673567528521235726182144765616774787646267887531845128583634372452373518115728421672642112118255154372872131642621541627728412823117763676621748584235123664422781566832213154864886165437561726743286323275642147724336271862623632364358824674436838227322143313516643611648288772461282163814322153871154673357564558456426425621878882438352167583215746487856625621721455631248558141358252883151218224444457161645771683752724811722836337745811174722176855855114856281142383817456534821422187474781864658156413265257856735568625612647623451646237621883426478826781232564217782328425437163134328448362782347138147571154837156656681835758553233852624226638865631323787421633685536855675273715417784635465445888352886412653881478713145656345847236446673578536576587758451554334875414368238786212675621773822476127254777636123382724568756165767541624456668154813868715572235648617154487164151354315531413876515376486283315311437551582478816414144331356766511326173232622422583536238872538332588827685786646565887572712645514153722467238465854428661814152256418316176838282643315365466583888731118362372412443536273838727767744446635443674646335684373726511654474688856387137366784266784565671248142442822657384467624162388311374275374418845352733316435863666775313724325522611731134317665443641823121663418543353653225636681757666783711655646873712171751733365855815847413757218327458118136538788183518582363352184665648358247743154628855872657222345272712243548671235771552441375563611534855773513272717627745388338188474633588864125486362557182187112265131174476635427344751566333511728874333662211685166631168381132521131886764834117442454471453423222276554814172726637633448476688773218616661828253685831465212651171517872834828777177785413677356124812165166122526315546772316525163741153424633363874232128472845835542778843245281673872588654844517353824718435154128267211315422324325782311826875513171277626447838416246314663228237845616357222758444672847231253644262564445327332418581864656127242417722444837174688786853635145243834244337615772736233152363744247238637565753886625682524718378718343781373643821448582648574521525581235458456162182856421748851111288624656133337184333416863161651332753165155861484612164847523243175382514652787734582185723734243638555182767521176786444327717142553262855677445231444873321274841324278643487677727372324333486475713437474757681527726755185711151364718881631448376862577625722437515162244774373148864415874287657855145281525881554884588678412317417626775435286546653636367457865646422125241554731163461213611244572344734576666743786576754764782123273632465211286714288243637511525884711472167418785428448868122276554663845675335733746631288327161216466642244624167487427455233741257827143185252686447851443434546388281165572452163654617527162662357855281332117134482353136863657554673463671543588682612457434356421467433147114143828125765861513326655861466747631682375742583772256651454787667647533276833871116447571831417337152835538724584838784774784323188872245184523626282336676618178844257324446617123226575353327727218612745573142333187338222161542582763132385535515334825288344183331348448658328427821218183418413144657521528461858148845855816766842361423335127872576148388573366554582531133872716411415863885622667881111155835243753441648172855614471276646352346677628384178226364478724421341115544463747468113217271512236814557162122425435413232857262462584851158812421622142746621536643747511411357421522712141184528713224264886787556614817176135676814132226766328155453822632888351728837361863567278472622721443134174422577532156615536625451638117545363786858688742211743725485347762726513442176813875733472613251342868871778178444827236114486422374833617225258227112328357166751854275116278717667568211867324466884152741436254671587652178485772853147146733786825442256165341545726621864851522253347642276386778527324318337243444817233433277785524651354168171462851311387136648111745228123766862668687266832418251762443726471346273688348586222258363343651754278528253168472564281282454141225236657135661486813882747228341454238887265822663137818731624468748415832531353336226156175232773684284116648172688165763383261288677188354232886813146143435455124778772764561326382113325851458516242137171273523621822214325246522721335421462318452377661354526455158586531466118286661656777521636355175622488468742713582113772477572731868576151212556434418617133215318726537528442774331352654855542234743614518483775412564648851768254272313247585743566131583661352761586862371561527387856374828252727565464436575864636432733414356118645657173361441184343244668845871542118346177153244467483486844655753456732514527122566713266313755782271182458832678426613134475535458558662351485334664864168513744611337158267367631784887827753838123435113548473263558417854353835245443666312587551162754758248438874252558628231336423567281134182224138616238223532877484414773662165513322844314153553111444721674744276167254538885712526864633224387882374747687844782558632611141588634217544348434646271447427266716227842163572113437432748553133652425338343224563366251776171153764163817781816244721565844546738886384243234544883658213264724724248333515561636587268285547575111538851574346862488418533157557317363871462135374322771776517245833337164847446834728564285118358253856441851224683358645212747753158361165247574815578181341126488125628833367658816523317376685587736426423388256524545843623847482131763768674183424115146837766546684561415512553521184474262583222678381527668182187235647587878244144782565234414736417324622333616756171583614184481273654574722553861576657623163772123237325442387453775257534428286511817512747344628845355313383641331251142865117158285735251175125711822128626273112654735831118288172253671868376112255425486425374286135237726484615817526254762877576766548884862532374516658557873625448888472544738788234276571852453152681514857544456541818881713177354315461821333556446313871877724741357158648164415215111258641622724278751727858448656633663331278586572554126861413245168312171841657571672445282466648561445448162581655551275183656571322435148317161686371876817335834167373273676653152228426348812425244132486738135316758478136367558862767521531627463867572215151524667288227786613888427544716565818628386176756623625175236571261717637413774123375551143416584262111552816117313525581441288376184256116424821868588534321848325636317146137785744664766757488828651232812771852137512757283755787521371155252861472523448332872681477281763865813765176616851781717334412357825383466244736876566165573327211685618333473132454637375316183728181874837887633715511137413755451428428377658636356867477624856117646544228688372147485337488618541265574218744815452644254121164751475485146436178224335347121416224451664374648562565216578336827821643141215238353468786626874775711622743822527762441272446722152731171343585847148263117655567657755855875465771764162516151836468832525623817674651767273343576248356488758524575333152152176381283642577215554287568374548877864835773314726845353886112818465865153441533273428414175366728465876882541438436164572275456364522162232841474772711874421723744147766622765214182658212741235311154723568286366442458343823544228212437154751482616537581844336754616528684314462771631682774561546357224321337422552321418833576373711818143472617548646348564853211311364328456327853543568652163163251378834633524477715466674856873567561541552815443888324671164312755878582672833272711848556156737372812166838357145231182363623226416271844868348561236463411322158444447782436148163676126645827753886655554868773751128483152786173337571667326562662571575465141143782535454171824133751184214317354424628124275645522682777268612718271788266412851185763656386477162757744572347826511465215428226117742166286887217355765877565373667864241848766553716464732121483246261332864531866323766567517583215817285354812638172645566832818478858271272442148373786288146154158544253164267755713482383658132645262264577368541745672617616841167874388233253717142323651414527812112171366654465653838548167755165871177323655382352226733678753146144773725114836127617532216416727862224621714575423775883311673435647721417855257145312538683526252581546388572472622732487728431381824321267173244487334116626612361482415828314748343441117448575581437636556617582535513144567686711661383128748188328324367247887652386358243118612688733543312737863688221282757877551425723615163187126115887652567326864232717626535313452813221553818488531818338855762852834158156155668468318854537781684656357834587484181883113777716878225117164771378135335571461728446117522818883556186314426555115766527475372316573228322664244422144572776863331528541374757286111125881257576388741848324711476288355372785235176772671751865374228423553763441134712854611234525264285563416271666758828818432654773381347156671143632532245876452452272154488283456575766164776823612576685312544813558853181658126744263784655152167128838684564254372632184266478842831411627611247166746358517587442557326784767262855252227847777614246472835457554245867732276117228564726863734817581841257437356718242848787777384478462825411157673833477366212311256425555331185185313736516346428731373525325732132372888333642624423674873263462368137162185334366611715237132238718612472514812378126535415638368236344482563486367587218767364874575685557757171848431814486572148274736662176747441147277746816581864311565828754564348128321636734231844445177134538487435268758842636156355235377787616334275748118374126318434821352172168543521245626123656245271145257278211722454653137711184118321617674766613745157515515872564241128555833217468831471645783727885422171867415317443176323612162311577365176313127432754282357285813736814342623122384363565885455635883133284113388636684371775155225524884111881862236364813225613852412477567331224747347356483788586641267866177263553145754688658888123475754676548453888438462162631877554588318252227761367531314357261238726417231863611221251273151653335836755723181763757573757424753816373534711577731545586445471747473786843612171112552865511375283543734214113771116213454588118123813434482768771287514553231182153462412558216826733756278245457381548664541318553845228214348745816778814182526567288266517253753416154234372648457165383227468378772784333257163636762671286234768158542854332384572751738257385361324266561781245186241653582727716821653482523222586637584745383582336575714672837352227553742117331555785268468885263187363531838885264352364268386655187412114161244676464757756223387285416568284227862853787126125835232778465486274875322238431184317253258685473477816188618774312683118647243241517374254742268148315266676162732551643126818811741134618476558475248427128715751554832538254118331843621287733575145787674752475538411586471435186273121282448553218837562372552266444261375847857451374218464342585178176361133474262388285636773141157342142458773127617367622186183584418642276157834421288487763133243163872563126464273288865344567445431286558712337346311735847752112126443831233864364424825462567461262262285248373424873428345273861243132553252583557868481177862576878712286313437222731734332485651341456256266545628463855162647662384566873647226138135387438883682757523777386661278418222117473237178434831587312752741622455638243756748764352444387458251584165446687371616827356752674483511112771217345846647124248288548526354472815111741542636545465177623722128685361382251772124683161153221688373177211857151281453468457433162466356347211838632878574337541347868368781758328573482784345848413331315851588546873142233736467767785451526161458738653882338712651882623326448122673542775363417284425754257135282255434537777353615751863365552666865438373678116652444347881136431171568513423658551184581564817862135576785231773752716824311667547213487162655181777565663611255142886754886565351674341677313567653145235747141717212235665173428433853214567555462254427176188832884761817368763155214823527177844422172524582466174475384267162572478241656511377322457865443386432156688145143565426361514813353525751655368383741267235676677135212347541561424537457623382754462566321143775248644216412577625568761445721414335643183322141314776831127157242676853384258758234887518422833267564768345836526166786445345527472437338538281883643153373412346451883746762437457434652683874638627663115254561413754131188427151836837121533574536688614326238288542158613137241711456777217783617724442451265753857246633523774332446572365556513434717225461411644368266337188488878486884614665168146371275185153588354425558266247765551136312656258687324237517853477252587651246623514584452344252146716647723181112162274365787552348678251466236441357482846363267632557362885615412717158475612162387731835153683573457383523736136425477681131875287683155185458711327754856642332667143637764712711385687163253131445667252683574571728623118168223456878217263331372841221627515541838728683622728614685436756477567125745124355223578783277535358761445513138321645635548313517271281452752384327542712713153477267263425242544215875235482416328146147663786714418873222138651334835468348686234782122824756878148375375845325615513665716465861564182643865415533868441756341116263116381812261556262246647354667838364465242314126712163567842735338772356256625415267535188738168856158475216644741653863425428172656382573214387434426368577575621156314582881433735258176435166648166586655414444661545288453733637156383583144411134621256185438242576435481716771142636316815581344887534214853834264481752412483488242368732632747884148876276132826741424354528175478176652835236572331363781387586461733186226835657382631666523838678177366128275621854637856218776342245426435564656785381867525846736377127375427164583356214488662461877463115462837763174571554482185842218726676453737883818845155315233172418152115581757758331452662648778472342487574335327168213366834748661821435734836431451354144287151218748183472285236833434443828186572441688814287576488711782461125368315863442786543283278125287421122264578437758268253165644172251176285144528216122425651658541514334587656676857766433454828146278518162616182874334561157633347184662747447316735253735657662467834764575123753348382737384116816154273771134434154813733813381865373557331644716216276436453258447368218341622112636145672613647142652685734835768463117844364668814671828478155568575341636261152285383842714132876211258566248137557547685787576217888813537232153474354783457144533581714324135444565825856632785741882821338543666234426251838121275867867538882274673467457166154342718568154368417644586182666782143558162565515131256753186363546462175718425628444681155388514746122312214773623282754173118181753883624182128335276585553552537786755231133563781426662174217683148268333586762574257156444811765787421366828767853625168125213657456574742738522554131848256188834653647822541753262833544324224548573472212777764134875426485821778773613857631733332748275747722461746783263356345426142625164312842332625842265474655726471776572412643883176372756315644688426364414481664183345646327353212517554651684711214468766282588618261336866153143246123443658588265385658851364388857818342281177373548415488827571166562747425354514245354323646344166242181575613234668252125655763554354473654863816822671756141156488517468726723462611756261766273144476438727151881145658412721284333145574465452255487447386365785661835437144236475276612348785467166261131124767176324545184336181724536548675441772783362481261728368888526137725682888745752523246212154437325542742323765636651336213623141565411247485855637337647671872117548338277444573163746315868261682225218611768243173711866881625787875546431811228566654828171631188321653651438385627125871614481322454478133837286557223384338337243642354224183358262116286131722775676715275421187214524384446322755233441857654142514548184373137656852656223687745718765763766247813178786735226763746383371881687163612882278856887586522527386751132321147118688417755677473758757856657167614525887565113855532386168532812423523346513518128255422462542574883884252567171662224127242186276243254362745712184282676853247452664762842573758764648485478321454841631856882778828725863884611185725821261324815877472641711576158317331852458617223343431287751486728823724682114438447456811818686345527653864174524468725726645176588462437783754286768416642848515128252687863357645343816162628281112872745142822243281716635554232421211375443336243324574218282431226255768152475774741321748678416128665232176424877866521378785317231654568262258615336462821547151285648535457328528852723573378164588147358247661553614638134631158651455461217851217646548872683356363571366253768214837582451773476344871655118628173532776552568283586563738787766626754215868744784326266142888236778381553446883125442624818433221116633644133412613564865815783851614137447454325532185246632134211364278571127572471865248457545662146615616231365162286717657225186656384814612317434114536425532217584551122258617675738562681811421775574368338217687311271371121657776321343721355186212718517661428751772764858265743133681254366222816158115622313375651373765156343628525287185824246271234638438751328815465163277763573843556588631387734112135572816717153373213137777348157315266713525823844713682473157775117448416865825815374278455841221552253855127528213427333574585656573735843764382384234583523155518478641827136353446752121835545288254223825327552837618717332446428841218411733626154115434375687678368876658187314765824428577323846514276246176234323734678271463283217783157471528752886815138817325764146472443485254822181682481666161477538534136177887166275248516552122665734443313725213436354661777124284615846787417417643211865663742313764453758651232122715872256454431743734466476588436132754218518383335463276813456728865172813517747175363621165644612816767678468344441423425685233884566435847843876187846213786173215515616251456735385623183366577288468182217447667348315542366156181618885311774675315738166442121147686334472555173556534765146751586828334248744716528613266448267736465858884871643361576882725367522716763731582527543343282677218477621163733672445436742878688414276244583552662822285358836566141465475742567731826222224746112254783133786645387628786741227343378388667817517866513283865768714633256124871346113828375753438568685356312446613112631372285158127228551764285216336834241426385676638675785473616365481518244772245271636864812348755515488543754162125378768881772433648513858423371425112687645555726647618311248352752627453615856681266287827823168836743771355685467277175737744444285171172352587323777131722853868246835221365766722624456327573266756878673331627775887228143351616411865288731615864683314616346544647353745873461531536554387653686583764252467577587854343275425761727331573117427311642656367452414334848248182783456328822754814116482126173732274523164351627127733645811384177231487428556358618161351351637246846385241843573286278324156476762561782853766286412314766122715532617553446236576624752153211458681213253873581868314426436148118631843137347144862173433117115677358657441254217476725785516235666283634618236844273752177682824643523184564237353584483338432555884283316611282121561888718554211588636116176785853522557424582632284851325615316535371288358427213618332863183442871661263761582827727825874738174227744721776138827678864453862441784266831334372221724756258151231524826546644823555626338314474116514735586144367548848768877445615775311615117832426361854468135321522577785547455773447754434633484252636256812577432374477852257543312627377583345231468251145856756128854323324816544436247484178781443741778238554187477327623268811254838727774751517418867355223247312782668253773584277671763244174833116188363382376252747158424526527883421726655136226688312663432721232818644754546262283358367456461362383477837254441663368225858852682616411222335418736724816463618568376385237444427688756511441414182687216542153588161721762562862111476247314668266325168225461246885315243565483672277716114187477515788143643677876453251221164472151662113872638174356178152568465538618614776442744558164271284454384352615158814328232347136268617711837144134226728141421147164542214117477511272742474455862173218676235842536421635742334482417443252326571387822585684684842476658581325342214853478858113256478447231761842844153857728611156156571223377178275436828555552834577381324788724826575231653546564461188577526524333755586517764877886722364625225161285843616785551833766285426824648881361626742812275515126615745635738557242183382848441777357582731356276186375175681377671586676423786482781865534537113762218747786486365438582125583748858541428138353866423681741225672642371384836273525454518376455276424321613186315857164663424548257378316312843314128575576617628457185726176864142166224584323368644323577845126323812867468763346445751222424126414361127152353617241767861377575122223675512847323315263881725136215334782675426423138385137631137352316464623824324858538163845667517225373345374646311323317542387271374368813146774762217552787662365413368374657215385756133568486134832835312728328515275537266547837736337276227734853162875385688448248656344674268172866586233766356273513672168573746283575728254778788264867732765485741373267323782775862651817553783482675216456344812664721346522652588176633133523456548663881233878776226138447454114637534616815858332841875382488733672223571165167858114543448132366258516521687278271522436431224818461278825644628446588388117468122786688838352885624323722324236163717681633428152253241863453168828758428727331415428513558422474158616248147158586224435874222387754575141822442758863562158877351777878641755612617652736474326384751722766114764617446285336836118757815315688225861641263632813875645765145626321355448418518565218355855227526543754652577212682636728417358821886832676567447571838838635683777131815633535488178132614263127827677356371575151854235318676245814446745481116768277375823546237638128357335612586485674827337762673365218335282812146547147725158183663213738876751271874763838415733648688654318326412857817725167318865731832868316453848488812482355818683455473237188635233438534282752766312282662335824857781761153788286426678728871466715653335515232738217146144256544266211627831681661445726883646734541563333887162776854654875327367185174144717675147428864466761678774877438714418756711326514637676675587265676257518537857137853222676264482176837557354726372581435132461577847454385437653523666368175211611526545257534873726448857247374346687278612756238444446257656741516881721616481334344166417281741216388456662482435813351238221841636238415642485152174166185278828512243774838235111426785311767687818857326331847848327725517446847813334144735578117558676521371161164248627743451212771418536611727813432825757475661422345663721311524466653467144243174551482538652787451376156262236587617856783567111715521813126343763628164832718588111686165718256575182575432342322187715383868586163821161355176386767363351775252551364381518317581186378137553775512817156854318124413324148277645542447613182113543542855534865425636216213374584647718353358566211721247545515166546448445887667656346211437631842685646733361133446724866386482637862552874654867341683133347411257128774348435366185415338146232514583883586731431136561244754174541485725287237212835548682281511556787326736624466187566642313438677516886624162437784135356665214652451178555365741821553885426583684453875273663465527717428144874421414133868125564145744457855864622182487856423524167111865238581765861466117835138516283475342377842147625178478388625153353277643726645323236135684385381615466327688282424286436753477228653465732752568685138372221187661876231163731761138557676446321474256854344171153615171735126151546883473777554522231278472654774174823312723775115683382434512878177375157415612247566471787182681587161721177318135468228534751428226754568485858563244664246777665152125124626241424582662346674355264662781411233657422615172476688665822668742773524742141254433466638782776554876157323844844381123813746418566238532525176425487455341157511384256315514223333268368164415535657158516627151144571554684354576372813572154754328144124225641348538454368325724425587815278311723435753782833141688151637365317341883768638843118124247631732623412455327273288157447812884725623865484162852857367257324483665627743246433277622437836435368532315388138326788138432144647381486633213145434144854655788525365135326537647747233368757421844223415634217877672165852451522518821178411855738536288815854774635441457143676316883773154433815245352662188426625114318728115381873658837567218416734475353872641813465828688341181137634877843811816514144175674783326684275442233781315464818154476112221334547583678786787468717264476125545882338315855487448735342543757454276214766176487377672712787284328516153428667573347177326716235785467711377235425238632412682871427857885465874166145356286372188775371427876381664358667366272131655417862282234631384782116328354851356563456828625185813582484541675417713252728338585555664288234364712777161661571642326435317412488667431183122786674324525455272144575252533418176265627231445228364788113851734541711383486575422877477461423744532257564723432378133567371334774611433572425614324642466188244612411467571241248618723183113141277371747733546224263462443444447236222664188416573737632563813783574357726333152141464622528564828141788273457367472544363838126827863872787381718151156356854516111467555154232617711145487828226263185381471526157168677161188625682877525647344747673388854882267325174347742783332556158227431833281532163857342187471382612484413133248282885265613318441381637631822542611384555573486535255185257327158774318854714533745345531457864728258712282341585781348175547878462142231152281666411475548317124225147244858686334138683388751268463354355324624237113112877662615581682781363443853321577851177213833223825731223244253654427245547826717481528744838282244135288157418225164824816573754734351832763454157428525271226388784756141345422223762855876323258345616642343234167264438266253243774454258262378263223185721632161423818482326713132411672652528367627236455116125225871726145178411383635315563282456545748324252851378578143123355878152188172376875833513812834482287364772166664833774272371431646233527422154256245524322461431744765514371753266685627564574626783121544385513747421763887438718616327746164847758543438242722487236877344748332245288174333142522326221285725816482466451664586484162787445533273178785538575835818278883523717616682815561153358264724645122753288471514568562285637112361456545171716234747853525382128234447653638422586383542742148838134581561262172777613573754723486725568352561415275211175426752114666263478235624784888117783612144752668388821815155866713768571126253278166754361537867822566547253247614456851621477835278743328348176283577555654153642385624217223882756627344325656775143564152812187655251572724462845388651652731663774843721236822526258224314131828478427511818122433322428822171535566373474143283224346234113252625154363664643862155645755737151352688642116868275326862151826543788458526323887238785567628471468412333632122432476648172628733731663142214154252483411548222565238218426423815744671414333241431841848387257688734565667178772775536463877654317761416712781835258765254685233525625416373843555412683653342218732148463764628236185352353443136817754737266788454686522736245445271361153443355435274166347858244847524854741481564877322764654217858855446245218516415288334642517213614835546263814181123184345632613615326813751868832327718163318365584255242737487636266261461387514188518653213642365648675671232511557584512446368733762845125876612537675788236176454324726172753675441888517725532558112426552886131181627581253875875774146385615772453373155153516755856356826282327342326723641185581286778355456877171752673683228837682377731575173125384538551424278217566674288212681724775786872888355674211121265847323512288454355534611671366851753678715417414133284337364556618667324822668743258352758324644617111582438414686382567458531652567526466364441648885342252236174483735463564547417637824616471831223736171535872622514572286388867326834744348261428574763453145547216371712688737682135441455165476224852132522856231671786858587215312462534736411275224575415876523451623763464187521535275764183418267414422426374117532715375682215825157881574675515782331558648341513387826485616273472117172662428658527733184478624785388136365887428312311445373453172552387747588226423254652114368235352716336848556833487267654646348426258741465127454757621684477116623364376558152246868144158861388532658475877212767432544511231153385883557864122532472717537211231636642448817722856113855773882635386416114576368841385571445618284515815331653526516752852238127568736358132353614185852234146851583835514718176453645838448715425625862413821633114666577254756884287388657331317645453374621171285185837631457837444468712578215715858782584487242475333257277755126586416745646542772287862426825634175366586342135312618821227657726158417238818518676265856737361875726386884814542865451688236374533733237578141886448177117735345537542361861831361248648527723833776181677446541354788617288273437716862376181633223154548554467347612811268348361242615227634166833783716412835141876285838442782171122727126587245852152162252425534363245711385842754552743685315343626863818264448712656122323756728112473388441182763545767653432848256253154253845361516478388258274516673185186383351655555272166383852867433163154231756862747467434326121483368487233485571133745863262877265121831761487186142637625518436147137212221581314434816157112665274852131681781831471183888723846483383433112781735824774556751565752765165742532273641683434182644521187548717184127753266665418457537873738315616483661184541243185451434332512227284784824638615222852154214485722366455574452643747844461578761614116555176241134885843151617474872587685368478448148825673131274314168566262276177645211224338468733758372451735688876115488142885277762177666216781582212615565758533787265882237383461211454548282537454548453288283273838388775618414835571866473662664261754424365437876648344372454441236667162621528778471728522165275413325247368814743881523738124565464148775466527576638868566681216512155662831677426114537384464685517231824187448716868765263342518372474474884862364812418431686275438847843381233674734467114722832876466766486724364617277526726174387135471152258675468832361845135747176648651278485465388353836176884234781765315522242144817215862881136123621262153726314685857747751438751544458731232567654547181738375346457332412337211534131664612713547477328152837171241226247234457866355366168534648432256565877764211686361834465127784227725568188626123723231348288312678216262744123184474524214784558578766126128338543565182161533448135633413345756724384217831335237617615836273862461852641464686237614214883286141185731844323635183528177164667344534278671841256215163568813446485824752412287414872845536847387776322133143781857758423163783371578353354288255636567442782186722746148165151581344785145751237473744356863687783267333887527422456788553472331214144881457368212557471638532343424824558356834288687637586487338676248742145134163436853562812541221755836445412422717732837673751546636331541488641221473256283246526226271836866678683628487428761253746535883537266514453864757863726577764136741212514881173838872335663172433248361466162431188778456364273414111746451351435314226721818726236317621446445673762514664343865363235266472146388256533624127355574257516677177588322582153545113285146672158418431355457422173188613137213154564611823661868875722722682664136564255588555251687571645523586318633342217433253827648366526853876217488787814712663688322613162378278664525113775212214862337565551134575756612322213665468283427527546287567666884756164183414823677114451336676737535811811383632237541348624857727877665764744524447463431536364648215658738282335248158217415868556123616686586267763651511764428288155782141426282136653485746423135574755787364446127157512121321474538175717243524475346247741555127625266657876135626312782747126777462734333542264464248484815581116851374644727864385814152526386173221252334126223613228847646445354148268347665836815465248571775776761615272731238375861485533727415545621584613246484218663515122573755862843224868171623844246112183541432423776455423776867678775218758817346183311678175811458836528228151438335451327525622524846768332371718455457825277416581844477262338832446815433331586641784212412114218518148143687462417537735635116666337282262514725374737386567832564153366236375573852472247137251236221811335743247143263663245267586556271661645151143416671814361175713446577683486634463228355352582844252131845325627681635836173847861133737155613463282354123116768543885312462474414638712218553427666367172326466516586317821762648142448342875636855643215382223626867818764387878251437653565744217687631161438144787528863124544371754821861844828472438642283332463465268228622635468118778627725762375714733155212267246625564741635223565732158246657186218673443832357512726382163467158624857837124764613442218452337716263652533516647178381713613488773655867885538114538361246145181852458714137687157171682413662767868431833453865633418528783636584543285542484837865733478743462423612823762824327466714755663872722124156845873731467558736274865243228511264546254576565271347738757464472812377445758374467821513358714862268521786781747681446673328722588226816553336763417232164612832451157473663855363146728376431373387182158822244418181685318136823482664325446884454231731681282137864816517816423532522552337537184574712388831854712137766576376784842742712713844254537352686443584678558316612783823627784287444873485486163813281232177116527116352862244535422232188715256134366523416855166386415153578152485123154326831326826388547243157266542671833631488727743224431844565488453433242121882824133784856466318327232411266838137476768575723325734145733522135831317235464662255435528867771431152841184262357552223666454254266121781273474831112845551666151652482126434523271175611764248262422333533884328437687642765672881673643832138147714345433587753527782782862565156542284141585754313478245163565886775256813454871878461676141285774888355581147213641427678468826423847567338225251388163811867218461323656637254841454721467388742761743566157158264552665184844782872335811423388322247754818487273116563462662368484848836575161462635162215133848183553226423526681864271651554452466688446488244731815842113224352637243878568647615888766687771153574448455826756154181368654721764328221423767571841643328687475813475584476832883656175534368525734151187587356528874446841783146522536146777218117257813587863285824625184424472716657524472411562613368326455513248517125222778828822844555726111667435617883452823267581273458523135356723755127414764848784423682337671653262562625228165215571771317844256374253641327845251214835628612416423787531381566556856277255855664614463158226833334853434888433584816813881354274635565835544583683351321413526851274746861321685682728531448214237512288832866545384327357778862722117582458118317748235121126257165872734634332223735444443134547746588158282361553754886868471252771374788686657613218752581373421558615575827688726663578616558672248466558414873226464182454373214126473828476685312422627245133185738787635462563711642154323632812746326733885846627523552884752686435168135638851723675732816266575273676255222281255317515238576162136653861748833463824484428775177721623787452654625252568527683575313658482236617721654666546761187424161251821468241517827374871783785712561517277845617535633668157618752478366657387147276254156877531774612846763264883617721478232716344447825232687835414542232128653284852462312764325641558752736223227432668716848473145172862543562124746727427126386815682523571647733212658557757225682544517342282163734456383122351512567453367445487831631512636474517114847658357747771411641178215816817473365746581342166142652218861624622283728818726136283171166745266173134582444743548426124755153727127247487433754615224561762123582316722535511847255582265346612813271413861632445154877423758618533644646478621236272888834782453676726154683763182851743888234168411726855318577464154144833116857186488881827455456867132138634281531588276683745412362264113233345165571348381846743826387626612377746547273264517886386134682521361622148422872437156431468626358172282781888838612114151628121127243173272632567778881622523232112171485338286644238357511581412678625828785258277711632447487252784473132544133521653417313717174188382244626675612657555735434414344235514862218475886441171281682625843311137165225868544551388526271512274156245432462537233275768571664741134664471388722137371346873424186534562362343252541674332371681414437654488361525588673521656483746363667515334758737156782436477624177518648125654568247147656537586444177856433585466847424236183437733387612856261834773785164464725144824766483255383668253386778371747822532753183126642847632256212651814656123825385251823245732687685626438382721145633124213133517161771668422222385654644154164877622658311128328581135447545811462614335124856512625735681751784635235436537778147386733517554134226638183876457847681852314774216846545781242846665757688643233576237777588673326568488861374318633571135811883658665352156177821238832282262534161556428236835827568678562424787528862775274642255283656758815367335221414467661241215856527752354776573831753836524271512374218554817211853326875453273817435157145863638657322555843841448845325828242623225177232582235776128616287461477853666585614363662588828732466332518757485582855774763613458243361853653822263651734252416187134621153844632164743255353633135563365538118865851333835267476644666231716654358173343438247812834644484261563262252584524375445571128213238252876133272576781345147564857461254536842268755578242514655512284554858733477842826644221637656728264654812413352636257882356184522647114844271314825765816366734688281572165756855582653486648215672446523268452877744748473181635561278566112766621682518525354711525443118856627383223662266623462173851855284571862335152481687866852825531185142875447484463736228161521278454647353687114254765663481478835185772757537644286364368427126226762813736317376121216728226887271842384622521387868641568228633737633112353848745671533425355617267148341332273751714712347774352262185785113355132113383671266888265414622616275173373356444711386817365443131648847878581631768456774185357188143437156138713427183463585464478488285468156387254562432675673327315447454188872418223171558477377538465441888218221424278634233845878188258665557356662311424484878457441814538122557655717746812856467437857461626242688534332427721564158762531742121871163372653776752417657443514667675673448784448378722652823141875523767323437366825752128824128332575826351754112557658627776421567736458211218464715436225826541423765656446371631364683344618622684326561865144742317213333314161263436483684245833753176173246834763473527837532463742215236878863822231683513751711822212588556554646775746673464423313568575746272521782536478582438445354544832244731643357373122866268278572453716767713381568733245134158812853518876373138172853533685585747687373671842525412465745361512141865731684723453386446644462565353513578621822842653133468586728661184866537788625537871711557433232675314773725367653721465877367432638174155378725116721825742252172158454688661847328326567753637783728874527322111617462246266855387753314213823174581671187658345632138218417773888566663214718468243751481345234287735723383216731116123716138225187245565455235313574735435156224647381743123618867326536188721284681741152421366787221831478515564325881287835562183643481416631763367357246364561412456457287864887783573326433448374116485388478254273211744755784854363517426417526714885847573578575832674874443774278441288516164554583557812878864517633544851423437773274347132153723766262361223152376471871275134322184882113315214422568274454783662262362368846384212786843482628542635862433232643528223527451321274637471768514553471483238831845428264817867828864114386876642273155226873364362738767232885111473612388533635527482724673381888858175815748486383472548447517458154625218724444747863813461275272321716477838814766737764757166814855663223121186736514658253551143568582488465858576822537883114431156382818482828576741546526556637857818755527265821542383655378241532574645568751524641625321785855763747864715554885853251781183531522374465627776348524474471681457556153331115718437565621758482336838832848571133881267214751173343245218227237276318781772871762285415377716682173857845781846663361568156775144816776153147471727544246732186254782416762326468233347887763177454564322254817481721376754633265683235141586846885614146528543173882413222526273424434156616614812122381258544845174488621186544422222344814368437844873682326657871772762315858428427677875222616454547447888437175823316878756457523353723433216717614461812627278422388318231716346471442373181688885825538576361125136754231818718156611235753534783575668751411312168683348262521665212277227728672357647254382255646552344772321255836443552633367128221315417234683134375255282881578311727241271274673865484352118117678551377883332228337758631537112137653543842724656118172742513413247517552632767145143883214241465785647571666271642546827313146533764532367673716667436826238587735387282666857382214786276132885572182867521858148227516226372581666858612617372381711128723873621315246473721811547358888253534255748144135272746548238255477811245628237316557828842824237184718877556487724273163835145714371777381135576584767231435673171235654334872317485378177226474556638752326456382485182813521846325317536742247373558641687453755182512285115811836761436347674773134258466136238476426657585171174256781461673471638162882168276358837644778127756464621737625847712373751433774527681638487652513347584346275614563216223155866712636162488831174411688651717585368132777441225253888734822732164834728668441163358213311554356721868745646754246236164171222551657687868525636321123587275142764311786728878671658665481164811841826314268736558525631636777578347864161844311237762531816464485252655736756476333283881543543264186268815351854761625776112124473816787473275623482168648717333328815624632361211374845586888221266717342235826124125632836825513354254137631833111234334123543575551164586585555678717776611137384456723147684837468824582665481586844747674733546244311463872137373667512575811282622665633533461644154378546365417344717257412235647746652175685475566443858143314248585481855114657457354354354775614844586213245642473575812186336776845523546261875138581466215454227441681114612812747455133374765368315116444342523167342575667355886254568163822885631485637534788222578252251311874588652575535246415821233233387613675814166557888287717287236866832572685121778784272851371846435584751127116643161326152155654221382884464138145234438331466857874231576158551731243774821215668783716572247727813886858576214678661477662141512881685258836865848876713674645514568752524217412485743711335785827761122113853658333561684863151527678586847823743861816354366484233677433224265557258874877326688664417688726833754718867685435182548878751251213673541116521288111187571366377623647645164153154624578675124543516842454858825384618546747358211812626267266483734454147641562352131657234574836863343717834158868614484853842317343688473765437488514811861112532781515747381786627215863163733878688374178858581187672848787253123516872574514278643787344738281152426572132125878335766248728885716532611413167661843634613553714224344452668285756226554816856864418745177584748467673241436133234275441711874587466741871258573566272237726872377558626331358222888773531875724276114547541468628353275344825341522165438533481886322546615381852156618322237387628541311718582416634533745345174645336173613818378342383574658781331515765734352343277236268747862532275427758654538317635578443383171628582237377278618864877867275844561744267856536121564332748111253347322227546248863465526284211241643762525316888846254573854675318383414614181142337772144218741438678121225176228684567887838573446125743112731458713662235678884486877377227253641877781168837467622126835411772878628722324137561477647278856221773632824133758866437225122414288437371481663338668547156857173886432261217236713637241813311661818625716236814846466226444271342311572764532525338546852476571317323211233372564235787646154151851731751757175285445275487561326311183167846223453842257674716116122186751268112465356185262773151151615328336431563332458683665762438131651884126356212237282678528483525225674878615578415348287743655273412766647813423144634414761854382268814752713164243544636683738126813148236214224548527344336284555736418236227568231622152441883245886565286621683452566626476387573781415746715717835364172321665155663246584764627822371112145357724114451783835726812623787178767747358338638876347515451858833613118118662635866726867633623641151532415337834573845727746122273816144547137252425783567346151441225541841363575751177813225351437652326158317448557224143645388254453757755211765244655188585276333567424814577813345841561177716164572542616587577673788714545858363236416232541125454835456542146338176456572688215665862573484186612414268835825457115754768748218825482382551165536278255111127521251155317374817326288718772631322827244158518847657515253883834286527628231732564875217486465772223572512384427575683418745181312566434524662421756613577784574617147561546755482657173468726356257825565811526482881243635436718661734322144658548538518717488422114233417468433853523483818712122232243556555452678684682532613523744688315857615332481554685124154431122564111333463525555767233263364182168283586525162324686621114224177816823564172818378121122538637185786141227414138811178812532142276857878376576473251127261142751523871728564762284355647753615726214852575868777771455816776338126123361436462758882443236551132741633652188775461675588824834714567713177156268334858452624112455815871743168663135171217328431827275256524477452656347275178772315481218357163835551844553517337774564586818888522326442688578864181541716783624712425352868863332272262817276354566717885858752867771742531863176363258615581787343426641343522847364315761525341582855656877268886124551228744858622376674161156367674415356428472276751867634366215352887388314123674767531667357481345775465874222368182225651555251645278463854157656878141763448223716621615277844317213256211138168712767156757248166153478242655636414828361255768141848863738467678746471265743323417812351784637223551543226225256653757514637456668483621183625871332243315257485385363451372765515776626888615735138464487245463617365664214654357781816787134855673345432516613178245524374771128341444612132346832578877432433124768885118813316251127556461432774361847418415726787311154684832165235865522154713644415744217112524772131316676826154518678276414873182723477758522677526245772341258487333267786854723287373566558267187122751555614624447412737624171577634658375656617517787228534652225556245772552368818632252526484656461145251184145877613732141213548511136733787375723762545353526344327156846745124861124326574815413768568314513815674775418566666154817587656613242625735772558261337157528276512333825212456841648552863587325447416624728221875816184151747458718566828536333773458551215112887722573235854218124866184255152713631844136316217312867484515756178768847568758376241551826257735428318236677316187144612136471122628612848766242116247346185764833558753416682882376127434162131183835335115762618171831883666476761464642727885583343842378133721437782574148515586787636311678782367485515263723278158658424364417246466151888226127853585123433224867333333351838484758438362354457242274276345285267271724641272566772818584763181774535186722177423518535823823667281661157822351622341712281164474222383672526675765855735742856377263142213566624366741182876574162462552525283621461276372611213821246184223552364173666846554516582852341313281687832675117568224171874122437117456685386113532115684266166763325884221781641517277264532225117616784761512363146463826615225673832115133338241874346573764338337238328542253217637856238348837717341811725116866738128628663514417415487665128452831812865726837467873455837564756424661358543351755756428273225566844136177174155242844767751326666671155723225716681674528557874638331523411142621455817838625757681748188261312153541183132517144135811587577488421431488656222231681725234641673625462184715888135613386451588731143243531288783138338672681344357643662651316365388763113737238561443677424212637374651634223771481738266657887686723575564847676758644125865714145311556127485267718772475826832237851623167652248237842584783573475114821743534543316426516562568176467323575686123735555728865541284875718177376656373854757163177146337285631183721275357134883714533823455265425413134417884874334633547222454865864464764223653672842734646243335742335646673547417382363846876467351782551572822747571842331643478537781414383247583654877547583525851517116827746617166436882213468286854353116437342551326546548568822357537362713834155365831544135332151457635587154377741512875314111253185221173117853521787878486218475687485763555827663252666457182622467645616365782714572383613835647522648472621587853782158123286815866764843682554731643614538331426281252481355415476616761758771286278488182342556287571523281371564564543364588817625447654777414862372325634532453666233276137281888226756321422457737256521848147536822641652564457334673646327761232413135383417282366512833676481587581186836726643463353536163677514374874365186144161188653637557175144166643146521225262132746322875883334548881628316215356187856456441761331188185316848328114425621614487514273713164185862114566313753368687135117414661566511712273176753225685213531674841131825283865277424114157186287386178664131555864135437816522822626241654765132235647134756144723247271254733656282611246542688811487221551533322147238771541511328717824173315266688536357375414184746824341437253173428856454838874566667416883312321212557617665183768216786283824185727677445625887525362576845421813636247321521847534388184532372525888737775448883183812821225374544227813527114411666568241474817386676615125456484216682447517136662142541256562558388588341728276356262374517453388227218281715516324228248172877818381878165273825883726422678466165168635854212317658116265777575657622824142877614524117555418675214862366251187455555362577213723726123335445756318515761252531573281224735811347218442267377435324443575746766557167372221831538633156632875681117545734724546426373145813433244115357416752268717177345477678741142572334142688164817413876832545784676287834542838341345848261645614281654217357858178641356382538147713771322127672655642366238181546535553432281432185738213727738282314623738542612381322281641525455727766722182277875252732754418657145427583417866542432577177543424865385333286752654727686147178445134365342823658212666347243286466564687756237118842375251436774582667118788668221357834674437857721237266114626657222386611583144664547327356187511615146683853436582488834533141722475651553866523462324444757536335561336623472325526652116566266424256424433651278845115468755564571238662513327377458763345862421211144714713537444121452828737547512648788728564835667838728568188352381263135288463263711637643374164252131641274261457582855251367748552333122535571411352874576152877226527478813723448384652454552141658216164412455172424366688653385222587838241455387781465381331747816466142256683233245675564248825538834126455764658386411722723143845124656788365381642624862833283514546326353458428368635525725233386878312326365252282343522114338187528646138635514617657734766733654285788722832462834667722512436845485144236171833466247365227868478683666171144471665268481277286225178784587813631827756771365847253187424814344336772136753434848225636124225615873255442444735426678357578141585527237163253355121635171641361887361277558782164686812863116155883117524218476545816118111673372358162258253714115672373827223147632746358611716374578567388661238173415445426212358876673358833841357583111782827872251442145136722667577634836371266371472654343271845464734133255573237384787615665863456738644857272126466843276733747127652654543442158428433166411828672546166117324732761177435586231372558361283273328187547163675414631567643667866575386783131667782855381324266422122381671446886288477476463215467514362363663142676185617138645485588683168341115424685485338535882452654657368716845282684257716858135557184542245451531142483787766872687723833278347318225412847543427388253577277675616244437753781581513531315273611185185841826875113853154367314374581144636135612617874127745378417461544326474654227226181285285643463785211542553174751546235466413478558574418624786841538736443771643662612348435176748788133417242264344248188316847586561527388426826187616513387154712558885813264564341851381666723866532123485748768565654481662165377588485141137181323652438683322647386862864641462714156683675756585883176236241126573852321553273477643863356337173845273885364227143441672464748744438387825816728233787112255246648278136237816588565345127632462178843365733472138531732562365543284432612628828572522474618333343652533665363221148286334237258185355372417736532527812885417376728813244624444382273143271827366866272441454578664667586388785472615816553611547161881625284413568731545716566174133152377777112181245486628424486468514383763642653388537561865623344768125178852347711653351573826851757163654758315332633477675132627581753314835567412646274744123432274425878243648421218581558883172571774655621567678317868755733852536163332388134854456413172137381857877177677173185732681813438182576454223827886165312863812726672876485357623181687574472334167266513285563863512456582735787674842832154447678571236316485321482575351582438847861387816248347513617754664558123758551341865733783345418731413677618633686836213236374234374352628372327112773183486828324728676522453338414314353813541182556375431334831367688651511411663451881683776528345371847175128325472221565826547136737643324242756578685286547327617447368684636381221446757281856452388234387883875625382177143785124534138428776155685411274234635755757766415116646873861183433617281646476555335874747856868236623656185722841486576348636656135351161218183713167752635167366713865655522883865342572757275562438111333588576177813278164227462167212131174453243236134223858153841743726862253266575556753725628751133738622117653828584546274658738768347417873364781341538682244772625236831233323114736686777865114627116688186187462711458752163581867546225871734512417858265272275815686755514162318682528733652227644138358735652282441384656464818328345788421641582671656168551457178635276312861788761274281745351374487286158638673417776457688477534421622682321551418122586545885116668814236288836517657467667364642382624418113628584812635437583628581516523475412582462884744673538358816352868178733672123281428342813385588457111374156365124624874724438852658474858686864336424413516212446182546413658258582648816334445644565815242737783637325644157538645233357212587831458821185415478653654575331783745483412643757738684718118188133263578754741278225363274153823848714758741555147662858361233177164511281826426774841733553761247665444443645434534377531576617171575725161514533157572538816772438172347365628682558373871657717762686283742317438456455126564851286713657555387814655234572864673131462226326114265757216111435437161253874251677251142457162564177213157274342734714116728566174561576454585465455826664332816158223738855287741113441768658163644184558175821677122674626628884154121184553222524487728557516512171678114486258554843857678136815868846345166572673145823583283686646872254763617573241288425451685188812448476244227237776182151568266361717587821414378857151773416113782641213348344818612361326126162746833724458748676873511878676537771262514458133671142748664436265378216552561418561442327467785471812264176136644777828433817123113885381818373732231743234515723762182151885337257242422442638876775657647747654165374127387346532716647232854461557866465866521416177756658153728263828272811542825762147124382728117685575616718156866634734615573123267438271642147372751322448426444253637463673272864156267718528532565872246254341723138766487117765353343865111747142585314214887281434477185638531381721287384611721865634816856682674563168236327862444535777546671714761371167764665134618134768515853581584477545124442155587148682652421825636847358555674255785151288386431271823845173264743328245631174682451721335252686184578117226283114276815486263463871782378615825183351858372638134773627677746323348844573713325651632556147448634385443471622854836248421354713333463312361555825338342334324327554582735547111511214447546874716863725366245313823437877275623475654876362567756218554378522455181455273838775483145243164725485416685875533768241352538626823134783187551543427258473314616628165864626646155777425613748212714381738283718453284445428445225642681311557263458563612545726187226224878652667224284424886383772263256688836655261573647175328235448725727188263332265171222285716375737383321651764142168357518343786326357171764278383287645648887386823482165578175364748111868487256185862126124521171671644383675454641728222271847163716235511712266127546731425388568288426286472653214746585774612387316876322456464825272736886232632381688734247246762514314574756873622512886471223374671638714268432577454152764168286266246264264188534836713271686173664386414773636726416475122626673272738867311578286584716875343622862567358114188648738183524886744816732418418434876575717854547648888288246148244788148535855776675211275755468755328378465144372418527663311853485173186557585743782267565367524728687344263454688813431656477556435365643674758616158122438275437622382238375852626385437423636218885275223324543363783311674181881118536527678866823253881886152263682444817815357531738538734116476377377265462325364773463564377566312785442231336422757112215153488365771611613141233534452836835761417177144148737252384453243438467245656237711583422566842282837658225714372442684521812181374718787848274427554522312587576824563136545844481457655512468632184456211315642684238781834516322627488535687744356716865826644425322744414757244832587278442558772835443728344346455341882117886786131478114444741164168361135474684712618748274787864787567273352683538214788237625762335118314241283271355248712888688886716382417485576111147814863468246545343182215575656246614826587243444618431155331852378741218181135285215712332184333774765544516723133578478387777752828468421762662181617544182534735332241227454354371745215365747436321448754376375456667764324734556361243661165661834622624284528245831364166514387735614623242132335432585252657132362641152835265617457141222135767142727516123351183417288358542425353621482726774731528222233364566548577438777257326747122825462223737271264678277757236337544423613472217633346688222822662814241588375615681465386257135223217823427177657382887323275313681172133717344761636454363564888817762753646631453185532885855825418644625155681686311266622374421355473857236283834641378217351382731783515882381335161151773522462246464654844176258265323542477268525176462566753775877117216633552656414327114143616117887267223488215247617278111417266183872882717483861347237865653467736525462227261215585178354357112451617536314471611225122244124321876715136475245334812623134222726566771484525728868147327431628435711718337578463146444357375774152248733587184365616133436625732643673517367465633415328651311264418468366713843254483435256271281143168357622147284286718477166271244276517467373383671575182476252575813651247445423446813746453677867713724338766761237412754278545423461718486261878681572656526838266824753236222782425372111783375664128148622816658276147184183626187613535782223112413872487358168785755882123474332231168715467126318855636145175367362227365244574546621474688235658761364885343454715744271763347282828174575577167548534511411876145653726375242153622138278874558274152785471355333214128673217683285845551283785715274128441878755451576613842138324436437485162616662412683666518147452381764635483218478442663244188825662131341357265715878314364862118228313148755846331231337622522228211571426786127116735367436244132778882341648428783488738441533612667582353861716745328331373321186716627512682436165584678511676467618565681834231655221677756551831474123223583338521685566723826632134152372664236882518857355578353654858676718214322727618327258181546222762447466355622614136816132358216841754276658586158456131735645145781225552226773425277267617762447538781812381618227631467355216126516663818568282562678174312814624881346814781643872788826173555514218886375156415551243527848181222762215667127538634673436446564422237765376747761737242882225636446384822312148138524411383755216885855152355834855113232474661331525181783484856266546452725827645815685642286771184441288657187678857538614153632763547223833666263123853425357541585477766614431318611618245565632268613343472273648776487825277362238133142355381777274843452887667677853684374137546641853142625271846822356638574754758131883267763551486738644721365845814827465687736215641288273477847146771128758161612432121324127572836887871757587417518241628443333183577533858488311231883746746245568378244281681771561721215736143137853138117756813553643286887881756756634578766238153473742537673855687745688127884332276436251256682166615313118412331648325437666871211437445356285768752462317662353483884471768342837742633481335631686215272773643536788215745375444234348286552771238215476824535647748657171738752462176478417633413138444577163826785481136888716216756375183451635345147634375816357873553454236721822482831487723377533547866318182347436243171818768184576267273116726241518616271258313181478775244834674215831855472757566242432724258661763725131823748161213172566184176235388487663366456462577887162572171726354387881336461261663422615447161285555575822127642184724428732717463687876287657867145457137228133862651146468352753467862653333338562365523524486784677724856245763686224145275864188572844327815761158533227674774718683184542684718458671527663623258255378455816548273245667616132647273784455126885875453884613737352242646324813467124163118483775115771263351676444422433137825583741757771724435547471454253462646418777555867233846678764167823353211663338148114478355468231453444116336827877876428633645657183261881257816712223775116373257175132256847284473451622356238116266152653243346642711613132812338134876386232885744864737118218713366583815163343316776376263744647316554852755156431768155431562387154548622816217371282442517647511854583471717286323554674524142186223236213633834276525674677744265578766236238314135381634128515734327812521242525242765344254447568335156167331424587673118528463885262875764476842321687258755122345283666225465314443735712124824433466145283771281274734883152414412275712658645453843813367474535458681462415852843243146855177321378835236682552566476247656574578262752487353566722546117633751674851758282415776811217132324182543285712622286786524484385681422747177246856643361328747814126756665246743214411543423871442137752865521546847617626814658868414567286746512862733584666538266383112453263366527566611333256575753687864817631474714587521237428655123223155661241361128213541573184822376451432257841427463482451757643188113237672734367673728562136342843233682544667186445883256481671668818153285185448114321525351323313826715125635335633355587688886174635244316816161476632451131634287462768458233777522464536568574337265727432776547441784411165265152344184832253116243253856544748144128123848315576713215838812815877585785476645383373436437275743218458114335764753213425241475762417814447881166854385475434561722328728577372874164513722278837635216221658523126447321515255837455747818561568273612433547287641274572588243231267312362752522611638845766758736334452343562783863457814576238568122755268158115357127243735482453544727484314536144768222626533553712542842115416858436668133357637588684861227463413276776673226665512168146584715788474253162688358523287857388477483867872157853572582386286642241543832783554513733157446217833573843732677245427484234515115861364217473886445744864485815288283623461656157543611645315522442611626777241162333366887226452382338577183711141846613125436533426444851812815555885814424864375531683773538185354852168556555214773722674651873147745762176284647621484538374585445123836326657521336688384754367846736558884713544728428884472872324846545676617155116815111865157252573727275881557254435577154876742633241626462254517763377633167216437258763147568852246175383778183825482763538222415164518556556424554412631648778156273135757258522657481255111675884814455732751526365477555684883171182675821548276472814543538516513772831184178384284218557417738214117174543472857177811752314322687215521564431237575621451578628535787442871564137681313156127547277537774816821756586483262682521848724875633368637474366136385888847312465763632135232842542137182522664227477357871232382265835784656747253188773553452675848474418254876875523578722656241645186163246734176431178244828681888363256716815225324314416836836521835322123244743734341641483624674813274215345538643373423355481841338445841161831838376323452423555281641757527672518316248362526712546588347726544131755652871267422777772321571884165212181613425318144876631618763453528386318748421527247325867211533122753614325364778367464841861273454785876573657252854858643761623268457675547451225372253211373365212666831433422741533754747764165818587312651515358614655283616786443374216263785335717477447686817835313538768118245854655435725524614134876576518114241683232488456558134672117874488454446345887552224283118716822727868654841465547154852442211153755477742784228525162223183218152281142281312361444365242223734821524644742664378612826215174565536667622574173848247467876881521357128776375236726324227574533537381874667752111742831377782624421117532176887843236831666548581587321527826417381573651462131281887621562818648386368175288365822783718686531461784617834531128355215764486411181237121473252274664247356717776488257816822786228644448176531361856423121861283253354833275378133374643441435346363732751155657855131162664368613853287788355722472254827325873844221568512758657463532461524518686613631575452865827752784842416247277336442347585462226222438641267851662415752455377115818471513165283331572487823488651264372377866756772121521428472117586372777234572651717751455562172326554363422383341282347764178816533636668785736756141537613551313642318855247871585324774131667618816763373747884435813176651226176461368558118427865263524533812315337881751413388473444464752642775632627764754468711826187238827271328613244371257828225188886461263143426512537125846212667474582762764225344643314532465218427561447725841174122442377414346763816644318827125348134775316588778221512168577178672138336886571258376274142825574684377146312123651338644515758785324187427686858182736253337327826825764383668545725186436835376548122528585128387766216856452116585717353734451216834626152328877427851814358146641662374216181811412553885581321387282617124775732176143367356866655523485864416372673815612414641887316581817335282458188815446436327644334233748852421422622332654177427536571233375473252454525584112455178783126535526733742466547674887777656476844474367172736684671534811254727853455853245715844887185271567134165652166623217364771357321784381553666837125452836523121211535382335827486632581353555346366562484853468143867883315511283748688772178188876772778138118184123186215772731414372272253137231181476155844845371285177351144743777554645786384171575122185235211123154634831118626335111624884184365415788785467211321448787884882532271637365772778521461855322162258182778853711468175767168263485164218765713558136611126114141514634572723164677825126373486247516832763176215813415714148453721271357632153541567117178825163782733356252273235813712461837123763258472385275575723856631437462657282387526231723175447447372126743672538823181867517128414526211244317811265268688587448862278363781256744436185115725472516234561285878888688358417156776285523232486185161854515466155372883823168477572647187215877222472464347343711865642238436227152255355681841133374187116688181876418175138613111526876625522678136581264135315133322173312131118668673173374776274151351561261286232148437723117213287824147767542353383642622437457255631213627548445678741642476818552238416852813461235886144483444237277561721664756846616755156175853316458132277577848571776151656654351738157575365884838322446628214765466835128317668311511878456613236825127158583183628714751477681152661235654151832823384113748555687411863168262861366467458161548871146122817712587332644541652356432734882462232622785225852284836766866164273425581772147263253518383888824823447223377764686846875335733825836644143878158651127617861858247788284558251186185436383875566445132146857137317527246112267868132843588118718251142442364737312285525133818785565611584646476383524726124664832467274517825352573155434812111823337758652874712227332778588341671435182255236415747683547143211724421312832338774241412325383174183733123813872166673772117316673155134824273446624682718685864236718787323337858125862732184124664654276475262774832221871377752873417225713577141758816615456355515177537583886747648116223817235434287613518774327325613881473125412833783742274663743238276277788842236222215563456735621135871475365853763376233523244725363417631215572571384553534115212558871861534782532153815364554416465463122562731582558753218626353551768632562587443437655586287244887456621548381384265372171762851713574284233228332431535672777437743768372364384544377712576481744737633561656717216576712542583675517761536324284757238481318544685442212718738375788344435486756867285335327313453383436632377562486881587185332536571821247615741416222121351472215816822753134241853134856612773178747833743827874856148668524427483355345587485552753738352711611835256726333577364644378155276278482241433787634685173655361857564375437467211375781725848115722825134862452178234223424425563625837382236112635726165566733265355254844245414575858426185172217781874415516152356285465163381648437837485752576852567765162742775644151635488672818476653733127242657387833587757685151144313787154588842387643573175775876265647684655842425764647236475663346723775441672825861758586764155416484835163825422183623488555186342713318381588418771178612862382542748334181887565541217461286217152872156156863224812647434245851715112783271268568621251374776534732671585313231752447462528868323486443871351885148455626311283137443717511581261726144471261261125166736453468227578824631444426621168325633351618366631642674125123151584575523258728553737231443315161277741622314255218888638531243761612443561683363768418363144336463367384351246281242144148163778716542637658175258863446452488377517777343857443446451783833531852748541535346381882672142381886747357362563882857636836626773263858783628827761343583332821786258615867535368318336558756416672552225564767665317834865375854716187242627552777647181328874162431252188524688258838867826833163757834875115621611566135628512774343682317431587322135384724168218548335777514446318735823381766782325513154564755418686185173432521746248262657265735485661628842525836723685277751166234312256178362824878166857655478475662368253124228136473344758386831153678151268247876727358385687663117818686516185663165185521884354722442112427545752137546346747888232812741682744156577313556446126276152781675151425246567878256845527716565741578111327273187453822352665848864562583877347778641873745331886321431434338617642335526226863314337142561416862184333114612118547812635775462537661862318215126427681235677812674442342858532278618738816654587113746838578663334363251583552458433613356284223211583518734676676654185771788277746764647872251522827265342321111456427276112631838645846668448474234622377551341322575251284718887356185521345334572764778236726622327848871271385473527247788561468224878686333842853474364876123611768387137187254212334338886837111841428277663271871118865657135276737723381364362363236787212736528157374317742748162317238122638335731362723886461312282288853583276761128318553683427587283458443627788671343563422341151163613175721357478636674777771553724137366313811771148276562677131118546343234362442851324272155726676171481484637534336652526115444117724453786645765481543828423434375687676322585184625117821861454674257848655265433613282857881138241882667751851321346532877856467533361112717711441788847441784527821622768348358145111544581528811148785421326336516557167738686711646378172474144786361144873331162661578674787843561642648668366413251675161422777518643366318511832581264315181846571764151622414531326647824867323168572524731871172352724211643851565736778875843245436744815886844484862536176182614148488175746785253115664471316717657323767254775645823831122417231633828432478151347641423258143116164674788384385258757778754731134257647563683224781245231278888124847365632513158674354872747448713336568626683366753741684435475488146575854287833214844184688237718137638628217485851858188678235145567548156863424471175651363846258824525818226665371522545515722774733181862315714555376817578454416613658578231272426276885537877324651628342866215883357422376675742763366251867436338271165433874152187773476876378266843543741323121568573267886718214137478266548512458466232861556858417822546216322855374537543318848387423738432233327476382572542267871864863653655588885144867272676648733164441556542126123511375148138116411163787551368328133237717614155768117864656546558542423788361446454726748514225168372327721865366615181651647355751642234331753284764736481382577512732251816323485545242771185856615872872361271731345581218482632286352247263815515255246772143762566652244485555246452615816752117471584114265658182833538325176821546117231463473362575563677831182663245873276124338546521413273355638884713522624565736734243244674363454413542687337621112426454856313451371555148712523422664136527431467478174635883832715777586148142588264517714753881474344547423637352713358334631348731285833866782838732724853173866175245543727167657738724723278584668333222677514154813275263778256285223387728321372655768747633858231536424823156823456436261533155718212563574763277432245268434721632588514187366225136628533515647814555534452641258872715163517484816461513447468157384411666276634442488783248142532843675311664117724664677358528368217417532118482834313715324252277688448328368158588836558841635284618542564575412184421365414124585255823337847124263386516115131646234234588161284433141412822175465455875482227521582642544728853264763828741688438583454532187122467768328346888728231271451853118852578274743322714828135722138571485411754886163232145627576411251757818367662145856487244454576358618615268441636342826362485187558588714424574777166363218765537256714245251318113335655388758234814335527647317248771171162155246345466347638353212228733117528811457748623545736617387217636327461755626637271422152747671168523587146418335146847123556364322648153463152565366248162714783167848845258162385875872122267472345336522138355758324576481347178562271181526758781224424418823776762431567714651332771882843786541681316277313446381485546833347373413787588543748577783552876321527517354268223266656563727158272687281517586474745218152756441311238286613321712828834176337155177663141378125327267362165767443878873676558171563866233476282446132461785611424776411718237142722825614761823887317474854667545437187175244288838334731256621331281615225335285228562686825154234784173613832121846665467631143213512747287818184667874727488718736526486286883867663714654312844253882387147132764122284271364481656873746226181263347765568114676434476657154167873725162648224737832287181214817751454327285647147836686414462346377426216737347131751252317448647285573825656525662344565175826432658852233785327153571647316516733737612676725687142125613868543883723572861588411378518715766725184328225742452576437464641382687687618754118364576324455254178858625312413411737236567774772744666314242542284617832768757643276576816152846114417554246121138646846618484281617163286865844468268531241266317122146584154212778718724537237616417236388618584135616636458878336118418446182465146618341315845553363216513751354574186776167588535713233215786322431678283818567245427445525326436264643642587177521232681872632815471441556164883115262268188858484117231743882282475662547583218526841872377286442867887647628672462231834744274876436387161687412684484437715818358877452427838167263526867265161837461328163631126438636248623675273221784727738272642165634862271467244586368744678542271266342157568888322863326862158263567643256725654547448233117872735366283875226532173186166855715833622816274827725182618181637232583451678261818228188515637527444441525238881812727444127536431875683266165123861724333643476241311626181372565657776122826531342311621447365886661142344864617885534365117286831635735878158515238353433248887157222416427148558255487428178882773881238113638612351663672276452421411426688331423581525343655584244273527241178487226621655812135221472815611616275756583151363575588686863614423885345222225561678325828358481658871583424537556255654648288231727844745885657863224548457841138474867137381154165528432886666625167541366142445814526663448671244618433216148535653131332318184464824385668288455654787124624137235332787476123385644213362645265367526432743162515673111242755853714227387562682868836152884488737745362287834786488212387613476232665842344624453171276556852665418683784863378373466188484622833768727212248674876356285653426681342163846821175711131263514841865148343612418158758775786852615321725745853728412445632376257645724815281248188884463517874657816356443567246236373318287231686383137451765557773778685265335864844375433178724712766154544112215248783256718778823335371761872112156873623587151148577554318225321725143818775486445266317728427216662168846263714131737526228135713166537824214564346265586281747614364256573111132728867674437288335417165133716854857373735542242673555755145342486384664884218343368815178618725154226675283617131871287635317871363887266544813812677551787675768648156776867335511325112745173823435774466881111113311484163152414152165754762543561528675587685261876558513736671712666835463145744266224466645625558227464468814336645143777156323212157482183285856537416868511576672587413632824336174372217826682522338512468858364662487341516625528445283247762214454844662344566411136821487625231222648741816547326817154576165273117852652413744232686252457846356123847255536625885561773367868347342767487665225747585828626312245128725277778854413112643474255453112536164141177154235268355487717826632285864338753345362576357725585674236251243146341288821313828456545362343353157776465582471386641333267111476734537776632431112685618426232821134778248373143878541168772548623261172176472445186164548461347354432348845658355123174672625457852752443877818472486825674885742537767136524232447738874473154864346721448857753233731247211317683472235171826736276311277224154818177375434624112642457345752827736552752281512445687183635726655177254341462515742551581148624878715716813631815736583556485583561721127851147286645812622747285244845316327616432638851712532712263384683461273153615455575426638838184411185411637263437161311263278276386533266154114511541537512231735475411175253511362174415627367885233217483744836242273722245114384614124414514777113842762333457785117127265524181155238432375254631532145563672476866411327731868683583126174338673381432722567546483765261388227253256445583146485643255872764571516326736137777147831527412726774265858523466767637647277166721284788422328172812446252535313133478181128883773587211163561561875784486846372641137285222365158517144315631462264871553458555413377475647674752856178324868226522838453327564635144832435156465564428427763245741811128622838275284246683817557225736755827533253533263251673411673435836486767787765682458366445457127464126555443868715418154288662514673318848813884132136156681756872322776674133213323137464121725816782135437428627176583184675243522684344775454223772772345536784634127216448752118383124637424873355745186868748345656736638734226411518364255258325117447471468215866851863157171557117713551246738275348544158162542178445425685613836757853736141848778182367717187434335377648714488157881666546156458683257117454838425487723127731658162573475477436633421438817844821764773337741512521658557422771557143145825643414436483281147184555758117668828128764644657554625352768286274686668284268632168655447367573627171861476856153688388783556788387484488284566842432422764223143552517576841681714655488727288144811658121655736268425186773656744876458235615132848445783155718884618622758363253267756768316862342871156653844837773266754421522718872257418513442434111158771152626732348351682714715477365437318858778725542673261427822435852526515253716662855863454517788822677783138416358826252678225127742627587527851512834767471858313242817731382322115277126778678611566425442533711828777262681351374125628767725727656178348472278571123616274653187713616242328864846776281634843471641132763756327562772811165313134744831763261627813761776174446427826664187251527782575273387611457785361143684251318884828455258647734718775351357816885517773647237677352757853614161226865318728553178261125846143132734334876513712424586272473456636236384114851118528714848284435214431717884161183563667554663741874141431717873211563885162355422475535322776117222472177771282331751883266874355511665558268158245831216812336574327461453368253443461736641355457282236534225251264324177672833423513835144666783274473852151158328277471716543432875867731536437142581547852215163636261224736317556527818288463485212221514834786217565575232467548461587687736444211455164877643555315241124465455286661727677513212685454756317487752813442887828157388365155864457528828628211173562564246414541367721758365473616531144644785788437473311525856228871424512756381114412264626315813815155882586317627834183484884374556743512383161533618848347644786442717147822662612686337762757463618263562745615845264622583445476154126267634325718271131842255852863358632251387372345146768425567864436327154773166277852768136771834235737222428843615753755211253375458276485871326562754142157153688374631285887545536511724228455143116132331155214835663185516172473753885851266551737183351868724651845421234586238645862634512677662884663187712462147716347512845231254263124267142538353671564254831454753841622564286262387418713527651812643718885328448886844355781552326363832564275161661153313127756151444366444542574356646548832643744246572813731253877333732616842433177277421245284824814262435268543337148261458447515128262785445438243726752473834443358214415847838812657482785818212633233337277278814451518188661848232251645433821363428838513257731843667371373478371371817338113764142538564572421255815347325552832775418756164746437867488625717653784441123217841614123674222684644275756277867685166144533468843826113726371746353557671177842784512581278851552827682456221116237354443838882253537461263861684278583873542627546181266131285561131185341268583818873385311537647616842835481477345362768583163783587446575631434657815855737117463767533685645772673735117778372368188338561247163455553116515738444346863854462663838736586241751352644611246121414884628814186682536186172471586586858826175652564271548484413267538272758174232225371736744232871568614628782674328152442724678645313475352231627534337226555238431664261171123762865474188628252235322126137871764112577248765855186858567836128286314735612854438225678242721438221581266138163655728614555314326143636481417633322883328546644148378127225888882677675211734335863772353523567443777418252375548783638882827728787617523417558218567434332764751571837735352273636541133316378316156541233426386151131121758355132672463764514266875857618332744628825262373616155526186821762248182278416444156325821378156366846155663117173411663666672125765242615673452458523481738836213637555128431346255265245717428458264444453274768486676254685346234368364371637643111485752172364787382436411841717827281165387444864174384855133884421126316251514663111215378547676654475286826351462447875418364648177364553857185236684834437883567884355552221611365428563438446245337851163748443155523553416171314781767748658154326638575353174261827357834715844267185386685777836662252212763878658885564748383138342468325511246785322413333385336238661727717544676873723743845528542331672286661838226582482621245464413333681671362127734183616344754684153786724573165544725516573758221161748766171682773188436318377484135823431461514411414741465274377756188283723341172436231627746212827587741774887717182238674461352767523217263711528318366473575463325312135415457157182311657364383483685383715222677727781686773132417687147666745523468245774786144821385757538657664675233523884443472656276118776342434753742856262437742213781471333468644845622462215876363861611146572572214447534733228473344324163736656257122461488116487738886241522337716821668376876465331124676576453724787472641174224376724163375656713241124278211545876153886553818234842121817832226732732444432154414316183755664427386512525626226316523868213624441787125286565315664626346528633478242661134522784256872618277586222358127171266658147275751678381483185518583857768243788756643452426574513488842456613377628531763587817353726753284487256621754268831456617171481531122351132128172223551167274784453687482518277885342454832127463318247865848347848672734885418748628222366282652688568838271122144825258545377526261263747558651223414357883614421183467831753765623247644874473283546138165428681872743741858767228728383544411217353384388876755313243557515385286226223217551171314631157673763541863374648714742864675244581752828727387737222875154575135777868552357681578477674142612758623366252837645658427787655421448445152812663217746585138666771634831636851241625842244227755577168647118274325526642123554223686222637653144313866644511177356148718364548166323584142758542825556571644326828847118271725876248567517546314268561158236634154861332782577164827883426775347615537323242844116856315888274822445864877652268555846432426518653226312176883825418641572283765756174352647518248761437527561615424728641111181637677235553638837821445453522244122782424346331287743185317133241176387638128148883883431833754558257576186111861236278737224265141566875573345837516486367381555378866572413113854268756382424652254673524785146234175622524858274342681748824636645374236582566111866112811444714118432677585365158451256351312628527553322818274725732434252433852717615866484865215828344443418278856223858412633822722833344238782423415413542531613583883115155216154355525468416453622623277464175262488836776228486628847484768175324877533755481253727223368274473561171365412584566887222711724131735833271118453657336577565648433173366167628582425138555131168864361134785422568673687817814517812115442654517542421372768276776843284238281115254352145134617163458763788581773318128382438332237222267734423611578227351841264555478353661137656577174765743268523245482255122675543621312287121135561755857282626655746863434447652616388775627183637881334774251381676634886712735534254583614318177722822267441558672211267565271123872684417261118378113836244353241121536148128847544416222344565364876686518263674214723613238453757177714386352633781152444141132536376366618843832814214278347217786234711464657444432548444824714183171223347648288341854126584663646634165531226127228332557572556281463526645826385325246512766553288547778336666865471742874318527248824426281876584364463853475816865116483457266311613168417615867465225231847365146423133554152515184616487884485114816353434375554821626125555736234556465861436437251767484676361433166633645484816551411575877571774227482687744561377333436375234645151886677714533435645171554685787853337165537447613327841818185752841647261624552578831131546282375356761847154877532514667877172376654725677175538655272676151387131272321184244728317566773878458436367136552511531156482486882715247842464234357368678525214455668531766251672278746764382716868532665152675884464727246186341318235432218785741872713417643744626856777464124623451782342573624127655588511137874131721678811127774114821581175277336314853634578575647463542156571286478612636275725338573458264788214735687373562154672824512157834116573811364438716655625877341642468366481784441173344518383164362818314381432128421562461474566736364564314472433546354168436275578145263271421444241627268546265145528546585546132883475336151321543483752423285841885128474263227236423352547783542158664787121734545577617447683574112286815657618236616522857262373212858424882775442264855643742267361873367426656744886557742635138226141852534374364621462334813424185182851457855324121221366525175385256282143372341463156727486133547834118114335472355836643142866455736446431864868468784185382533776486641617781486436543138858346846526666143287512832335237222526245512776263521723823233125363557265451736785463435725626321642157664627353516841188561858873685558671176433184788642437383562784633431641158138161314648863748372235388151161646634614662653547651856463235388633718246167838665657364684881728788771186571553628423553547681576325884623377626365671544414237756426888783332867483227355348222863227617636773688612414847466523512472841538564535366636273712662718661634686221444683462442574435888162111472423553858611525137334287367123834376542218367431353478326787171224845765658412287213231428287726162554271686613183413142131573271342726455724683844845125763288773632346825875345316528116172831863686455558271772541246722675667687211662671435548258812268413372788425651383724646617581437335362221675612683233714323162712117228874534381374332724621517617281285217614747777128457217675282266454825361745526253161414131724551858445286658161864125287361673774685814338713811168585127786134261762382372333446865274828633751836633726641551246461733783145735167311175611632464456446726386753681354784557661276726264781546573525164526881167456731876812358577184226773888312641648348162681465587845282637853887527233482418165458637417383652421833241246624255288648465647555625648324155277666231234415231712162111225631263885665613286847145813531264276545768141466251834175847152141754182112148621414878173655755742842647828482238376282526613354447373632676766685112833381535565464446612447227375177217231384847357774588416715324181523322322124883452358146335625463785636514588814716476211642885332464185242118278883314445342532667846157368884453781835435377435321633238125252241238343867711112632154635217422411441384742742672743715183735543346443436577415556846246536647178374633171832144617188448674542476428687746522182561262145181814543522366185855168876651366354728146831345732117853238855687735618153684373441116331385432311832537863816322478778717131251314154417764215411177866638441231343651136554755751643375781721842876581342724851832326816587658716263263144517316188755472846784221416477845332142823231485632228736574135667773642162116341553242761874417255235332148741755661814517648435844246157137674321867438218743117432844317272563366261656617515837828346721177162785522848711363851452244812478635773677625653615751132438366885471757326868831476276385383588244381738582175288417113613668243648387816122281247628658822714764368266537757577818864533421464882574247678114884551664812544111255241115125422466533681452523644368131288611543263218321573424846526236166727612682323446357758161751434662242372211111746377385176771226337335113673767466766131618686136725126485438765557752583262742588112417521515627511731754684744425633184715377715458431451812451674588171375625357767824874181728275258886465652538326372452443137214214516172215784233365478457368448781465655882414447853587381832877585766836277322676883417282356216351153662288364634561471675353687663116726428842814148676373248126176765117663523134583871315863542877585132344313768667755843363422877541464565828583347538465724113736461834273732132875583771347227865634623815728164634527342631487657181386535243362481272225364686515211824445478327813124317476136324326436134523328387628456236558556216878137138658586118423745311187355335735767327174636116534313247441121366114573142327637168178431482228485853724626476383282742757631376737778841285825312152334617635175763754573242368274364745574773155817423316283216344784327756658356154385822812533623641585867451166353425512735256137684356283375512841181241426131516112787175335586383176128787454755834617342561786181768428254641788836632574334148783734656281746431114367682762441674755431264827634227654411541678652311137488368441213523274342874772771631326257144185423724673151247377878362135535264222681663653252848542755367585874743815242533384858131637484652245183324246546138542662572826617876325338143353374141316257735333824554228151447753558273635355554665177561512454471484636863274217724331186218316345466233147238116441425733633354517271281824772235244423686838486274781857816121334643113412317875235286676457187232513741846643855145721535445754615656321182884564646715315552638282534218485722386533668385567254317634334726113625588538252667164514847435686865335357761133711867462262742214634828466476737531336254415285665124662176628177162483784423575757382488137635213358518611635227656766448818426422448326871262833471684372384835731437133128812356335431658628168612512773371222821224788657234282858716135653821183472154744824128885665737731838347248333672183653375538427122115536136185271542441854582318271488113618836857287854874212238264744125865361156843141127241723317675842575272843343852742524512846242458674475665637872288356252463668244347775454712872673485312565256371138241632886754251681523738454567252234174665742471582562124437844136235267728666486344552615588868358863425382617142166334788455377844346743624587311684248642841631265541878888435415528253357132127377146843776487556533567847151554158448684414765578413816677383785631366624166325722112741575555285733461736264446554588223776355845752512337468732272781167764135221872264871851147724787365437156241864427224374632172824167538314116458366462435313182564837827128632335142245475372518167421828558683783177525754161637271233785624618566484668743816621311346777215668477545288476215843167615276451367228437173763824326157366678615286286615148141463748673841577187477254457353466442875835883488317638165666564375173533282347247117671214562688214137456377663268184775242417174156767315743165635114514412216523366153446313563764784334142761657361361862827382672771882267884436451526617287163211861243843172624445173883416784571585558757686231348615612342316456168652432712542472518734134676174816125885156851722712365413117268747487668865626814782348356738324221554541123478758653544787736818834385187886847414435524114782655774458858214152251623728214441885116882528584676717681377777447547314553222356816773571424367688238542761686486772618647744664383247184261778253823554317472762785615778726448787751371735873157487673535365725681685467832215144517737835423653678323725686287225758553762736764616844264554373527541576356144572862358725858772682451773556161754161642313281831272857273556643225281427713516371573812356682818537346686123442416483688455226246647316877823638375625257746431684425761563533237761886636168217256734456366671467456681214272613346787435284811623158768757124358638247624725484756634388686282222635516148284361811138564384565635243526136568268338273622664834528846651364886528417438213613131534385183142711327752767645118142237713127157188572628258751331224884863447714768887513448578212667732162653185854615151665385138522388451751153584686431861241287126563615421666213446548233353121577745376128418744115187178852116751455664614558666245641645553217823276554178642436512533757235626615366344725125472515777362731581774477666847475682841763523532616125557242651281151236245417335115251641813682317476612258653333558528371655546372657474456658121538564388554748815751882534283255768365871165836228765687266457645378737841284422358735313858474677557122217555752444135486842818732541422346822632234434784185675888116781158232142252242512275332213573574566447353474342528648831874718224737653667617825856555511671618152876813378172336188628374452336122763711775528877525144576678156734172725446832343856372656522312478231644134238432231482221812256266811123443185324823212313127432173184137314515184124214426836145811121522873442851162571763234735534675771784146143867654867411561888273257323184141712865726538637253244173442413554452818363383777617225126367574626786423648887468246455752576618885686637386231625136618834654351778253872651638842373765217313442153857684734775573766154784785687151738877356472757138577566243828862558441658782311268636417785382414148772362453545214545382576687212641774686821132583678737516373324813137678483612676531187486427715777556512531714237383132461827485852277132177587486681684673483145868643452817626483158277433447531565516317148475656575175188748565623451734477121447613313856711143175635668241372142148334671775748322548561387168278723281845425127362825815318386875354857468167484342843164864667854351763431378374544742815848745846523836832551521165853537562665434774166383854157353573488366465544157656652654471525725757165621732364838762326134316752635356846738837475376176224868787384145337377135663137645247627547612242861671826228554264116526384218163617788177113285656827314782457335262645426635362533421568615215628454115675872641653711467858276133581634222185767217742317735515524286675584237554415636176316738848526232225677224754223753585476818378211548351483814846882516317713633773375424472535733143361222155113447856184217477652685767168268273867564651285832286778246261777172518562681884173437423788464347268285832132135144876265718211137517216468278484843335573464563114481237223767333253711256272552611481863256648865316128744861137676761155338383574885566151728587762844173173432731143358387346782685683161471258824326755651486555633648446568566668351825622337817877533856771246142738182332688554114188736457122712462582437353661268613124876763126236146863828882561772831324322112376141342711654612512333362568487157183838615176886226223836862377254146117372871358167131627825482862543462235831814627756324864652823828618213154433868511654281178337817887754364557174756345141544381756432438855351316841512563863627357511555747778273811656128881483258862516452166136163431436235446144365562775147654617416128632442445152716312773713344823543474587214154382436426757711734168535123177223436168421867542628348847225143145728331424847211744485816477472624653464767355415555643456285263288585678522722434517821516773117157333744822223571162288767677371171454423312561544423466714338447241678578543266575572267312322646462381244567785414282138338468615832526638424125242124143558588248817662323782813175285227266742348276314348246425812523481264115884374624635276643815242725123673171148288666442738113782481638833784623581881743614683838812562747325341841182863833883851716857386881152151323216413467445712347846642524512833341586187648831634165823844214248264541121164714212461635745236658774575658118286434166317881262216562787667386185217438377811287525684132767246356216185583372243618628565351683163758118834727775724641833517515751727427768356845878148168727463452851647644835538111166658486487274325771271418116173717454151575176355841171657853314745722475874378571548321116383347888637313311358424142728425758315375672822127626127218212353354477115217478841548436124746742285166687185888621624182473157344721558165332213832142375557172531555252485672665875664388614657671366222375443617261661247311668663175224435385128855845463546173477868113548122813266471632321358123623534513364687836166367861547716731871377344247522218612655513385871118813334673463131263781178674472342632765113123788148247672721852784166547556783416372626885657716811535176466663487235582157588376118584831257564883512774333237435475847661186172143327351333773487543168147726137128752585548774528723437878348152736872186672243681111417113824156412322885666645756783363351636264815762447163354581886828862376676858161577518168125416364567215517574518355258737338663688571746254671326518457242775645661311636765854522156846735366533531613446543654766157731137676546564577842217354866726571847368686154844725341713251768731336316577137421522388362355818818348553166765516433428252727618218755257513163472634351187538545232644262577726155147126875511124755872186545746142734278718567833227326632222823662757617352124435734284175734217184434265176476668785768343431335678662336645327754131835877867232765867633751616716866164621441324871411676424685472155226837668224855883335672828782364637482164536132132268357886281353262345368638732624625425714746721122347777637511863272738828282858251647472337882811153612537483315448883783587675751772811618646852526883242125667446283234765261827616882684826751161451717424223653418547646478283838175785866337368284534233143182886246611143866546515187468678535356627637675448616316723651321425284654583636663111643627411458147212621882257235388527158712775613435524616238655676483161225442385514145454131515824828816212841282566612212832531622288868163778685363241411333352271146621117667261282718713237823187458238883471216176866846445724531111161115172746211515346724134744711517172736544584185443546577837675254446786343428533844388683232753353533834332382355445322245437323643545847764158564783124324155386651714687781626713774213515715446237367644673333561687728386511221516477443646863618571175616427545374734188453684328327857216652356636242644624115114451861543468637328553122233783218886846154834655376688728755245634185682671223342177865541134263662812675786127833688711818185463368437876345735264622368378775718728523827417171152278224167345827745234544458222441137111845284878253674788712823625133286715871782731218686557721271115753141686531322386648586365373527788567332453257528445263386525415857657561583824838442342618318752437255261462525236356236163628828432825667711123325138312641332832134387147716744444164718517612571116576456647277545633381731875652111623156862683866862841615877278826283476626861366131712465271738557412234787774156744181365128831677587144472887378357142344247875442215551411885887412636627272423641865172767167717647321635576817811168325223651425323184522818668763664852827868267236548646613258133288376754466246512245766682362672376162115781551364852276423387126728888478481237678417211246145324374337844827482412773816277626245244185557816213482448136515386721826443341566876226781557676334123767788432228417787518374673175138565467686387773534237583861271713351776575851371783223576382842346422648342178128146185622825118422373876272253667464543611371783637125641526888486757184623717771548173745231261523872451447323137815381513376138483348458276271841575616611121521845741435258754878246466568631722865168275237335215553316248727822578364457276476833851544236184828446752571885587572515535814383347681725614233677718438528625125575666233316572157551423151363821443662188736888625433448562764468443258237774626861822465627234735651361125577845833171657432564216833815531831134417468168783814583854167661771771613316876263233584652234828817667654458736156122567772873743576148254137414223335714868848266532453563824482385563168523546351265537728835134582464336376878656725657357857176233333567335857548272677148744233536478277464284768187717458868872536445847364421436877738476374284814418843375488683536162715725823323373517217676116323258617886238233484361718266717128666526215625131457514222788262744583723185585612122211478365226365527823248675575315311847228853424873754482141547147248532226434677634174345115771352275483613642562648174252715542735842313674516662336453511762815388485421831314517258571263334558415626661416757268287311343354812433261771235658568166686883171333516385367543561463733517716818855584278843718722755613581241143617726367545286473641818824677124855388214634167833888857823424766112128478475365232276878376364644543551565788172211864753586631282444162517216836178155172644423355747868671178347321834157216518673448414118148442481886424134188143151257638663573668176158255161442127886764278222121725747322125837777261548151367346577378257651288512336233861362128825531365175115837627865612721472885137646724116665533181748877177347167458766233453752545581814348126858512373337578431688656271768134871778713521154188664441286188254342878231814473155266286755347433622242818316318536242784187832854674445365663625146885464854111274628725178321582276483575156761313274458382142236542716172656746652216213116286442688383364828285162752133418253833738252313218313554467477354354213185326313844251613142834158476482884324524181636137731233741276475564532112674444736826816834248413756563437443733274763232326266213735765626888724357277411784511454142368155683238623254838356167548365767446726457764754455152815713186737576222184146172387555783182442288471346711478315756346513426515258881532348861123756474626844551255364417882114345671723124531222448755352222313542528486826538664326757178876232881838337141824126488267752575644387826732581162417435717162585685484744683358211148271853228475685145215441152722646483464128544728438843625587637146374373843385238721753312642546841168858367752431416617577483176251753478834674472123476823388574528854427575831783111518785653225767378144316473661321711476354747365746273577445543338463618751547783226435346511734437764746761221237777173631778823681742475516371235643113651618878658567134423216761747111261235667574354766786561344752744524176415827185655118214375426867343154346213777344355358587342745221652863226557141345812636811183754147831382786781477541817626688168832867244483247863533481751337331284815325636421373378351184474583651282424733731635237333471786252846155235168742334154462157734535381473186571774876173884737287377412412166721775274471554448775575775688841134543547568621664278367813487566126842315164111277122772228842511364264667777753662748637322448446834867742327344415868767613323565668423522446456141536454373641817726777878384615334761315566624215478844544861214671661884535123267232573148661134267867332583728532451632688312488376275345386226268712132568778474782473617111376336581454348356645541717314342845385141542167687742883321711865212325136218668451325644485582668817416787734646474616245361237224835311174224532118321716836345715386182161524681322461753254731361648443213542368573254571823126171685125846763782114437571558224384552723488765633655561326217344655547786731161335558657847778744465854314311111326288574432823131625113543348462757613125824236885265476476321262138311718887256461675324525318413441281146862315361557821221257168174788575413611666425246828735641788614322277312523784186835268244715216332222371328737482574268541266861152886837867463231646618333171643532232675222445271547541445171344233367478681375141751562261714234231865541348828564631714585174166261682623315232382148517673271783532761257362512376243612638675635527583431547463656184753787152518465677413826273557514883458226121358268267755717668734761778257284172685441682235718873622614423587466877846736323817276316628648472768531824322513327625476122556613636334725666175446882353215776218447571247522126622826844422218658514688116318547441731343253284752272758458124435214217531511143361143858856118226647556314828215826362736544452783617135584125373871763274536425645255765843467335817326448177228432674768165868466264518463875584652235617385717484844567822142513473654251316123574637488684721726177584234845364434268748776868273181413564266318326366755518133442481456438221127455286457122466313814554563345186376887461616884775326664667244568338775812262356457282257152215115681247865762413223447724185215762755658835663852353244244332525661332884557851676151162565436818618718124528544358864271621871842538412858514818585871613766532482342436375642317765713751413353546486772355253838271532578572836262751653237432126738853822111684876642835744543835581873658717852623575658274173632486661311713865223755374458623667114132613165284248464728457375172382538436123136161527223851235351264223471684817526417311173674712723722881857416124551268516646735277873674275576818122842313653732231264687826314272433358584867787722857748261245457641611666554812266817881515117572618375617215172473237257438774122551736616212148138714624313464536528341632713415156227525752822348343863721131245754323757626747632635617611435676165151578254887767338166718174751353111173473838658235774482766557757556862724457377536172234481343715458317443247616865154213887274486386732723283841223543888473427127487368555555367538487385344226532355822247762534161871212681814741118323666788113651742676777238835437481141821883147715551868733465862173644748613281415111158813168864217347228235346544521511424466787323214734137678112237861324864412673732234613674464351148415452621584774315661776217818825261448215278621854882278641538215816423112878661236144817637514285414715563416221821427871647233474854417437725713525471221831345431447346635873341457161231334764524128448847837173886577566624673242755626221624174437755526682175757411727771244357141383138286478388167712586683283238482122321855823363588857277287113774126618367284524511187714375363632117615422543651651212345763813173524133776753878861781444381565526525864355541213743854873618222571143267488411755621724241763577388522451167114372833114277216535454315423883877176147453248513128246754611618273847351654511572183445576543231285527653774582477722361131811138377123467427665213411178766878464346358212544655186764312165523147474352275652237564862167688661268212388852141714882765514547655373113667878631188863434557471817375253116176653348688611247315714828381655131334881436427128585187673428828822217752564466183567133442143112322264876133388325136141242253342237586385382834416711832126857161588275472664125483242424728333178164372557625762142344635325323786225346775452263467416148532527816241727424317315255535245814664377136865172513185657863521886431843317875743152673146488157767567817656716122846321866773328163831753143422625157751115143147141176456618842216577358463737537614816676537418134838773755228158218774213841421414252484123517425188168231872887111721228568871456434117682452867641367385248882514664441346448814846763846546614767872513226224277821225546376351114865254835848782573736425726734821513665266246361348682743283682443618382563268851876651648617718776362538722667435118143111462445163383861217551757432418455286784288173264176768573423325844531521587722871224772728622266686757767325271262541427386523853534177466181116822531161678175135213656335182781654751538513673264431738338367438775435843312634747436436353783631841444445378753313145632677847612623267785342367667212468761547478783348443561134854751343154762447747672628623775251872884841772535151833861748834628864868147866273365232363265243681257128516721114636551434124384115887417286717336643682754283311868626285872462213167344641562654232721164727887852783227374146161337135226173568644736534585318812715336682517578858272647838838275675154275631673617547332832446174275364843672613454356128321887113646181434385337634342834638431452131734858558323326271348258364173236282246735136351475817584568872576452235747141778445782327223861623813147522616217384425833386165125326748565853682618888387155563782546111685834711461316263385372585713832482548375113778675313131616661776636665873222785373485433188746276811484375222625652854331271515385312445157786367554554243383488185338882467662584648143438475384584543376254868334317352856445814328254835822752853377261715365456377367731673877222685663218412111844786562558847226454661322588553582125267263651385461452316232157851576161335432667671467251166838556351874587652228766653755128164458554573115284277543486667632647358426725814472243258735385431236264523114523433458812247771461147218578182842344244468713551635452871848641562855468858322844175374847872635787135581428373787323473271111358258767576124184583881825683617328366775183282257517316463413812837366472717631147834251487487547162476536186267857443283517163866272844351537481785271132844717235475867531445525613713567858467873531381111653288261487858783372512241252373312875134475435451372415287876363262762771173535554461178474172267341287816335557884568214573688581276164366528368735423777654664488656153421344884135473755328634311872781582877357565842271123448433373337576827675348457458418122126328147436311442474711316375274766441754445278184471117715131417258714358744443781817758827166457847168624157413281635217662463263176148141551836857177554352575543327728871633488764526612446182334773346326635312441161824572474458684185624852755753522678724861815322453548621866875153612184752141255511248345534285156245387582576644628643716873585278415234143724355276267863723416444836137165462678466851347258788858522835532616324116617574431122844733386234855433781627622633836361615137581713778741663746115713438148558638526586634115325855768774786656227744227675323578266721781423242585624242671118622883648787617536717228147244665862836772228162612238284577125317267416637241372561471815376514181712533846871716752512218426823613635871248835517635525254526784123372886548216836457674133468542768664388815318815478782716751844771825566263751868854744426561824625378555547644236576625343132468654671734364474242524125824132113532222317656246188256628233818323141332217487256668442124312811221314182836343171131233331122113234548483234482252374563672482461782446656265172226343377436331421254886573777155781775534836135157254772765542277855475477242453775323415651577361568723217321617836246418433366184843361212248637427756661684484757775562453373784565313377674638524666512886265233468654222585224356824764557777182666755825283528876434558134713176352828248567163775282284345511345144668572185368658774818438221482767383512215662616183616335165323652118888562783463731238636857238181885442622837877581531725345315314825777547415864526618818231637728454828735322471847488112744633275537211612535626236147832152165518321157711432122425777188886456454258116756638767355624611832636758725282551434738457585387527813472162223833373888647343785546582717586585823773654254584228777825345164223511473567834115541118648216388221365372271272743443323311638551554682865174734665167184664671412462264733265348715312677213723751876826344437828516672268521883646348638143842588834751768424478188653336581426418751534243677554585428247851387741663174158812321868453127144485452431535473322165826327678787311513366575723676778576122181537648172438576525311767578345217833486631355686827611537238648282247778564144482768777652235125836774632812847224167814724336488244277845735524522472864453118684768563746317766572767771247176254227558781333882765623437325681778584571263263326778788526773552421535552575566322711428716253862635257122375567724436423785288868254533756324653266414754138133827162823625676814622186161131122885676127274571112771584366165735411767656124122818138132738423628313237715727164663555435443375816271631377775728234474688136384823652388764425818116576145474463317536428822277188416172378733634574782752568448876654583543525564841785828833521283623663875547518585783686818634163138434557127544723287748322487617317633242165444358214683548125716546851624368362342322363241721275841623116648734562486621663577662444455625657622861218345283121264376457124584656476361886285873421262633788731564812661381847786573612657331154542617714468855568518742535346782163514526428645583266331554311463321373185851265583783548135743244278547628436156142316866451435528444875775551852172445156786448343631878514655431374855344845475725414132157517632777427573631367878142246574116385683552431133827483567882313682362673422135423862285545742122247863874254363356272736112223483756154538635131654887285424321366878818772145676866653181483226715463321222451144478656655674462517818536768744277223755124431587444116751635621212256755215831335713277318441532356618785485288638653551482225817368238434141524455411527418161714476838184153267625534374242787233583213277455883246531625585374314621847451828881524376813112537811181542511288321425116466231171656371517537236367575273762836568214334183565763627843736671146154156432448135154448787463276548854663817426773234211526882545212347535146725647724873672713121745664378627782361438653583512683336324372632754584438488421685577321314546337544856712444478113532537573372736382873874332787221338284283363862266124124281672424411828813211173655766353331568616667358376175321517744643781422157871577873475286646621166114721375314782131326541223825576135163354643513232886127876242724187421471412435521777645868627726337373484233652431262727488377811417426446762822648787246732578681542852288157327756576861228187118854743755247131755442551135542514578534224827588114836531782817163833154415835542814367344215128362644152315466626254657664373771611775816258772517834417882278726884281413481457221337127312744511521337574626517332111536772732851573147476236656466225753613567233234852534886511337761212428838243544466866334826761871283755646567815652172273838624711673846653553788664788752431561347548272517474147287141358326157478186226861833758263355756558166863584856656882425411883325822518435571322862821457256485847755715361152358111746557864457844182687664585466247561457411812171245173138365657414541857144252733111418313568871412116568581744154652652118114624885343217247228685421537288567156287467858671645857827717352734423356623682623328676527328418741743274541478466844683185615656346334488483836681736136563718233765312816716466518828346526416478678766254866237781621868321867733471782248867747475573515367751165744665238113527155163518372157633785878856378674357317812173716743342844532111482887678573834218211884424524231421257715255343764831162584614756742528712486641613616565636177452621366413246716747412832348682524641857372833314754826617374543564368284156157438487757356711666161185467263575224876723451123481485113785618338426287113272221236787173324346258535342328137251811465616187473136536458368252822125255732371574883538233224823674311553771534521844566545846375412456384154513617634175678364524326153267385523186281738733271373584862386828827243386735151747117552386158827338367647238214172416613115566166114465374312378235555756121436187214388736534446682344645777254864114544286616873226656832416811461734841572871267433783838328353112416522428185815884756775472671811328466166534124258544248327164666678173785864371831124853326481127622167355648448141283534871852384567383447477152272482576548777885685635443855173883757522166835481632265227633682544452368852267831124336266132356482628271157446547677352564761115834728524368671347141266341121321662524136515536117284425586227344416566883152762241681245766357718233778284447368137618352587464357323282416738648218115365118215143832233425355373383481681527688878753211646861851365835674528574466376421663765582155331357816413147446273231686563685631287835815456134447416731188338457817465617311725523815812544446817711162818146268461636777388558111224812565383838817373773618615427577642361564132836811372722431778351574516621578268864122834613647653723551215188642651823471322757136173718365848222273222223188818276266114385363481318281211156675482767884472486234223734518863412374741255185725216556516264472316751575275624844265733518556654418163677721212387766177648372473888356644732521414673243742158347741171521772722355276427623217687416557516485277785214146457883743155575822448885416521233528553735184573486872583751464485347382881437367866275237272621722641746741373245421733551688361535626161615178332362384323851821247724585154674772616118485154175526176252536675443251186653666288883228142768113835814666811338787226731874574564164216757881776354846582855163576853618487233758328648731417352656827763373566267647387388735851353715744267744274111548588275376226717724655644725776445421527211577465487133125668821423271661435262727576488632688317622487431624512326164516462312734863473545612584367637832237421414458771116356444713366471377135477462132764567558873381828728137741854736254115661861668312322155251331825183256314366367185317473273344548835662165453763458214233136277272324571726118112587117121385128851365157438181728636184734313284882513422827611338548127228137587355366134882575545124885715325757344656723842156664734374876268851183661654721154533837135412114113141222364176488453262428381717278286171474784631624455475133541425724733317642318724168273536245437511437363411343448164474615227875625527435568774487486563155448178211154516254588148652656317866757528871266332383867134732625151423467254484684577461541478544583516123462512636443264217753873218512725672524258275663215584471432371718857143137251472632646746662753425236488825131761134328173234166576316885255242222341755137545861581776852276367253244624537725741525272485182517738811334713886655334161548781331287372362237811283586251216846165554656571167146164686417278775347764482215878485431172488344865428838726874728123231175628773322371752446584566451154685371618416188811631274881513162388337737544241363187446586761186678468883314882386141456141715464176862188488377658485268745378486184888784683255284671351888737214568545184121536514631786445856328744413721534381451218713485627668711652774871823134621821558186866511687746844317375444251138623173728663834435253466878652631515887522714246438673847824744714461722863173723457423264344635777751626532561875724612715368423355337676444588741327488822533568167436246214287878775677511754431371555172467255734368726568812536688784111483662165656868758628848785865812768143517765756425471866253523616272538886462711417261783711277815125624331227225513378661347214373744376165476117843865516186521815818316851322623566234443762822488438621718646884374635513782611513161757672472568638256136886824722863332545652382317587276535824171121262614713182451244587256224322138315653722867557827488122421624211453635527334232672651562681622436715856751741164318333283234144324816358343156257751165455568866157471375377883447452684357724538134262456223467873751845734773756273827636844617748744383467623481688257858888761745741277858385134821763667215356432546813538147486274146864458713824622532132542338338133438125877115265345411631253226236147543143336851566211323312825275615826318852675315184824173312743141637384452587114286672612845856621411526673278615843161854226775586547775161637387515367776434881311178356126823441567423156135755831763275533537585186318872254313156371881244673273518464348471683437476267533721767772226722586881614127567725588137225867626463213262137466132185524161747282167485387242422681848355816425632547767348487536322223723132582526888721366278572618842854278487186647771456474312215117175625482155588332848131326524382764113775414144815428517866885247355314442415886145656423112676277717717855555835482633841768176564415812433626325285551334223865366863676144636843554275616563166321687157482772715333781124471778727621138827218388664475484443135554666655235652588684331444453527875316826288428187282716248261134362633328356233643533724742412844117118632425686516884175775176453823486685762233783886475648352344688128563772732626422683677423747441464622582363672841265676167563526647714647825766751137781357576741687757625883535244674426834524353645466155165281637761468472826887114771174581323786743447511185712348857373865342885836786486173364836624627753112315845682855848442164283878856153657774658324234112322576263747778554886527616276315234717788536288357875343866364776837314327534535124318562314653155872174744786165586151856383367453631175551867473655641455473825357133277872476758334445654543247541735438267541578674325361242672365867552822841814185333347172325862384272445413563182186511612288187463524725163448548716846753668166117475168814525465638412434312123457634681143556738345578621887714573843123878527252661638384165233586418763635146323153542125548757284742264374163164138312752314711344432555633181281176838267557657762586256425245713516271843377255311685334817188411728778124515613762472863477185164622311351831824222867223627282532422426176168546344733282666576685736514872716236621685768224783343664253113335114634876588834835382377578523778221627433836186626444268721165677626451428287731262385337814568881613645622514282827512862387884154428657767374143811187886485717316763528114228476475845572757658483324885124622336521277864785715237387715867162724417311481631321741281774381241251151156726527582622461466276212367143335877713832734772161786181455784158438483563122827584354116675242181631554735824541836146612873687757574663335378448123373532417358117264464683314215448458681482188713138485425413543388335844241217511215427657878328748333457134774462118465861862445355387162446453354312565652866262786353464771123521367438686863758245272556347255253813668335317323747661354778165435488338558358538365467415128532767451323827767771874775184816781513381382746321487433532883338388685425611338334767237486421435855516763466385441268868327321876216778785272636444317845647613123367356564714545576346812342241276868232413726862662333256147166461353253442718566765147453328633637154184364717271655587781453686582567582642555532847636368617824761515668525244838668112533484767587265774865166113568533472835445837516653365545818553761651265764274821824267765426754585573655274233885313755386168437146177653773132533517144412151735233658584416636576157488381353733757427455785511316122548674833328736568758478417168834782362351233556548146184762461846744538628864335248827362114265518868531487522143114516317682352828873882544325585645443828125317752137873112231782116885866287861743611517732867137437881511164645865686575332212152411542217368733113431858746147258361181584467648677371334837728426483542855481855673763265624232861785641288744427385678816838283268633628364363218743334126633156586538552588416351654653183364833676212127168661716868777172574513288182858413573841434882226566552467334872316551588186367882347255164153278844584361857626817322577163872843168485247528861568637134138871376283427345848886528438417116135412653243636313122534264172351882133154187484656878883186232387167331645274231577174351638538132832865272661327733227257211621513761155787836468657173761813551814518788547375842316388451313463431465888486147878275231262267417422872537842786325734527431848451528472263117711151228558648575316741654165523577286222683526244437561644785123848622476447628238855128288611662313127752281214668341851587565362673125844135182175671481253451684886581181218474648488171426245225834611632345767626332341122543783333483283541327546747448568745768275164428246866642473118654347255368771482677428334245212512126251114713578187621244432242351763448881858737217337431545477252166155757482822611244365574816274456637574363283827112531637115151721345767154455753683753564775527642285587184346625667821168526877757426733867586763335488851648585314587871411143473622514665274415761337368164312348581553142373466486333736834658677611625714746286726765558182855386157215388127456144686285452656333724341212147727747434165882631612632453234862756268643333165183853217426574625313876366243542714222638174152653647142665676466545477876457383354657782328663484832435732561553625212314877276541481644566322551767158453837653318443481228144732617258243168415321665674557637767288221286134335852526842472857653532341823152657566237845737383626447518572613251741614387174116457315824155377163188587463444288676867472578183388827721764253132428834152857853755286374788267816811865732526888128726785418316853851283855312321212777185126678171761132363285865251628287735418176288472416184275847556326826534713417558354443846788231782425512543367261324628857848624736176317532128251627274167536186452672215324281868647722572851555331547645235728654145361465272421442875587761613726111223437566271377884677424785213824357161758583143526837474655153275558614263547486275683155351535787657271284611878255261783826185762655432763822546158184156756148262412664853674475855462116327882748575642128454656388161767367418167612513225556373785843735246751337487466612186373863826512887627433841261171677642138651545176428718586384333716666613364732573231778524127864312132857412636658384856425777317472677238152624523665316555383241478782313562683661267524154344472852757125342614481248311345748642727685831657184777428558681562723583242777377636274181651723855821885143847317633112777456753351426537472823772183831373158851183422261422381566528554451323288441533365562234776512854156834734767282347567653313565636131424811378474317261416524687461112168284612713576516825474287767662377637518534284486885161756334238852473836422827576684446146558215454454682553362647178758272183318641676732257138513248256364684235813555442852462783418713238658225532745136741688846583516248131344437587842117668837345861738534833388753633561461362754514456521556438483718453248832343755166232532477427834345714148871487277137245174576567158531128265153753553727265538415155166881163118834325118338368565148437211512115134314346241114378218528648848158581672183263387767636361325836553221126381375263643431238622136355156472411187157857661512722227328667865574148445312333261483334287645218661324442345363427616733367484432151212436564463314674862421723635742655467522712376664722564534175351556115286124757818165286511186712223718127553441154373518628351247225283848854626141462343865651177657528464443744741144847264278615467474485638224275348263357328562876425865546633266754278822545633142244757232424218284783516141144765741661462588467523873557628686277125632877782253441413834811388257331228565642665413762368368874617436178624471637875718712351416246521273237367755842572717457748452566586173738438344435837422434652322176368867583612315654886333231888512254874352472643118413672472817124523627752884881811848174874753325276138888385185178654747883374718267736355422638261522412641787364147748172252735784615835514317473853522443576763313416154151817761223856372665856856538545683578551453741113564351821544671837451216482458425842611652788778384422626433474638816577656312241658527261575648388854686487227353812638443827747681165465286183158228753222682431113341866335287278132123278482213416281781118874487651574574381541866625636322731316332648775811864635855287337354647427413153625755441856475777323152867234215341752546852241133345212185462616452573345555358254761865473658352221524176662584562335873715442531372356824743367161325315716631668864553514587315136564212845867524146117437364444217288448543365735236848342483863687383254452644224578114353526583422414828171212628536638552276478435726784462641263585557365183535764423656481574443157782167386864475417753862825381746744578243341558431787886486241821338723257813723883442251772433553125432778731228432246872134156365867653685624326117486515662117565117367515183414753478126834476656451721471682774187761153417731565657453482275354281213228613631353685812785822431227531587731556433584733482215834776583346368617164414344534736262527558755626228631132175534822763275261612832851653738182443586525187667867733755248144858224833113778343723188374255241737387588743446427685538515731521118864415651488835184122655314321366474856656255765373518646744737365431185427182285416147382642438662677821426542753223143723135583427378127647423445716684866233572368766312251284335861426741654552415245827843143548642183668124835518717262563873527624177565157365722638585744285633148865477862553723632723883166147884447845156835368226563778251858461754135635228641484748354128836112112644863816842183188457451731687733335526877183183545352331111578872514757634133883427327387853822837824787252151468886786358621713385761556367174571328551523553883136258453351414413168226433778683174888774832137431828652181536432881575548447358341322272815555415258774334251152648837724348586618657682863575626621112513252788435361157113374816813733245182144332316724143418761154274444557642843321782642675452475521843316567456216366215612528166227455712324185628418545764471758564252143553172587158635748425343724128141318254668618773782135127126636634326671542286476256757236586868381138278865674816548162682374821683217715433483217112776675244814824612844283264662435284477834326783577163151224836553517151483748216871846165558871847644783666684142116728842788584454783766243546447686646486155212672635448618114578812621336856722544178616526632623784834378137772856526267542461328477813766351155614482822755877525472738452164612226818251725264412644356168438621417881662257318431555362772413221111764858776478445648786647858136618112658384318568117478845517275752826423758463374787372833326582654486478326521666415355556313267524822751127774572623237837742664165817875763877756278833524751734124773436382766472445484468527836174124323411745561611224666235713365783713854511577358584223414781146327363724548445112473433773574875713651725621786885345384313616277121217431278878278767888721515127114857635381727762522484251623188482835254243628841656668782761776868472566714488231817754831667432446581871171518686142412265617822242385314161186611421537265556742562267361441167728548136677133785523416557322161132744468863758421427778212375367448543218182811628486364218415825731141656516267274427515445643376152283424242621138545151631668362442783864245725668373825177612732577864855233661365564742668517763535622242515312865848275636271433165856674214167568446671117157442686324445747612526885686268828247441772143861622477546854722483344133786288252165738225264124317677667843835733472151373675272121743547817586485381324688763164725171547853663888587664622885166542365167414351271653125871447218433685436538656383612788844421368588788153875624672731422461553272262764133311747887631443558767651834117335378737617422667325781851456756455415865673851757833625636122724334727185457113515834466265154446788685312162828563125483585111688325843116817832731448485865111633834885582172334364871477147277166426176871161114552318161457852614877535338115422542226832627575673515715712454575456158882655321236724882284252764448147721117782564538758762625131834772573367575645576334182684657712851886652872426141228375712383588345627716157737448174635531875511163524385147583516576738786114287241261742312222876336312623218523347178225417263512733113171842363647568266653623883863271771675158723481165834323526585248324778466776748143442461276311343682215578234835736173682437528454375734423723166661516455267773317757816257254487528851547135153718388172514623242233857356858818715414661112125785281825367265752463486463365825431183626113284487446154486548742751778458475582832617123476357413247154682216311232833876278126112726773661461584354347665645342174768746771588685138513836137346371251548565235614364524137727153248258623885456571622222583118371765444633348584565446583688284272726256547286551764231456175588747163486214535523633347855272236618847335688326671862464152232512463816545176512257412766656827734234444127468582117345627468228232243654558127285121357185677516432653218126516175711676855672822786664573813372557373168213465242827243443441383171477864872515364277527532557542641246314462617186715358275648763884375428585451612237756821714751847141666222342232816284842473444358826614418328466683883632163154153423731457315542736286168875441678133667565735677314666562225852864212625214732238383651747234326446568785238123858834578482471731547223416875841731374781638727443322658836421213882376451888743635587551268858848744445545486431876437225122622353617858154717466126815274845741217653367745252461721387688833651476613245761673652657236726783711267253686461486233122484271131744626573288385627521731844854647766432351351477346371875146426854556788771538158757746156465251226586145264661652213465222687725235546733316848258463184264622345781271211582474132481523875718355148158715611113822861825483185268241287455433324261868515472688628487711313545633435443151836757454344842385435465825872162326763354457554767115573267142263856853485221367275333226831244211713142531367145648667831645253783114834167772113545447418681861877462847673581444185516135238816641581338347388454815227487358528375375368685611287375725311761484187325382722517382844265327864443245461518456755841164553156456742177215711486657651675877223813117575136262437253281457866764242186618823222814884645483875311578245714136386773756364322552566156647221426265456751272134347854685214356834235571268278563135262678771564854463285214632632857276164277278686526787237187288877282676161138747433825622587455872618322485166775737465682487683834432672744283673221448358134137141314158568513424436453336445248848155578481448852284487748331274876142157188854774381762684322776272873753315771878155283322268846142184324563551433622151767653133838337744716821282154236568733722652486563225341223235878833775626766174415816625834283273427578333542653853671771318373335151143367533425341437255184126687618616558452683616228685214434361341156668438765577154634174172272347515555142666247511575874767883751863473356861771535111276876827525531762565213866466452228467331574636554161466622166357782685421454218326431212875216653823565521547461763778546767443642654776536448486462485748243123358646188311341653758133157336653283883533324386643643524447278168357377511615178814235366751654681224842573276177266364641425772563634873266842434232385384558365337723616462311773828517831556181548861227345421377287757711226231786525155554252877424364373566555826228432827723535652151126648811628358411853222347258236587257325822728524582636447141466373672343185153213472183864626415671764643327235463342314666473546584668651271684828725888587727547611366874123563124611356117832368482186267575587624656134777622532517231158314766218817456885157868487484414777217757561858432837566423723761557483821813825185712241587742586315484454354828268181116551726157353618711268676682763435266878615642523318367544782611237573528673815712438851386466556165383352348781148634354866688186375627548187162685237624154838257486216113885755144716878833554483671182446633287675138533788115443158353533523357421472731337842847741288252447765814157782642736321886872223568261372637412655374848647456774751575628565432525121844785471755511243658318262738484764162216464447771321314473323478753164311721288317137232431675361533664316433138412822234868485425773821238183148747121214154462816815887787163653554365646673674362856643221152474511242871848173765515584261378735521665451434377488144562365718451284646458846686317432527717621411734276232511817641771351288218858463686713884435523225834822527425781561536571188821421613734566725748583846126525337455614732411554228424772218742244675767868584823831825746687813141524462832138473242723182853266825333425235231245484611855738227651868253643464873158115354276148615627553818366368376412881381232484331221227542438146885882124231334355133577776357144334413832155456631887363718513634144383515717442431836817735715275375613273187217861658147285423856276412771251544671271761313264883531474461222558254336457362456771724831828745361663465813755511248642411474516343351727783323834787617643761512547535862353356413373724182227332781457354675386621612277866718545451775741448127158866733461132566611882835514418312644652461284455544614854315813234268163772234374725217614862871867565814626152288476224311467551174565617828718747168566571883112235686254232776273736384354364173623844127215884874213517582116135888467255314488768736375253756342847633264311257741165676533723177842334632657282215461284176471872615245171888778423538546845888268451857514282884714664128528582246288631228115455588181627264455745614785482813263142614587133266644774821272588483361488267175425854853871781316341348853436668235372245332852583586247487252741338251343235152816532141752142642526626631885184746521264144217166417247737416547718623137427822268143433243484375814313122871786686111821868414655673184742837217868637632377424573757848782628223676221355286522414854814276657533315846423744672146437813578247138621132315741845387755178581213732734633876161366147325374352532774854242725542225856272626441575776287441512673848464532845111278764678638717763318668554732846413867811747385536161123115266813811656447337571383855263458146113768428822671415787875321782412475337331567214451357741531341585238528563153215231671434144283773442167331342732418511524181177172254647762522733453412472455864145121757725867814322456263755338547634113665253274386121816486456878185853548863168466533768272771476172816468435478782148656842578344114447382715775558435775841531147288575765318762461658821871645431388862158613856887571244328727456428325286258758677313731373235766455142454115174414653471753816352836748251757815341685432737464636861753727315485232665424357486744586744362772111334746848654436445721224363278218354645521721434613625257165656682763481232731281263445228785252317514633416586374325817886268311732251567386632264355121437265755147665515867142246325468852534714571287472856177471824578383663231826652857252881858416313241534336818284515415167865366681311413654668681337512418813232868168445418177878648576533723628676687718724313746412722264512171411381738351244554643751862155783487271263284348473735423387874234857634154475278553612642385765736511163287316323551731556784476714822286536355271234886566171452713688353175314486445211464526657634566745462466282468126534711334686441546381171823882344682724884587528848736425774814173232677636257238762214642612716788853334111538512483724681532221763712273216724853812146211887642821247535764731727882618687267431451863126518557846177124437371173778757415451812628181512818114388834475886887756766586676254648543677847546128756422776212243266242833653152847358113721624131422214545752846438848337468568661487413155258518164184511454172287645842436154151236673485783678143614726288285874522557114462872317681118185284515467867375171362246724474858171233181435133631422218546123822612111728323356118225771442411262337111148175482874468274472217342723524488634823135858167278871737776735685257452654321245611473232811271712527348372452682736155326132118836332365171246121382881683561451184887152776555582471426744576353422224318664888134773536552784236825356388374277663173438584117751382571225643276141472841456783588427235656644348356217241781125856361833286682283514425415166633436131456175814235664271487722262444445721317481157142282874656861811252383747814325532485456123762886282176734832284318443224252351636882254517624725755177254385125412586616275637773186523817161316465636242675531441287248123144451638411378588523317222631115442172637733473341242854883681382161743623131152745816156323848225261143425187872173748247443352567543542652248453316722635526671234258331445146444183825474212232343245856162713872264378668478371654841556484688516812767423421175571212842161827227471288432538754474644742514833336425435285731277258684522811744556711475865654575125566325418532228726114678684815228521157612888747515643628676885757868431335871647312231277566753228268718186237554774762635462671214252167442717375768682335264881466373183374678335855785362632778414471717763665852536761113787614743773366211713533218316355132573721744234214266454142676856174433264587677782243547463264763815382617565112725245573568123311418341264335424687854311762768826811624626264314785286741837525276815377652272262746232284842236736835682871663546356175246425168767314452237488785418621823535173878385215611588616467436445153821811186524363848573185618312358426126447762763687884134152887618371682168312372241651736882658383122235736162745861551248174521823813486758844482246231138256358626555242282242326818621316148661122526435646545215277277457325334555767188444862541135871418818334526486141244318112555313354254212822572385713368282638151246564756574722187825532764346451273528874125281573113857372637415734477771365422482486282451717147575431156665762622486343431215851263365117355534644164813884256773776387774446462764862362444188867563342456183841344246172542247181115841221264865388814235848425572172284826114531231223774625764158338386684224236855733862225321221618478561841333773778512248737818516268254854313576247127811466337641536637127143766235636631453884124376265168343625884257361336737263545613343565754376774513245638651331262535112216874141325588424444361478886676172472271741352463785414453132345241167218744657144554886861661375157878431586466472447212777873178833873588215841785316482248254223211457347512647867223337821882317121725543466224145145587287325734822245488211375855225614144676674885214175721865584724334383636273683757841844268542634151133711236213113167181125277654663624437118825373782881428742374615645526427653813788787372526547728432641212412442331165873617186136261272487332465277763613512722417283382235443536161341357218156775772185311238736432227848842385764131257746738548451855425244786856643127766487343185244757714265816118456782586562283535126141611317828285455622586741423623651352748738442573432223254236158285846821831277122141135545851566161733425211818773773186572335817141158368367315343558867186387168264252754574778722618277714371714378434551145683453367738824611148648715566185342335277776223234768625868567167877486741422442874425622545853747646137648888657286654878264224858458234683668254726374712834426863843328383867421155345247346148884885831225626388881414735235232532774863132767736736878113623862111166467242824514263273241117365372778213385423736124115112548243372217284745785164564643863777272862788343427134557633828364682857734637661441562431483378445311771223176787454684643641342472226248253788344661111162766611733224735775628253733886763411254172425111568244483783176376453466628835553434574821834638145873321311462775844883182225688384225316858217787854224133512281528211563283648234516626866256814582528885758762833514267644842287328365551414687124212135136243145548182748314675283185315688861274154834735318888755473848515324716888378518267241358321336565515362811727442825857555578832583221476155815187381745364854211283786213658338134715317384472486345155427127582168365165218325858254763332281883576183318312763475532725641388347853884581677123562424547574228675862181767236451668171527535561724833178588742577145167837254236625873513584347128336675411581752327377386327188127486516353437336164788227586565361631866375618465451433888545743766861384865712154166156876567824322812484543745742524823666137525716552625855226368431754166734165687535782413716756733718288563218667257168141783463423133586476344765677378138342574747717452156241414318313234447533364625881512653143141131135887325384543311443324387452465851452757213231841763217644551653668541436346181277465311352137484125167468268373785386832231641728426238255141821525227118271852881224218414563225744324733537625743854551626118251552145184536177468735783264285751634881453651554447184111481172612281745177834444711322436181362142222438888833111242841646743847726136625524532223116262822726658362581228573761162488346537254657527638554511577623354816473554865334156116234566567867363287655885482118378416133525441668335581736683587538812351862838438647626173413735423248345485147813442126126311548834734864544812846127628125771631173261321671572273622223767531517732421268326442461588535358416856168285786547442416421145583245752437877337143288832516732245316547485735581825565685877151681111741483853541284734122533562263324454428341166515527366631824845157486182717158527825674345636343757537314268787388434867147443774337664157617286646183514427683775328631267877427137475526853312533163281685136816612264855276115823312866541841577664736125372873214167732423246814356155273472468746525434647415516812581885637378632271325656826624838574724342272816187331537886848867151572688886563186158855528213677333468137671571252214335143311248255157584558374565867168316481312574441785631743838313348845543412825882234877377828811755478631577147267356751327218871488138673557442874266387274678778487864328734583615342751224763617215684543613863267321118275126844213237514767282884654548251525883826366454368437581854436577244435633464757312757828133677262564144171436864116484467485212138514518628165563773385735326226846814542527632128125684286825266863336175827121632287626175383856245541112874544433262575212256772113123861132442468234714136462262441447117352555177438587235448553654162763627283145514184535452486564626878415678836445555267373648611468121584274784151534333687335347341155131526122745367513133236136188313364163756171416416781483262188185488444648355183462422417374374488414764418878826235145538837167127162517565454744344587551357738335183715152215546153527521153686853243725636886563784356428484771111153626313638124548757687265773884226724186515138664541827213557561343328148552285351428735182558541542116157847548271761446517232742153335778384277862616333213186368567146673762637585237255425742687268724181228678258641273436253677628134626671553126242454771747521271557826643142733677235221667473427366646557382665448131684548456254478741546718153526583616248834378861884335331383517748263753357852821341743538486341763745232126867818858823537263725786428587275542217616628533474663312822316861747527376811725282238472323875558427713563245632554588482678814543381346636781635672681854455515584525757214266442572234678715152574755275668411337457785345857276258777311822845376133367528486128683184255445541853385657657436812317333534258742271743225627378566416428714488664347336714633258886588275584352653276466886722767177152582624748754561766545687516868237168421183551313857487315612522487188785217847348757258621547756236723484287177854448416162514336627654148547418453861474234544365737212253851566738563886157441522142854321463626364538831645567672764862814336651178171724362118873378436536388867835814147858524827732281721674536784318752623115757676755438843323728485557535621244521131184183462476833453831655214276853162165213863777762843454447714216313484646814777662864125715826514851835385744326274676333525343447447644328321147573715264358658261644263164765333664786838555468143526483871478713853342867115185347876832648378642565753661738468834237387883756811253276761776466788285174136784728717572538863548267736846576534514158273765271613573744567221347754437675361831888341386267313244275623841811185688634312717773367441742532547276646274164843741584644757578456732126528111884651671253677624164263584482157228777561847426528813832437343161655113267618867535827721525578554262447865763282481278811558465457583181534534461447444558213618237584334673778724337644361617537157171424783342744328325156815671287216376287332758352866334762842453157466218442474377561853227121835678161612821324162764745524217442447125264265643585161387728251464763455848273547125724352374376464376541468474352413548634723536651472425428425653616656638652334167876488341566744268548412314467353882582528818883447154251657171445585726474168471775386133847842267651167261178266353665826661587438143856634512846271472128747641351516265476567785711627518133157778165614427764124286653555727612577745856641123532753225467244152813288568567831763285687112275175485852575364112426656467373581116318136668141873617332736173253571483636641715666515387183377533343522253833481621358625841761115133358512857526622378574657637746247668554313844773716763533124487364236334685138178755675653183526615147114677645377723485482721282755362635256385246146583642756533668818225851434718137163244757732682311486516683316713184271853288178135646125342123377385466373271271425186386487483238435763657743472881321835461751783335412755214813182684817173138132538775352458338514655161448817767725111856755312737842555556818757358411685273436287153565862546378271245434744433838786444268883872565125251383556243444761426621434712336453477183146488582738573854153485783313513822732621668634648175535563488772634462545467547244466531841525655763623236652532865337178642263418677652334446334834488468275524257174223336867131176873717226533841338552324124737276563354667858652373174263642431674178246618544363372717738642726874885266676274227157847412453141286371657446757664124863167178755483265818345777751343511174851466573148842228884584852121222235871845515687274614715167175365433574635364678211586688554777331345625842126684343182617773562316845148727477528727647123171276531644635544885743214626822518333317446157156282328682178216241267577344156445567216312818623416765668162722345755253113172172768835518776877438654852321425312352523416252565546638832533261856215125417655318678537687665761147528768545733486151585363715571443178121283288882651874244783413417161155145112864158433568485732318172585765657231164182841521422326145388462341454423516335867756432661217418221563881328873365118232358661373448617436485627835718682637463414844754188332732377847172738265566612177121181787678587471854221777156534611378757664212813425268542315635361315773261356315773447634867211241425312414641338648173541851142751882282536666336215258252826787784671713241468251472464566842482756716877534526264466483174323264722211851868685688447425554461828288785853777127827761122165736713688854718611263616664456141472726623763718575743161522335134716574727687645881314833232435865228362137783158776246538778836525242322287264748238753731471733357255333728884727713153757832363674377531226684231213187842647113216831642877482268477333213864871343374263572415311213121474477263566174318255386366678487713628146611712476822558884548128187168311151285577413413433445852727627321128636474372335666762121842474182825354753185228815614668563168261463458624835886234586424427312447788332682876368675487446877128565565314418732761461774572842514621257387876231337323441632452834625152441268852351681334576438462844288722464311866168274724736681161527435855857552268527517336411163825116662284317838786588881113864262817724222125181628325826313781871438546728875126518216434424177181622481875476714635138566572256227227223457747377752375143757546425717141732355182888411752313525255836621712127217725581787145332585253884185574435582666148662577111181466632735184726532264133713521536786841448537352435537475736548325878681353274177516155214857447645365317222621242713133478883654177378111341121762161478177121425343721541243381214328726625334828816822142172657148836355885154551323477472254858522844214661232263222821732384225117524652465652178347131326647825344718623785554255857141471268713751723767434455841421257343288265254512841355856518371265484262683714514611856673522617224637566844361647448164133754342375138474422553883568148121455371863412851672647885568467573717761712664417568427645248116847781572444775317251671815713517157115846482888712548341837247123431582832782648753777446267138138787187864637571555111386155168615524116446855127684623885563241652757262857136415534531257142123355772644547854224374361271882374553626747334723257684363457255617647337257381275841146871765113574323285875614265341114157358326627134388756844144215371213114462845461423217273383872568878186286443542838456683642717653362551382345415442766137374721644588687428636331117427215656431476426854584227335764255681148754585757816335737362474823533318627311681481874476225564887385256654731538636632458623273522114741873846866348442871388356166521528518866286787185285627322678717367231541236815274325254823854686278331821576285336418811866813621324125173758143451351124414663464562745187613815817628228253416454688815745643313141623618646367787385431811886267338361832567117513245713412277677624367281582847338561727613271117545824171742374387171441627735346738814848176163871581653212736476166521485618856613647625865273786418227474446774114576131547834344233677273756327662145111568114287452241123624552636714562437527321234214445566438271343183844445426816322478228714437443614244756457758613275733373127184565122727283738254416632111425833444676163145857414747844843535548874281215467264327718263583744413713828152735366744332642633261422413124367882333665886756248871187186583148262448715282775661575355812316723147578284832116631335536623312665231618213461641743415644171317586554272188251214255628783421238572181815787777383432177828118667844532277825422532738282263736587641435284445388538457345524234865624734347874483348768386467564685255576135175465858557365127174661827587712848512563881552866413482852687588548655152664462277234888238587448462646761225184514118883522852415565823615214363361335246313211763134314732124827846261867858533845146286187551341164726272142335816635832756547351683422382532283422122366872714843841671838214456434556325283646587465155575187381753554678124444246443816263612384611145123256231872738525476522178654865256567332515454662331585232235756271813253365732532656761681242558521733248428672714282867143215256747232773626567184781682572154445267113835683157447263337214555147547512141143553871368788741325265136216862227212718674368461584886274831727238426852475183122516882884866481487783182582761682377147511856865741256166851828724637157748415686462748132231172412823664375821654518222432538446235262618361433763472584714428748435583228133875124244682143686538655174877742443564834114463776452651225818724767331617121458112835556614675763555332183848715688344872351814738158238283268645346435531637671342262751165616211844416246821515438624477825336372332643111222462811454825545244377257565546481687611712454147546868775816656485325312214528133426365553287716135355546885584813231643138588887471644114551121441172145584251158138536652451161747818265541246226641365227382362733745361181463147642263687582671525228734862833386584451211175147336778342435432271533624478151488776611521754838683131445112657535863171756321386386181312463383485764556758844343513638473763623268321815456781747171675162384221722813227514675458287681881378151227281156173285214871166764766558167133442361747845827684146783386258281183677468661486561828854541266735211626288738456455141485278468641678487177134348544651747384355834744552422726467711474328325815481742651518243573527645656247456287161121684822744515767563174384716775842383277318883615513113188774467267573423867818266537444282515432786287252823538371784322262664821211123374347343832421543416865885564762283686885717428466221665832465262437776433862727286264733666283113756268553712321614674852646614881676318375477118274545368136286325646562266646362685322885621123373586371815347473165762111262185145641742845758726118316383283784137118268324385516283733222187261167585586573244534823282861776551418835383414737775782157686142258742351687731288474576422736842823254871734548276342843125428377663767721862756571362644783421344381162735111638462683742171722741724616767547154881364241872253815445283654461665658778777681857517127153415167614653646163768281188764774387737353283886844854831423851858742234223273863165128166453125155878361677542547151536338246623367714538158311272845365756537522363333838765744637832416666525412644634371732312685886568887438661741365127845221371134583143878551554235636748876646663176862684651133355146615836314672174244675455682853633736154532338721288431168235257447721263183675661311373815222633464557457422585573371576715664882146757388245663882526816471848618184773784151126348546251811772446835874476584275735422272256412162366612137255785314222444652567482132315136263414526727753626252332253325642168427656543771283326548442613528527884648583673124435375126475187786227674143851181375886615264858332168343545541575265882118261181367283213664387865131332745851147524445767767662264164257428471343376821717271364462753382321841348637765288384731613631732822826476834458155417565545288377248554714245751381224434153557347884174565627743532665147488334281215637811342364537643182182212338457324158283616241456365555474887488781416646352166611335431888434373431165567672127717132686331668168275418764145583385134757834532126336311672831356768325214534336165656331574516781732848462712265412641788811586278441144381267617573337228848254184767257861712326248132175611176453845442588621143815724342148452423864723652455626385488351283115412878222454636133542266854254711555376473523223443231833155485522145451613582516885688851418622433165683128778168635521637318418475852824717615375414247164175823174366316274473831444721328467475878571855368258861342148186482685528265462454346372283257487636874872227128244847754138775528814167758527243684565878557776334437223742662682148616228116381641452743525775858776418865615378425266238614355843253151377825527121433161153526848824143711853331471447154325115867878728872825158214561817265453221288686888152167235285162524712572237523238386225312818726877283425264576273485135772664257567876263587716252632771153135888443158177855277116254765748814847721737374588886573635326716367721883681716686452334532228816787473628418275471511668851847276632663524282635454536172763552322275416825685831341157842367261375735277323863114176866164571277667852681677844158613478747825488785624658224628586732425764474138517564585827446786835218626628645563578147572831531652671858523246285768524727536518476443482472217374336765388156861324221458345168563826245627364115534336751334382341832383181516738758545378664515368484754474227713763186634752177833366424816357341616448522671268563222573877328476186644723538253562615653184638387668227432143457384731848468865437448288111426243585275773678888644633381312126836554738767654688637154274153655867157131563182564141528121355543325785747225172572211113214455457637288611274333341321287644348618428185213613537535355225241272731645826374314666313582713781671622214517838883681511772166785856144414854851338451137712571163377675742744833538248128776641844478834728217252176145518364135444436578155867243514664666766371621147551256142153435582237465484568834846321222164571784326556174673747466187382455415433288586532715313867417243741183323838387447665133778363244214513516432345728472366353374715863833243336528437332866265623726115838233872581124271513634175643245134188857826335443622226472763875452444835365571423681816273157363563833456124623673758165461263221223535213465611545557182768152168123313546216732186852238644827878718264752214418685868841117756344327368188581265763324324766211588435412121744421323742788425264274484565341677478451611252645251558876311845684346366188761455427175463264483734137436421126334118656533178122131871377171311677358873776678588587572476225753575573451286225272518414285361628743785515236422277288327821651644823571751212336226644415262382684627664782681363634641367217334383138275841146877152186763285532515283374455723527434661188328545754751285747118618173178622362814371116541121672571855736558416815812566678344263834467738466236627835381732225127564144587371158713118778512173741842867385467857235164122738264735822652868661251736288877885178541423371743564527886781651855778577515356618737527864118182348867335431187762583371686366557545174536313276336332186733288821277587137312614144241581815416225645444745175276267326377884526776887178246732255874677167585231538883727267173567515417756131188178432857625678285616252762577546286348621855865485717155828664873577446542285314575452841577873346751272386787853215165124522422156765662422724211317876334543655113368467356646766262485826752357584212634367142427664723417244168251821456726158536618855476453464253715256823542228672871632547634111233824738726645841664737361768472738283764548688636126543375381174663646661236218576217243733841173847514334822571212172365626424427245368462676313272327641357486372868422341877385484855551486284877585721428315525127564371858854413155114685327425848346183165413717174451643452656556356263473621227338181115261426222415758782774363873874566618887237471355513541884283228876565155563518726166736225244612365537684112673486231822242523325538117277356563883845221147378783411777614132136137521374127664512588121581364664433551538155523647646766513845185317131136584557483161326372887484217867516558458762461285172482827313233484181634771551234164722358532546853126261236825483762113866626173352668658157686544312655833612686731486367784527655722371657426766813348285547161228426257881373844274784424722721652466333857823311486787877268231144336688587588644824723315775841371621245185528127566766342835531582385882444853666443646716136253472642843844772222486744256832346426362232671787114387761461354613486525474421381635213728812373388851515524623385863351852256175147754125447773441376447538337417344643357643147673133755746283127288575155431788187143676116374714368465164154531442371676175526528166261676611411548574378887211226541627855885646614687654445257573511115564245462842473886428867735513651741384558484753462454814554731414214666316677685747317652714722813165613146726417717648728867667572758153714241837452411156731357531443383474563825725732271325738431666624732238712455368361541554381868353243224135223258171135435227728743132134623617313375585777268241543423882223651887327752277713834865232323655324243588776333526528783531556287368584432751273441131181253432365734247131218223283817671134821583624123144153443611268372663673742221531633646666781627452431462551313343576851646768374234241163184135483788528263752372355133443413527884513238522628525138138831283157228418451682344553122125735611228768674713634676658861421842631513471832852436763655453537482153317466223363648871526878475382238135627651181677716252761485324227458732517365753565652461582171486245816743838843475537357553568874445725274678624244168581557513827286462848517887452312433874243562218461821476272113322611685147837742813647335443432682337733323766836856648251213438333163112377577863537324341281723181881187843748718582673418482366366875446772467486322353258882625478634412225654143267284781857266188446427871855363757736788613123633374738884127864757244665177847242325374473848425885363546831725854252356651368435863823523664866342464731434466868852871253346631747822564166634685474265216761724673446444263313751836554237276344687312338658811681443532321855321211848512212377178332434525627384188148356151825745657766314744353224726522373724186863214674118187468188726767267832852886484363716775634116831384145344671176454717471482242341452845128276581661428534425646457523621618458186234756868241742553835663675574714341647357847162424687855474761355836452753335467534485184176273443147821853416356365865141624664848412584441633331533637386763333273188138218513255584831516515583563462158118372411863821347766721237143841545785772761862757248723374277243772165258826157847536454773363512415686688865458267824167314335443618444342486174832838638758863244775266322678778862515277172465548663465534517412362486365467523385582755866674577436228356278115362256711278246855367261788466564685136722333687332117154511324353533814244114713611476843535857321517572188148416421212264461257275144841522557761857175528232628384444416328116767336854464643342373734223613875778235577118343262522584764767126131254732626141857177132477886361156438612172664533443252741444541751486215337487483627788541555516346864266113712771526271213434255557864632823786828213283235322766558683751717458466756776414552714678635725532237871258586812278236286337787612268342716417373285811544181527681325465725544763121741821677447441844226777731787843145663513826677281564353818784154371217518864783416838888877351445555122818454415155152818441485112218376372428634736137548684755573226814723675735235851776862186327615256232474583287746438347146516183412528678885445757458368871386234455124671711476873426465251771886585531211325114152655862826112432141167768171552334872678156266862145782716422251618474445262565368725785483328485841155542487131622257316635532212316431571378441333263533253873161721847573587381613626513887812658613466773272848362837887675742472735461787577475264163517178836766874828474282425583743327316641347431875465316825216118435261214614718845442234442223663358366417557448683576587715643167162328144588528563733271754622285823737253114532862358141463372741234151327456351445348154488273366637331765116147648445752675113345148773183713377228451637285235741378677535853472876156845157647746365637331534633117657364744377125387627737267147813411752276154378726281874777547575551448124447471215711278688253675771372483311872337353772484662318344271277245167881247177152852756862748564671536311275681772136381565478553226824582156715664383156564471718151476358118562512813236674722324162667565283358227231714846675148825443122353334657785371525238137637541632635211676372334553232585418473653234712545448752164338861525546856327237762443221651316135278543261644187888321383374656342815788821838388221826352383687774131877842461188181476523842436731578333576276752816224578722462225158864653845785424833811724535216211636687276485857725867832557848168418223433635474131733674535142848527862731147452514448853533487858613884865417667728672685814486166133188631464842415665232642345655154186734727655288413636537288652632114452824513141473732322344527634648517127138777232158274313163527267541121817627523417548823734522173774875423262277148886271212126365421567855661264131717434685188242284758386121428161521158355278865442442743752767426422143632337868714577731616225764546868112557235581141172488142285758626872453627428473333283418684666822737255686212544521762416831232421783438651861123166826616636535322524555343425483174411771481827141265656618717122233817826515478453637455845324586583344612341845715622812444863238533611881845283434225461726215168135682743362665274331318678843553222866261436625157655388384246525722448558826582164583587528262411622246136672548685821443465313135258527253426174252365378516771112664456765231252457655564252253125132677282874126872287521413312815748635423532388118537667664732826848457721846456171443316451658343855686576288566227218851126816782442655432177668486173151612157352433646742675324188111141753548458731124858471556433284375341275727786382216828237547845465274663343547324176511432235342851484375245677243514216435866252862851471757533871111341813525478365881865788754454255823242488473567262721355317483672815124823876713845637367776745843241313216857257427222661144215225246564358644253135882863183512186441743777383653853118114421588741785168568482776666264665485466225388256286842514837455681217526746762447742563162517666754575251733545488243228366738212538122762726335225537131711477547228152242464852362174732561481362877282345312248416756613357445333711114312423353618371372736356444414534443638816582588662114715243353586751456266435162847428518815754546388876375472676274142687274387174572375724757175246823746236612666454146472285461763113726154236563874273167672767644176443432285573587412861116477855351314423146186844716817333224658441788763478741831582121838465416156884317288272811778878886183785284285162856654412481145655644221338783688332642577543278348731851521846538413657573461312851653761735588435462386231836133284442535641651214183323374646153467386462583373758777285551833846365187744243237213882224276262765134875118378666136744368853738343482887573558222515688554744447447516862774766584754468551161715325578757315864145483145122282321877834354826827537838411276125171834866425727546186637433131447537581313772243542372624837168573843138167857228147378762245258251138136783672683421187878481116275275535514633144141544154262448137671837367262343864448453564276124714282825711714217751277516764314734682268351347734847758142233573643466457283875846772353566831354211826683177543831736183353444762553832386722711883258284187572616616513384162221213183113526757137784178283474262531447466142555881468475684766671481237417651321166162316651838878168421353472457752648174264768645383837333448831765644761344267316316188114814647373358151537457784464165533617515717423463368654252255715672283778331344562213678414543126346271261811336244512122276275425714727567511885313224417626865525664422848815236125225184757818536644538588118371783158581187622855428165533262826833758558337433644347812384276871825767712211544175743672161457548683533351425574245461376383643373346648771315478186121721651758688458387114613372584632366142571533528888126325561581737248887126135682584832558578652232638211874248168162323241673585765745413724721386238441577446631375422764813843652363382746521344486643634675652847346437748868175625654283655521814427283656352528184273525634634735555582286148824143154687166251773437227828422823735855338154732232154443454643583285327231628583484415651772742151253173724631166527184742826188222181362444517326782265167446827236231871182834373486161714565174467135244314432467144132258724836648253358488513117276313842834588575561226137445723521474664131188213834344145536578336751864141552724355636258524254881186252224183187632326775316363337624545512727371468724845347677518863221162786513545146246614462338317414554311335416771442555754685286527618488148624438382776325531753683633314833476122266767127211135165185485731132324581468845658225435672221381172547252255376368522675717884113824441522151747688564222672182843374136217873628343465534688581787887578174125111153513542287744641167873374552356274417373767382814762116233325643184588445364132417675187388851838845788123585643261676515267252725182811828553471527266458262323528726778432778582174621344445464116652514678335143272862376521831386426552142222546333522734783688886327523442655354513456413763332161582533655251376623863326356224274434456872518338535567888617733232247585643375288423317748627817287847178326513252478333715383172566372373514535764664644831217165481585725848523548821414535137564333772135873817511212331431357656612714163361271817146786823357627865163816885672456832578525454822227528225374581278117166223664785314835431878564575443231264211532821464138186341555745552143186874687112876267334767433647624368737315181724516184517547815318243668875624174454512353753141664617615234548145212144385461434465332554175151271152581183733371773534118564558654723583563516542412572515161886147453311356672788154774347414117521822544328287661144577885315737778643672557134635251658246428263237212837331461855127112352247322138882334337133612463314487321271145267367272527755652211688674477865468377218842223384131664118815242246554257846333315862447318521714236548143746664362223154513253646467478423781374216567575817268575873822781586813338677877762675873832177737485687356651516345831871787677124553185467475728178147623272658175175327136328834487838354125184652771664386845885688331438117461628352757143613777671421382735857588444245215181834163772852523868813184225722521174353257461733382682723362178277671612228253288328487381218184533581412386316315715324332842352371327556854241782323426226423541342263565676765854355673372313837724731385862264568237233423323154547244742654177667286488436683723646687833117574381118548378266531866658638473868868581487114634422773343351354222767476354386445578521816547158716552847376626245713854375277168474674212471252333685823437321758783311255331541476568868666441438436558173786841666262717548558282816824782252378663758374715632883541631725651687863867147326213437517358532561454326172521337231157478118355367485214862152445246552562484581131517112873127318165233438567667437388183415336281723633575423255652351616886326355334558882274348442218514336538658274161878371834222668282522186165278274762462843771686515721227383226584746612148125476825834454675413553338434185211882154481835246482722434781121265377434277717417386581576587365511311637218826425242788425322567568518126578337412587518132354761787686455144485642463133837311278828631735341525637842832632716415337177213234416267151284432762462361157176227521323122235313546333128424233584384685824245155688661613783128547677768251656382167215172453824642236752784181386714428325274557432123852867166456415483812363723584876741556853618817288182331686752216237723151641536142875612357564276635612676488664567735132547863686364282712475712372781845448777175584432378725544684485116841727864174212744315744781467152784657665252833164514681316268348472247338282585513162167775421857148477487326764162847433865667138173538352687162726356658883386264524515442217456652334374571866184422652743348825745848314812361722544737722463655748746213131762133173864762234314355875854132882215457535428741875231335714584414825778437873866256276436755883355513555848313527313825582286473514835136153415383684822686482752712324628136333582658527767618851682121624846263417136721372336413225843147762673276864162813318582686181534712781483551751646616442651474851241255517348824644877158217281374115233127125478547154132457455463672184455818854468533665472684863167512672647672614577276353328333741867247676747862776168411848321177417365626223367662617463111165526121383811816444522428326183642123148815666461537431438717768547817418142488228668372323786451227138541741453325824146883637356728378424435334826127326551152634367316311813361663482224225455477877615316383465411323612816453221652377574421837151132273835726872676185547311223272811863455711867647817338846335433528561612615241531461861684716255767838118571543346843167427731476266767783426717187114523183181476161511748288815613751768135234841652443352813248412275284477763518458672843754464378757316751121625381441483738864721326582561317536362471751423782483242165665538833641783434778535718623241468353336363525653323753732225763767787235453127826212582673866813452262413672244735771827872578424311547422643185531383277815724352165524484664286336322127361456554773227645662164382463361413737763281825258355485618846654886474488487624646355723777141511225254761342613884546884415255844438513516443443884563564258441753411332565578865377615782633477684726541214667315743473326662136278841621287884277583725252825541214263342147552177436512711865845158373156878773576247177171345747663177436161485126475858171234866342775178727485741836882822178773852136628434167767537386512441712572844763841736246176333547275113387341635377682468768223517127427853185581151263251738781518416368277783488573717542426173134432345282442151416857711127477826752347558364165432268271638487764164588432785138853767511226814116435465624337728766524335136134776173552144582577846341843513577356317473583451311844685645161415183841251183773846126577754782462452447213482746215451335472587331574862321262572134134263488232246343245867126326488823857747138634644731613812641318312753525155428818638538761582477363572287318866741414171186815632681775326314547654657737127657477132651456722247628253861435241653585537278163512227414424635651626861654537547456264315445112743445127241162517234532775374425468847767535486866438323527858113666418833568766466184145717717642182675112585312567177255113546442511777643233856625547225148678841675445765761512633514117872872621865427864622784124225571735167151312168236373684773146721426283238216625454481747752414243428747337681316443486868178281143174827774574227157722438115121475843378636127521363562262671485845874717425877171137242171726162655146477173451231622828662368112615331785742534515684337452132718312147632442582737862674544634332243862775145825463217658182232812215173656845578518835712681482672256232775111832525763832177722587216455533625467654824178561686425721144372836387478854511375186545341367256786332287345378545381584232624383634823344447483183118237488785755226217358215475453375771638323714375121687343477775861113134372318487256157363722114214474663714458245547344685416724838186363375358421222372582843485882534522157656747143212313312412532184885462253627647435636844816175442688462738261611373543144317523777435275282763867728283281152836476865482574531328335254838288844382716532185786776368362377837367418733138217846344271175465367275757737657428744228826168312188332115872483167158117322823127122382576685153464165684755764546346282866442358735182547221344175314287787138672887752233364432832146726386225422783526511151213117756273815213352328671772413424286575462648845776445583431672767473688454427563367586535511486812232274285758176435178325452657842628148374358587764315817678543615676221326263648146244828863842261452571866237633153224117467385337256244536466342651752565181384266882811627147373355173258385312117788831332228421188124818241456733736435554566562243214225721511771234488815268453468542234271338318425316481815847713676162261762311582236787477365533881173728626775585375671574114183667156627385752456622748248525582154323248484316875228611633272254576757717837273664645667583414732474322171588732316433388286578434825174241774621864358868536276347853836175444446537185645438663235525283434444754663834147122134543132171485576824317627271388444627423538677445546814783432443574133176821432875273653613516735814318581334283726278228466726816416333163283441625636243582253861254267473374425175616636848715521534342375687883533215566416555375616515745532855743155466228426184712185225467528535142351262637165374565768531573657478213165743346361547467473457866574777433324656612414251262857216654454485426184844435442514132786817347486215556888511432742522362253512237474141161771654725128784255134573674352145162451628518181361637654285816423368182858538355384851338431247442141816735451581172765427138843123211563268337812277626235731617128242558142748626458147387857736451666576432388612283122527312623671115725522472311578632538381655432511152366283321881113642364566636717585222513387365238433471751581157248185832727447152866853618764288785484246647543411665132575615272771311575115416273346214762358147737752163561278271711844131641421765162138124538378344444227726814471458321441478128224512481777235761768874633231258268477156775468242211343563575483181816275437318276322637185214414565853283181628326571355462671143318335282251683117113356574285576468584771425626486427645252415623343721737481618127477151867531751748422337885586442824861774441524433655252727428361764823466484546768372258877775552854356586156483438252215883457351645185666413426337145515811742773173255853785585816256657488346544866223418637277714246683526372434643154533447388423677841635445521773845378168676545416161371732426671365878413167368843572352268847834287685162515258576428246287551166545123778365321138623333785563273772758755884154885835862537442481663548744826176376744856417657324345786857666851611616116747541761311113535732852628336576442124725822875564621578572746551637721168366421658614633513267817478486373682456334753671864424358285883838165385447613768777313288455427425122355183445834652647651282141212384514418167114375146226886117217334762445346341522334883681276828163814535868171218218247763531217287527172888161657563826265145762624283387362136541512235731166215325322114823667437627766564852573614575874317647278163488574617665284482478254652555454412448313882182746738284125562568413311651866641388318666388246184284331824255854872424723737414883125774268451558366755237576145843237324851172518344756372875251448262334332578474426225371582215288432452676371633842148288318588282144272516648518613628526246756667255813666236267247265481232418771441764287574115472136711127515551687274532743382261842514464885522148463614511326477348475534786866811842353362678413456566144341137737634831684345356114474717777256126178725341772243276657212634183712388874632843831666183332712748877532884758112768144343574364328662732314274157533656675622244177351287375747561543861448361347143238866212148688176782625656461444447758833487163642511646358214324186551868476651867648345853174251823811527278856427332587753867561756727316358867781625482447315887645565857724551332747873773178758373567121243846221675834818474472315274818313573357727817722356274462828428464416257845686888214621861772435872354157677347365633571265378543468771326721513643612425124834862846664356466718168876575547132886661712418755638226572182512462784865265641873882321186323458348732328451547513735414235242263655544488411762222432415821784168323638331424215347587755485862781738763464785126443374534122862522564712886515848734387665558322467828625432876566682437171528754225783386554761246178847616648661345542866441234738781356887755545766633464257331871822371233354817572574118731828576712575521662438354464444116861317566187655565282545641256413514457726683828285326877518321361473255882773488682448766787482238542111385382866172658835674513427337134631426282427827252228532362764843872361218562376265127824162222466313178133737554735583688462587825733486776218573242467115264133372682146456325315222828113175111248114646377527636578551864235258751724528167516265177762284461122114233831672484663426513641758631728112265875148451171353184867548251334882286788867673543115458172161231326613551337358568772775653763464112437236553485463222776731664244154766538547152461328618375767263626876831412628742467313588173315668363123345735148541765461366834731738654843524437224736763223516348222313324367186135473481751155173774266381666471684544626433887343468188266761411861133463437333266145127312123118277232165864876582763551762178667451654721278514477644471254127763585174767337765216514626788572517176158847682327678717547413354237433437867165833521365263115577337331734281681642745852268674276866655165712876256322545178514712263741137335512341255363371631554818523345813686613846861814636724745266424653183177642418572354617872684636146445775535581685733382251383184684873113653787146345567316266513152168444321185421143763556827384261122244328462543735852321145123284315484147252412686887888217576174384787574785562251626333187455752336755881157848627412476228464314148288312185667467376684212637638648248315878386724241661514473315228721464113452466514324357658247688413514545683428442563118878437168321432111118128766244643642558176131237838881575358331382416112774464363728573768462116326825753361364355271454182267788552634131127413736443548425212833183165274185835675616548765855832347532131321755125671323878177228862744863648246775714252661272245338475426846625766243478414375774438532225885267781617325354883882855177343551136163515241386386473656451465475673188328318634358324836664272425485334335785386275274842836177624826355482627316432873765441873365666713165762275378556261327212477638133375514632674866157558384236646634275324271563248154681128654423512148257762285267347815872881341214136574681864614255721528314372562228347345773287746567585581716535421851584571132687244363444264325127644283355124815843384361413171442761263375732426325628756724568623485631773172628841736268522151181551517516644348488615634488217238371647473526422388522567557871566316125363625814766631546111764485266313331772865517328838165122588285225853246367288688655834288675866463744472861546418663672626213511482811186112748775141768555816545633737118888437612385311781522755615513417112778617235282814181231487684515383324644258451426148677524865261453533518521353864748351723831145854325847668633123857181481184651788344717471678644524223238352132835173472556471433522514246446511714753864563323344485626357667625781754262213414524743474348676336122445556553124218123544478263472325846281262642243214317275233332575812834257148168156545235264383574373458821833518253476651155123127428112184121836842377353852868372342457551621125258554616451477523434376828827218134282716845456666284543442827882327287858485822546657818182542743268651668752662447284261835166883567215787655855445537282667134377767353735387538152866714516642428724217316156832788431857532661552138555367637814557214836781725685242745317154561886378635617833554485882457815562816778425818332477846142531756844587431182674728213776146727278537442151384346853242523761377242156767456851546537646684732652726151812386127431312661121872731216216413721264861234826861754864552857248833338448886254348383758542422125427852717584628345681322431647848632578347768418137738543573466431378278866474473325871817241753557466161727733254728418731876832745257235677184273184873866361114328118676573616866134836621681728381858324541317821811647674456455447176432533821127653581832374428883543756654423387517267185514213267213745376613234521336747834321647622226546856827146487287671454785614337621373784231128447451748166518367476422442418454866856564224727362161814152163258725567888132564442438515662657648753627382217342582427672726257744173772583434348251175837554485468656513422723744813555326436864515263212484344732157358183456716183311521554184718682316242788284275313355434522242337157816523831252554166234345478355752578768552377674164518726728885648673638536312418536477758718873857387851557465125653538211268162451353177782413145164882568262827123127466673546141348465178377255224561337383667687214478314785417734533457322656277325333312518883116317841173781533625526474461472673563362546666687351614717722888213231852684164766583571353222712233888137232277734752754776564446633315728847476763627853228634164484136836435278156813231764871326771141774168562363253318686475264848884161827654866216242581273577143518562446432727418358364337218258123326666755355372878327688512324526881245771876264653233784873315684675733527314461653638734134354328862831636261716231724273628657345185167772867642488467785366257467175731683424553216846271865713566758775636253268731554551217164746475857678553545567824614416851358752278232482618567634672446263624842425532762638188526667344325316544717844724388842614117511741162543816455454354275573113243848281182714848152565684581514768475472337688385127646713761817555261853772777888434712157255866253248584443212745333114826273888871586831227213382512681377664233873543364674614734512618433556711235132516164146264434847318581461833773456436744286357677613456518774888532376663117463311352563527616635524851856314615387554766547866538584376117245445286644367754564483527385725358475258255536144253212542128315351432427577352367378538411317884144373641435367713353313144713867183333335463314546733733883871645568768415413527767257446712566283671587714226514326237577642351685342732244555153646285865181738331463384746823856566763338127647754783234826722545722745624287164451743885274487865756137427821156116186321638186642342243611666144641873142627482383176144272575126175156225124711127487816632833681885274655746725354222754853883548764311781242764876132284573515582628668488345631143353376434843621647273216741751746772124525786857376654418175248524636277723275711446556262675343723211558846524538784521355876837245711765127541186547248734487817485242751262171612286266675446853477358473247327536751574285571587824837753682412786422831547514185445832886614871332411525145442656328115446442432577611814215372163641274535638786333334444148253176162321774641161461422536217526833722716131744547588448265677867228116668311764284235627373776567264732768722831321572176364177714344227668768556573472274643438533115748422177713156234318517437785178617862352533326444312754214628376144265138431765265146567615331884822532444522117328633163612462761624867486267685626833718715688737272681826482124677664514861741538657358655566882435455543374314238632584757226356762132151586671641468525333638325435311156631452468421551823424633364166635446671572314383614674661766116551825153841846227355383436637153722324318463152583787731461363345246544142157813253632778563864477212376187555541714657325512147537723138574718856823744161862625264546162543247416657734527741834374651825786347571323764648418533888656886537145176361782312355622246846686181565887647748632858174467714512237777547182665752738873463884173551875782627381444883336335688515618855227624624224117436563524654656835386668746227657364323688721413818365225514175773815871723461731664756177172638536721763715558572634142726878513881847885541265118414282551477434237584144751452852846288816758238687668244346148811631537811584133818421522322873145767625672654642574345434682853235667383167247353683883852727137614281487327121158415612888468215324461768331345175523327324744446741536551252658812848642223353817166472217348837172653542464734317156864617357165882355168453543147432767514117667468665677832713656533351462385112678816356547778233538572412872116686828644282122165583784587467187386331311522675342371336138818418188738847626826614434647617314874766722551812678273554185583171464716142738184863887414534733546134687566546811888416758312253562832355161436426454148841765728167314527551883615616662324612518386457271368316873351453428661318812438426146314686747658686323372484485666884463623558227545541658155322128135464488316657828174646278147817252651277521418123277863573374686732516167275186112587722711876538381854462147347254885876862275221776381254884421571264527346525264858575532661637312428251718335382345868236265666527231277128327547215185472158666241365746664438816275634535258874677252488837485123356675882856871652862452862468561248314588774728116357424257275386286642337378886578121243122356865216288526572341717833385136771166675345653744534434334416252257583224348331354483873333517631278257553253277636822225245125718732556862387151428627833511682661785273173755567515488316476218858574457443116536233763577714781314758568631383666841367747834862813531554288425726724385674231387646363688642873635652336646445866514843863652131265188628331526343444681666535552267786788757253284531587856518485262712453864344483523874335365558781645848443578887256686823275154778378883227817783138671618372621354311632182537841578545271842547168218425367137175611285276441827518116644144822258337733537635246654487488857673676138473723434616215652544178447721455417417874555782523132873635477187538334646825777251855887412827642361612361855332324771332271644747515412586221328466586374455418326466622443145577837263367724426754486686612721621217542881417271328848325587266346187786716634653627258674287732287876267586868787524287317157833682115552327867781768616262564811711863162857437525255438585672753551536623563382516121678323555566531783756155223584258156163636448488361843231241353235533482213148663436746851576568121861771651587731273765584846518512246813867452238123547138688316537328272183726425378258687325647466345224513322546532117546271133737855112113257577485356864836778571752152445813757443636181667312376288114512556456421635768288484711721847188315143763358345854442424277174824235513724447844154263381758857447685546177568544831326112164577344887366278131283285582655223627774616825585512586645677265534422452741468586445125583111361767873764872511742144568676324386252248683444237333451424243248565745424725244847881518124114867222651733353757213363732232385126342375321652173465658833768361862218337153367315847487431467125312842646644571732577132137541136821155781844625741618423377852641322812555624215836875263635486138378115374461824218486328865544438148274526678766415617381724837718426754283735473144561212685242181346762625358633676617844227437537712843278112176643514885415827614768244655528781252527757351786271254326748428411337111513272815881128661312722852433543462268738587564265454318457463471513282142765873187585147845271711228171333827287647347238327464155161783772671524828488316614228785862756171113281681581862358887242134612713627757514361115155746151421367515451827315122327513264876821647344212813214312657645141347172773884154162152334188363314217155451563835142835412444445433248454566566242342473383617847763624742284815618754671121515478321464271672318884137141766462314117236261162826121811573381576657461684461252851652666115721475272827164186873124782467641654873245542627313324763525476122521731165336664813448361866677831571686771254521755787555233173117736522384656718848685374348328113461686733468463818184538452153815132724632334382882321355437324887145214117436623454456668412552465553158562711243287862877744847163848885746737756341445328361147143688271533317643453885528313614631254377575416322617736636684637751374632268712638528272427581335853483376234116857733674438523725722248832343885777723763785763855176161351251685277251518183478663365152776533241533684358565232434181778242523356373627445554387766842532474776214146871112542134425547773852547143417128243142451515153425276157188766452353567635747251447121726414218842388737818481435886178425733486683236634548382857226265415655474467737253787641563375786152566873456348237113161155614316251828865356378746153764832432724523471523811775557434584634876134433251452515621551628288243823363378181247428545214728411783186184581675124137328617227384561261326454653653245773215631257841153355581763257435443526618211365317757411786315547715246253358476128768545845286877483225111124425363874567786574184362478547885283487714681817116411457863332852816657773774574882816451683585642116782765781141216558538884138346882735324425116652622266676211865758357681882534455373117488173625341278864737253777754383817348464482876436852316652286484377232376273785472368844624433557842276551748354272133512824831432516252346847453335573331781533671366566851663585213243722864848843518253838288676651812185186642117684874861434188171856232716663532136123123538284788578768185448628826888252767224762624224765483882682574456867325473585143258527774127123726627733288451472334773741553831353715234741774167146431473445257447627782446813427651765667373636454334177668177554386864368533874467445378887458758216343362261663424623378624655546762788872647656124342374346861357484883723377886482375371143775524681663182756563382838584562281666433688772217484553213566445378828878734641441585873215751147831834776747852827265456688713313856484275832188816257727457475646376482855654322643482337763347645472247314412665124324686181464668883681642815227318775575378446342362143814532163616354478334537565646537886713731456512512164526747412866524516323178836183151482213386128445266241731431312452672527386711874687447477578425243112881541248365721664572481625122877882623356844577636542524773661561413635175531363624845324577581331263462832827886371512525342465258513452254623321337288481584721731266358786238828637673413875865148474334113615565813341388585161814444454724347548578528465672363776788367463336772743456831164422781333761268554638565825832138718827812578534653576748842213184672532788618672111645345235414448687434465148315146277487647752327262678758371555373728671465314786152586212266384373827831266346627734144331837133834726411231413842453555625127381431761752767758162326687756655485463224111446311412737523858518653844141252553511754562567578251145225832176814885823271188874175216486352122127628114721667673758215732884272821571552388653118136518466754612661786672557625337845582236287432116665816368587443518787274627535268428222777622643227615274533128127541777515448657278763322581213123162583236268684261513453478652155724286464144452577421725351256614124432842147762511652257868211668728528774261438454345742458586167136115232842486587167324231747417164354148284543156847132272587383587813587628631382285821778374584381325674346343533621364253627624445171411714136885188525456334734112158281363168348286642132425875786763786764784374854827135224468745282867114543514186488677634625844211662133373443788737281333724712867777775186463315132735766756821464258467265586766115573865337465581446833488742143367564264871236272562577233414332757862348423246151875787185517374277117121311616762451831447265353151453553231817148832645463155122266188112768241234867512563175753367248223147227224634452736428345236747258832353736868652453354476232644586433362655537734161574856627144483481653826681763771766315626132171726118445422481144465844517622783271124535462466571164472223468477458572224168326388437526833572387225114512141645678237782245141433638158861544268688568378581633553568252222338817722456125155372685212378578265657851657863167836446255774787868725457314676461772566754881683545776527555361145763555612661682331657421626677362276656771526748465323352538123212563827548271227416342462131321264222875513385183434341151252735346412667687866375611625386271612123275622425743411142377886634546532214825558566571418365517168622587888122668376474176547141172737687315537466772778513824128813738265778633362541261558661557531457115665867128716432485257877621481657724333314836762174732584511645177527555817252438818128275218427331742448832144634516272788616236872222614825375715221111841361157266144515131527711761431267863356657177242861646783416523876317641245168856536365323834838236111784317353523318547882182515273337454251318511531171278146231123865451577115627726711312634616688812826426888461122228877417644434586237587432548321318626551881421611551184724752843422747586645665731481777831224233323663183561118255811753762845743226525878586577267244226372466475117352222848336227236624562716373727836286726217886628773833252538838328157674231763447611635846545564441764357445448221281444187442753741335146381863557512187533415755775151655448365236112852867244688382823267281674174346133844374873172187775558837127332323727715771876534671548112835737676454642616455521244252445175453768248171775144128242382551163348831845824234316737833274872723715566158137255744316535174863224336143526138273624464878436624727478441621538867112518428741883711342463233786587714426367456686436534554533258531168365176625167737848383578237242668277721236665451456475888768146151513222888212826655251647622384125344533121312677251732614811413616236448238384771761187184782153762273116613776433533317387513746865835515451283243444871636668432835243487427438743837661484837181672522438243133175748547847427143314244127387685846757323261664864177486885632823667511436581684282617316558747125545684111766253224822676322188654778851134638846835168482517233577573276218768163645545463283121767253444121134855521726743144787328634646416818136728253454714333315636176344254835517854111534732214778114215565725527637647212828256134554116558716676421111788624137143228775733581247817187835885718622315457716776664133583283433155283317775123456861838214457451135135814176432124616685746282362531282288517318746216677473316151245835575323187775151867884561381873212748745583688653247615381475486241225631161645521476525631266882878248325156617343115334352117815486485681832563761483785666254464618348443285542576536263775372358383884728374287857565521148375261251348243353255177231245738856147768683678151237147147322223476333267246118632236616437226531764256661842774114365175514757841123647647586563811267385371771548814345284757227711381737513366224358765812688161268818461654145267121612446151147618642476757164743871624136217847518324686463557715744854664237585586654311363721114416743853418637184482227181117224767728231681516516674282362678152544527686444211448865152728632855127757288226351826422211241416667253538551743744275113283288726337552564258243526734648168626346263871475885227586832834452286868867875162643112765564671866534227115322546723781826182777412533311747563854281388688774482242233214132823413147117852152372585573155744245258166438615488625264435628114336738533168218261754757471182271763773688621384436778327373212248237466184624734472411718285311383685885467426765673724633361358338785188542385463612764752454143632212153247681632774826763367536454328312146771524726413431751565814635788246215457117316187125322741886512888532342742247121257413287725615355485348251858842742657218771323452883517668663727683211177775178877244562514885432448423357535424784352123267421552283588342588575167345263111732857867558314868543333851837517768663227635228674877348883454747764183525234268254557513728718553637641864446423774335574264685167713816856658514636355638615862728718162486454483224457884472333371244184485745134565131578328313337684734114577512714738451481681231563572185756614686638645461154727275845517764343663334442553635418664274566116134154415331681787662641766444856358466818635315247873156761763255282588552658873662644372464376866722344421114447223341253257855284125536344347231162274511452671688323817848553268344461466634411432683253115337863816124454582532471453634357722218777723263483546343675717575363812683176876347632661847363818286133831638331264336122858215782284584634336843143625816484174781316448863534534816156413861826627367754777786376852318662454636223865153532237583681336268517776774355368287847877566888828487172574111625566834357156117644158817377146651358455351621282686384182416233734778362114778125345742887562552838543414788451155231338156813163683534671535632242245827575548418762216358538441644733551265123586576313232733786845312887566486144763652515772246764568182612822455387247723147374637644864662877426212671844672752372638716154863353122273541483631864551263628821322146352412342488544266585153275156482518441558111284814271565771421346351366873187448537244728737558244137385252115838343432464785776746666787885257758612515682838574817386253645482432373547642368466256568541258362256472322247752436754614425828734548371552446581863813152344234348273348543867555826822143263567173173686651515266755568543768364248527373342557788423176333326442383787782843488131335137161764682841738581888713533115528255423576536275245272144322538255457623135354777156257358528235642268463165158825212846555565718526551526738672313463285322787721443485265243864877257686573424167464552143446534416845511712825753227122163675733277717557746373261163846274464678535841432226243226512738842126836532344163773764422365266837632342146258484661778113386858423614477784311773532238534238277125533118148184416336748368844423845843846523853555841763544876241444685157328335528373636282475226663765566361738666588877123345867822445663653671846814423726128462626384335654354825433675873581467654786368382581613132385524367144123721356563248542347758176756267525221437647318233878874236841358841653284821834738484476266768661415424876138128628166351647372483831175658437381766262313746545745654285738535527842732213746227651748128843164554617575738558171164163636113165516154447158867572157327685812233434868472137882153553122572414444817715825375277513725874781832827765127653841612671244383846715382864346581336582376673644325542687738158787424643176841442513647222176656414847745416512457383221125651117488838278541746373264863417215621574562533373517884881842438887655128832756877664763534666336188366731173662215548582835357525422282861814181325264336558427838745548331385427514614451887742483123543377886647217623378751165837388536423283574113141833688853682622124313667768678448667364611532631731253511444475323755886816771451443788513657271133637187666428138375886322616421648428373681213787383175755584237241145814172462766262727434753337812217613425212825166468542544312422848371712158335848884154254365266155242127617883758821336338545257447646216816857741831264285471235755446233434367432545534263752347542252211614256477511674566767223117786836148643513362434271883264643815616342658683733811816283337325565281166832271262258544776368725245227412388413688541184432373584765573418151375831816445243258513732668641647837685348738742413652425481425875744375737413351282431146745843477575135546577386416521255646685541723377685432773581325556236457445774244456531451278732552767212755866812235246854714621766374468625423233427128551837664813416875576518847358362832768335236532156627378721717617781373816221136655158141177558817143483272874226433316125837787317627613581173423743521711551887721556712578522563874652767864443164622841518355518671827322623626285348115847168633785234465337613247244417265734274413718848471481272623236626284314542246284781517748138387177417538754138217765626628325134742365211374712655826545264776336421642738826752351674787276568771842632374566452478538453668227873242146213845751664325678312118871254871862246384772126143211215782358353234761817726521817578267351855875133181567331876714322727864237731618736326872522151813415427357135867366154726688778676884771378773278845136352346864564118646622618684284531631374541522455224154121116225758754314136872251555534314873268625113575264176688857454513835417825363858837267151563173846576844272134177561146681857857676847433332611237237567234636582852784187335148438355765847513488545614516767626622818453823228778351461627286725172827866888773775473254161422128867735422466414852773356867766431314535632363454242544331774426527861214116313624547847125164785357434434235214637483851164454185788323415523175582457264621125665266413845811256362178256238353868276471632343176842763243277132128334487233286877631155338743114144441343258524476458682672558653264257172518147351378254478351337424828178541172121683186683772233322286722421338484364133872711238124766177722336754737275863153862448624555357181573188355552524635313635362771715761785152711243364636331164751317346848626611647777117174256373187478427155281664275558675861278624226138518246621863836484227251578842718484635423763473511425141834272281253712748757624755151651245364151437572257526162347811535237543576111886455127312713863145816334632782133342132373365371846578618577456677781688883237773516247613217846682457127846785655331117428763212417826661421572272887388273284115553281887645534681528214281686713132786552725851873551678625185365224871737124222444413171556284765238812774283116524427273858336425123282376256515826431723613125233523427113458827351118466745857326257137841847643443156481186875567131535526356367363728774273786561424863268862618677635751116763512867272747675211143325885248285353747177745166137158628811731455446215851266571383235726875587738511166173482537451613856573462472185661178882444421475234446345552638613663517625663343354188644564241574714366538534761878728873387112483585718753816111573246563134371235786468661137253176443643732452681144176271586765415475728631711422885614421117255413182852683441518266368178465812821263313243364846544247172373561554542465768753274387713881844671732877225177185532817367163516271364753161441851757645457467273778832837178745776652766613587443115385711671748564756274514144355574265231871747888517137138564633215435184267624374656231143522413143522518142566147637438651857753272313826664144816326252847721715845237865378436155771644433113684224611817742226652376685616665154232222162748272111751126651836345567332225244352116615441234444152555663877174251537142252263677443571844748734584387468356672422446241375238374664172623171288144657742164187532511463642732632114458365742381521254535367217368772627753587611436545177584382871118885221182181342558116523411217114676675455256362148381547658135584233374486284117634474326228748822255362842157577833124743474365157344518411328627181231565552264864125832654582181124231676511556155227471728828131121278585352124345171232624684482475885537686121335317576615622855255674254736525653577245476238754488861854366738756347776516472587544616633873767282176383847787227678312216253168843332686542854727328236757725676616866221275227645568822781147618463655633854625348831676476324832284336333461864824583886688277864317186834631782327214543552154451831684156643544332485727873135237286563844284384111572146341758377812812887174585523427222764683281446536442556177436215152422446442262476532236671157523362572876681817222112775547381237352211876566458268454668465585881227766531746661363418146362767555443752733268213213274412384126666543486724411477456716612214746562827285315341285776246424764282353778311512521264485684142552356642362872741727853433516623555388473372552313288418435717733458367362427355632348753338213225122747156587157752736666644855466322784144726512452724588852265864744848386627461523637381527771224525122773336357337126745223342363762851888681124883676218188335278442447167278265488276685374713413656424237712152136662388746687838361651212414524872277723477741777521532468511885668442786267315763783636556343778731568283834277166436152373361811137647117282887237718617511682481235633112382772367385155285831124283213388277811781412672741853842858855563831126626855646712782157528166861637316553736573458635146154426141561833273532574513127483581315828627116421274635113757717814186867745477215375746782678436843646221638121644785465333346516732421581462286375822452443783573684341466645371442654587464483728254866537726766612237672222158675142481243586266148564755537586781616632642364148663147362181436217546412345616343614211326421711264872213444177415735534243824846145725138433844224747262453524374763845855341438714377113152446881884548141773638237834846782441246582165241184166751824658814674341256738447844386885862827176577588833576347437733888147625431786756215585318148144158881288767551236476123687283565221711787318823631888854744767141236275576475417217118251616212872655324537738656133657688465264338827876751672355626253681326628362166747474675317624881177628353221465828386877456426222144648127664226223561413121417318634283865457638886714676776513563688846557332287567815374512668814585322244144787357573844711361736128211614741275131384442475267536556584675368833568113722314767571841364511554527175464312478817887182153764325734146546772333638588461657281338734155733636586523158285861614544658218267587756158647345863187461151144484335547573113366566123185758214317868426384321167646645322712842785413233364467712563662523314253613183128123818726258311347664115171872581852731225116746611171344843218354114132613846674657473863754456436546663167485531364337671675835678853328625268873115741867267616317516268653611827257222648476664581717741112768375156387812278685775221837174618272526367585134668852542121177816754458277487525466632434448318542154842477811144776126137124577444717113483564548321621483447352338716756763324225844878831636636516257442461548113267267841511222516151864825785762675548385374284716583555211376522175562718228366882854134168787155223351363886556448758865524421647664667654478674336234752881554177451833336365418128164321372351783786776511751428332434137361148485668381363172522724837434434138213288836284853212682184133516124444386573678688425534634654166466863382538288712361484868162675163458372317778686635287682838513428356577433187667847724674584813738253866863685551838883427527857771743435365881651256188846433866851754487153777883268728433326162254313675163728745675637638336223511567275133114373725574374555526641524636617213444678117563122453115435283573527675552127186882217327884252164748164262662831247878738722137168845132385487268664517288362765641243178684272254572182674562185226132862486567685862631173888161771873777115862558323132381787573641677585172817846245344124578721577184513761264785485564128666635232588535653647743418467435264374514464188834674125638478682788346348755717775384427162837126617143124555841235647144315773524124323448638653384165213371688612781244114146872148665514341376466577658721477688335773724827565278145534542862881278267258173262233342615863733717484216824286821325472648127868727845584674462163577443322778451312536884418215533164466354716516351126253173316628126423781126453234746122153371358181146658382214655154338264368268844665315433567761284777364357858885426535742635612788586123464464813335721658881161188457315742347562721855745558337364614858648256445281642314743538166167632657862477222418478643426684554625228236847745783764766542587835557461752246682768343556625525741557281421151233754118357868441265581532484176338486132785781426673613512127411451753142577381664882252134762876557538474374846446538732726164381713657143246747211141113616182773628528413287664375455322682836317736776663211535246447614857255838514846856871112745373665252344362365122721577338856871265316784536288166772324276545252487137287576151488627215456843778682277833317357826616858623612537722312532866635386158531887717258476331534266563238687544825611327157767281516536465321778826147551116723543883615344872573247681411758118118361562838274267815555331787714717531624348625276747837624481547481553553535123453856724264887634656623162544581785237622211641623484652872831176286667545361148385721527771577264546857575375221463422368824417863665474678866113142247736877772714338386243841855148583377735613645632855317168563137134726147322575377874372315325188466262164827256521655776115574117724687648532844828254562776286545674455428313661356323487667438867123632262245336167174846351314625147222132235887482443248871317827411564487856463624138533254623553676723578773744324846333481626671457476134316614154457384435664766621823151377754888685648372328871133147163527114644814447561537682613411437338463454514362374754121838542465878325372674523684263852776831227226341278346216673565754123142528824688533243577445186285475384385452374366324165334841254684283435668785474786426472514141158158536212441886217853761734845522574762623468151542585548881252466553482647621375531654551346281726753186567663775557674725184275437617422847283458286345754738178858352416325627214537673735741685336477666817428748524586746773115711344844483846565825315653851512235526632122478841167643638651578617161263477163176521781436141121524617626224488241786818313372148576127636143823618318836835116831637212573734765712762552723173726643857712387465622534765774755436472262457882438352688873128338574767663158263214844817318833581136463775462348743283831874311861326681714147123142442416536384325682473753355528431271788588571716651585837541553276253772616777258218467338845863355343528267648666274174678232237352328313766611238317662665847371218148822652742462248462626251262143642574437574665312141656761641822666168734861457362433776442511463241733786832467577566327547552765515884254382226163412222647781448517823458236714742554787267378238681642625463426578668153571461341171328526767286258634171624627423144156643257741473571328651283513118331253113121345166142127174442165186853354448525325287883413311765231563164536227444811721157712825167132485164574662714525162764446841258333671727885127521717717562274816242323678372618781237154878336851678124143224288823384477312866641323634126113152141478326161432233463561241252326455853561511728635858143667616813514532387836816563434471847547755827143516883326251667757222654256636156353374166633268186853448617164418733216578883762154415835743878433721564261516423558121354548582543251673684135447155172286125841266831368678784355731141627823148338423172836153343347878772242772674188853228553445243787618746672281142464378324714784552415761546651554858581567156278885238384825668234183741523846515627627626874767363517336336846528171428227281883854657376162384888142528135184476422215873717317277145816515621468581244235133426826577217476223137623183365514352821686382518873742751657825312518244841182186132764541317438358771345424371883666627627532456242235446835871854283162782516327117547882251812431334578648137447267667744442374174243263136561356738374385581888128186468126628112135245784751767467215777148156726441678631676231642225531212484215231784832342373252612482646757846186145866264581637566782544845641815518226342374137417332382523613724616141347627268867713155823365643846637411783481246512681126256457722538227254847554431133725252831283174816381726356466427534787713672767564215582288746681748276554417221341856266621356137552874124716446282815647471744615568862417158447645361724768786453441256663366746464123588578834835532384522886318412662678378738172312631876226254882736461323732153735574312526173266513582874288147686626875354371887347445552265182334628812435284628433645757127356485185215625253182266623225626336736116675751745152371518762264746257472857648214248211143851324636165831482372785673353348341561266631476521456685136467162127212535273512656436585833715674554417185143278577287787744312737767534735223761387746222628852747317452861327113777316175841125522456351348158417837543616765433338861785667268158571451246446731336463818636638244288271631374324652127882321845335351821627256223884748877168312717566637518237136212761644561727264736357237641427615368675464281241835428281848618783432667143263236468157618675235567641145423715128631261135557665235348847888217131146725446224334737478878485255261522255744874336765768317531127176853216211533821153181521523186643558841118357134181242868238564526471276223585614684477466384343161175754624871316455868668681586361853431428516227364811461587734826235864722113817187242881641738222618257837328638221326142782728157838423222782313311622787838532384336228385483423471326271734868453762466515724233352171623226737675822578231654646521583562714573762686271322453612726168821478323242461168814374123786677483384668523231222226635664313258487524235455544465685232653677573132225767877321557761616831388458561723212111743528676841146142616647665533623562516881861244112643228663614167277774437252367212433357387681178533846628553361523525345764878537872321735768786127328782856765524423416648637116537474375153672684111365314712265873177674618774344342443821133286384132188676167518723712472681486888765634141517558585741876625372828553534451223663124112664368231183856882161424425822155558263862234538434145486674581222137172314353353367724242667388567136263355652187576852285534546151333655332481845532427871882313136468187717582752551457427354364862542427247231185137546362485852115824618223287481854557463855733125556275154761853174881386478757811677781277861278348435178664262381768756551338763313772414631756584278712535212247585643216857677685345415636442311672168365283532766174616357157783155178268588465778211513325264266742664273186364352113432127212775818334618845436347677746556711112612163836271572356782454714761631814857542381282732846823111271836433244141158338484775253867162461445751735426465421113118763525621713445687482511322588243111633473734118415366457313736116776184147544554157683274564334628135418821865441876262325318441441856517512126711286435133576377378681547631377117726421347675411178284564662472868561615173681365341417464678463388256332316414517655182536261468472725552352473744421343856814513781825652555746848664838386657683655136772433236182254274426376522724418323232517623887346642314243381222212462241286637312517583822531622754635755128826144813251121652546871523232723137584471443525768167286428382662126534378587144657167675312538347861185122485531444772128238761536346418654217823357265758732885675836452878731666183674337523652321556421364416626541171883764853625467111412263584312351344418672274584612788625243865666117673857424575732313876741426184568764373617872677833327851361724461865712658424826317711544323668423163717441747547127243562744486464354285776316266681517653263575511681365562348818766518573841282261855272422473856576145485415338181318127352647866671726137366246864565817233631357146756241864332458845468742447828661885877472223177635568524312838837433141768246876414155153346345155851633546844655151235266481162637387653153585657472568314327546846668575531256882257687776286882627575745752522687253811337126255614345486555475757127752551835453554684125654246148784655325852776253664781224525465817238682531352574164755324566124537463635657573141183622734213563811243415328631418367522533745146131177526578325253171231275655158636277713432127133123281365837712576163413615217125414117387244863331361512178587637214644424877271814154738748578168441543137435425877162113152537578683583336844448355133135287623552517816212613217462762457881242318151776624145578436567826137734711788236631285637442844527482562627247812686268162356677187352121514382256778456677326636122388351356568723768533152634445235736458675667621264566626726181268875758183554677112343824681327326562571483851637562861181232638375231878335164731673758463385221511564487552144668124131851278335842357273354322288662427112531235136745731238155672881381451548613186375867741817186733845865816225541133576577154436427875573264534214552386167522851425844867371411723658435243115647322314188235827883782876376728241176255678337184163367563325215824588264714573176114437768851517564542637675851627762317381811766287151725187128763188485476233523425564763542238285244653375686645252245161381718321755688238684766152357154135664611878867583676352287683153336657453816736211736623272584574328752658433623763484723637185277254385335566441751282555831558431431121536877154644816181222134763835657156723254324821583362445718362267846743231373818845251741343558121351344338238281666416141363832163767716636345473624125727722828855343115715158887158237128266763486464525726772547262861584261276721772151615538445313367685318657613517645217243761666583638684542712336553434477424764137164274334527778728227138223683111185527546474853852725446613174683741612328423477521151482751836721847146657882453165271166655443584164641141373378464562244387613161534348333237265623414738361636656777672614277726666726744717143727655485514453728581342322682641466125243347538146261367244177125673863217626332824542123526337564721717575318181522434353882418852632158656556325425452756517553374581225742271383837178746252371685327762646375665148688425648368887444577823471555234262432435432266385773187724347362212425854231436512867751344647564615767387131686884676467412358486664183883862637762115756143587325334621574516384285737243182881433465538871365782845458655452454712851824652386451183568771825463235836458575332187352848811244436136462371871771373463333127537311547743811158677132332644157847117483741745424884626876388144544351385456584654135471726782213345345571246677186315873633443744347412276441325815511544775736221667745286224775112263241481112765531248752816227334628464435328468553515486217547861573873225768674814514272642448254253561723677747868154237478184428343424358214817564886781366725658857188871141884858218346624776443228224287847144852555876362116187516883456352354215684381567836457723168451555673248345462352667148416858175343234767375276443244252447822446466721357766226217673724375436771522556181422112766725344587332382123678627537474136636782275421378556588328734317541826145353472314164662355655271862543778126327372644546177356358274552431722341472545314741442466772681762186615835236517342255714578633838361451873614415321856825884243261726871342357755542841186422785756245236138774485375485734824465878118412848858584283476734741438115843717513158435738173567367737188476716717657782718623415888418114685873717664412471472167824675142345583158561317456521827446157853412774481537868372371824586442388246585315668386512281626421351275581132667514822746717411533351711578625232284467155566331553218854785116835438315538222844255851388666365515285344236431753115244717184311736152572884175146551617473524684118234823487882625642188422557857547141176575424858665676548334785661375131362626281637172872262688483882877726243276152726138867414661837411731255421662872847475752724662425236675623817112541282174257358868337715763543464174847463715452342688362685683716782685672224127887875152472332627577122231312117856137246366237553854844861742233816631124614258422414717542363633152761386418322353618464317566543438255816718132352388385758564567571746536186272118617258273641455148762167456637215632646661616372357232174617237361232718846565467252155483313148758518411234361185857116486767641612327331434448685116755233584331163782585146875576837211166288216153313563266782152863548855862246177812338665841784127613316572886686586524724864366744234548648474748452541116284474854115678583534571711811277385757758473138353727457514318138364155514563218446888646276251676158376643658264853487712586232536532762136151423452848155577687151236411773484746636311757337118728538367526567831631616146423182824547368673475217335516827224166437331855268471878211787378743156545332727753421432226821515871284724616157418228832623471644364415863254684673375524538283638641844838415544778181553448767413513685583726884764526736424255272417637828516658712175783225438641523861612363223137217585248261222275355143332635553873513181278887583284136366473667625834642217564573853558383341218683734644511635826873778823883838727788321173342631885473643683362121158633624877643276221181424585287636618116537426235341878187314657428385658281423126171151477853662312846753412463277843587153888226316558568613671472717514513275413734671357526431671487827235443323781583351184258868651541742774151775611728882787338151134263344823571532277134457453533121854142366486214674238872882284758351254853271637142615584771755452364621845667547378815348435571413772742318631564255351383727458433524415854111483637624665512222548881182581318647211573781823267136712137637683218834214372355167425584466885723463784887123336737354761421687612151156538857542133418522287638784516228122542445686425581134563128412888143374421762377487444426424323884383742827756352183445747835335721764123554771146456512112381573525676132576257784522382422266485864274483727684223143352265475138456562724381762773115873436586418753115144172868345531841311626583584164463335766128771766537354513665673526261748433116735257677512271542735568122131668885658271415521418126634737561456683321336578236288757312635446216137731585415184676567326762347857446286714873146684283848163565378185333631632476586772358612838515238168748876345821756384284254334812775334865236118315624216235626864217361754224152684714184634371486821165476557727864171524822652321126532886436233336447718863764573886142585267116742378373236681641322477655162716645541521388421153361182218356626742564588137111833613873775123767622631341112212477766712323668147311131242838263626887186124637435488211463156427274581853323732841567575471238516133127826358453216134542352328672851453245756274476716712831555451583464558334778261841711756857114822376326654561332817143445816385134722457562314461262273761256668127323671716824637552514521356838437715553344376148286325352715357185241435863334823555256834451868481213656676147161345648252227733441416242425883136367784172434578536212443618863316275244363721668451282268126156632313318581334338828733611313545443634658383673674354324322573726256223222281434566885186852311625384326432165282847416217387426626244757131541441772267164513744264521328244757713638586654818325476275186463853233153724715616355538248746637157338362657235537752665611841425845843627517757533615863537578261354675242627442328813365184861812161542571324253113335814152628522646484533514725725122277858817143783812733225366565784285776651536876751248342618844331814248388656338144647725425828565188886852254235285647385746711176176338454537654384721364622725471713654767518548127625773634373321682168581512178751148322646674613576232858127113714645576815443411632833532313671221457148241272334176147274128682736317887826118524878366737714685125765667877586152887342728347446183351124541843112413241165521278221282323116464371515678241735644433364572878317465633524286742275227663531462877447485872565451862415668673566177434172218444517448115543566265824173213227267118576117155743812311337618286654522387654334284485124485461636677573428448867467541685782735481854266727662575831655242121336383475756531447812663756166781485414185328458356174466233418455112167618252743542548233263676246244871883666187342735628786471182178245418777578453631511714571788378881745683317267325166234211714784444164314737336834246363443588643111417586138773314517848867838336156576275264251521422327721412176784123645632454483385743572675835347218742676283527717256872574275613556435612634111882371117225672116615874116124273317127736164362612866336645223221132572247333564456141472551873842685571111356358634668535688543778133244336633585638588655621657267548847562527681611372848872485856716533455234883831775368578631312132346558656815154387213275873783886358822628884328846222421755154556555674563562255844683637844185611878386553746811466411314371852116846268213863626327345463555336171363284581557371712358662714568216576513354758736137515453515576212552544831711474811545486112382424368662618724724834534712111813336313541288566866471431341387332828863653516718514227318147742643516562578265786315216167822683141417353246725146333841382261242378672515374755178438465652462466335585721862441874587138845173722837575262473246256636571258146316152647543763258828267753454255527652214456472438146737241255767541452564227132133373787878453876888743731384264462446745456712162612882622737244158318844385483234428687467348314344215335532754713437371662513137237437572433774634222388258438818427276825354486728515227766424365773145677126787425647421753258734737185763428152585114178164544137434161173875714172488452526875635688787753344447686288442648863548288845378381221515141274777718628373727413285715426415581432461888836647654344546383552652414264154785361662735122446268426833818148566318443652885323821561731744367514528484651247438283346827425876417354325331241765261567411564264788286711572265742768676333751216723563387421682848576226188778167325341653637888446224734478475274418532411811754236676734633841356761117215756361615374426617414776557435516311332531867615215274815517165413515658343273664888378436314544764145146335382656272785583844182212715487624541264154363633732522783117541682377771723646121342277184818567712341838313863566775281672645175311168885853725554773857677286484486146617571245571443322647476482253423342852571332623483387543328622855717636365537744734584882754526757621353873337712766225462538225574376634166414581368526336327573176641724564873671338868682256124788537854142471313766416527731376841642656561557515253575165684144675847282326744131454551286282365858675777258633367681768188283477343686218132165645673388877225625172682562478148677823577385467642717635871781428726234551167532478258447183235663476517515435364888888615624882785245113226623117614645273368458661237358826787355786874311313765788571263828455514317618438673852826884873788858146827436414616554824318655251832283145343478212384485436853513732785136844565754211343187135367117626372534121211232217821214825383181811472487372158822533824221486187235142545742733585754866176356136647782146276415157554822554336557314517733438644456525471761536366677231171812227775373166128622146868634634813377776773451378284776711778831365124387344448857482633726611414812812743846747547422668136646134835278464755561878745618878653153332348321844512473123517548524847148667432878786114135576417883466142781548437284316523268138146447526642284664712253476456161411238853773818176712716522228756848885871231738425366827211752155115281864114552248546434178872247747431582556747388683117652476322164271145426312372258124362684467555558287428623547441833758316157324381642271534374134121111676214684665583516541114413273221437516834248561731612128136827127475247358273236883762664153535473813438124416682167312424637242138448141281456634424363685116371381215821563386618742662178627317485174716136766417675783622258517263544223511812636772224141811773637728266733586375464867824582832624337661135461576868422577762111118466231433581756568623268436136158632372687673135567871583213817732665835668643365624671661121564747112545518582234262345846714755665585123562752247167563842436668725426744626511323246217846364355574357481147645126446247845377435826655331781363814634188576336485221751516531782332636685878234655512257822862781534368755358681312234173858635758375837433888688573147313362427446515447414371847748538826768521842473883387472863835577362788573387577576475668527273561755724748676414748376837713161715153434352683773677866417771737131333737614547675478126514343246246181566681455183662372423487118478412161726385358457358688216212742828161781882437253738315636712111576353122355657636537287774641617121322244478248862442235366445316347268326717762525416643444864518183822382748866224774238536653352621756611557875464743713164161332874641466735367423458333648633536657681443576485337351634667577341776781758254686428257624278571558318481813442751675524611667781477173771175732515737367332771484383661745828746326753343432277564587642831474226467783215888626263816686614773438315573772423686156673453882814732151385447424225454786655546676757577287546624338615446656332576482822735163586133344811318566816284345442467172115563263285776263383717144827685312335244783221445683214353732332252675234243774424411786176811783867451664558566117777252818677575381124468135612241553724643266615327732332567773515774825733461667117846283847888273535715127754662453238114883467782168246833155367347357624662422375281558732138864786328672833657233888448643615744566442385337127466826557737368436736154283885488681456386784643185482771246376252856383833164368517756561254878275521571447744712356528315681365583342483247327121742468117642262515342536425836872735635266484244475547241734283835464687486522835486871151238238346425323861733848526377312871824643862735865866787436333132221354217171544632362112415617587638721325138518745623524152521158811533743483343562823888656723473446421666551824263123185636675885334157723572184476343773241628848455234243348656171868381332836432651762156117366261186786858562434116373571476784564741445162862348167183111756814355185318265381364631812673448564144362277474276541342226431474845173286645153477578486631444888287474717471324773372152763332357662153751588146362274122345241517718765525475773166268361475545183148357766152327632337475886263433157835216338718887735182468322686276366176553223113373228627857363561164381663668167356825671263438283532368233736322871157234273153172867482762111757868353467743747844444627484146831535577338311161525544154464235247313735433438557622274231621284635175627532574822741334485472855121558412366638821643673887248352376237451783744828284278581533661853665454718851448564474234461563711153488375181543162172438245586287146142342366368547776467876216176741872775217262626154822648846372445333754677516317688838584327133366627742613331166631685777351574825716666856631464448884428544833173746118763511822576827563823811374554512458221868561424473673666733843784665753325136162435363152153882457614832445752652388361163432267637277488541615812487261423311278687483126174645742368371621437164471772576116252378227856558163416244858338842248737228775488418171276668361452415886842257188564677855873684741338673885714367683584153828163253737227464887337576158821883818783672424571463237538481276566223187216361417681241158764487811211687334362711725531223362253848618482785175237371868812286187154654844422114788556454673153454731882314211351376688156432364724523718731523347666543883786345386634326447378243717784763166513236564868466147138874328335672865588146683157857743342244417615834747173188572833337157457338522862471775443543535847754653512317215881482422765465247523734631452646746687761167378116451728865215771228583618134115752441416674268341811267777358481314322671263167228833377173533658782851863341762622546324676512587653426712484336286728353614538364672123852355664126817775838753871252444641813315566454843585754765671225313641256457528765451417175767385525212544416154555613171356753375885656156732247324688322686181271422134714677471845577654823137638548125181818654228574173143426171158367465432423476572746185614765788316445577485841135341877821566456786152762156656351844646758464744555783867341836637767454162543564244211615788137515426521362587128436386443326266374136168288616526343873374567813375658567245566287453447881352585752477368423782514557314141268721665267126385223665255666651213368542353658342274787321673611183547741822716681266567616673643864725713181458246781631884328222364724271223713573313317711438653114282271461678621527167761433613177386413547175717511456186363362287714725284761332334643878816623468542266324344237558826513272287758542363783823638627868854133524177872261358582221874565845864167566653744364253222275735388783526772223356762753567127356383524212174416653787742654155682158446354452124363757171286665736747173575483781176552662314544888383612746286364536758548661228658686861356853123667388855867843422175812277575428847743116752611874242458774435471752252717665331454361354367865647731611147572383628412747341422364132246562481732433526817655853363543861115147857266556431875827248515223784378166638167146335745456174823147723155658533263454181657628681567743128163156188454426868448583447638483417624631168465428135166518218426855327882545153625888346364816352488855215672121328242847484621536237658384256774715565375423266441322821333821152624222438753287736677727678782558147772724744573252688456145287752626868348317383458315128385677858315711736263268165544264347281771367112634827534758745845722781534335165236856487472563724654727217482815666826735658811476524142751657775574863434184212754765121173562671176186585876753815416274546675654158318866258246657173413861416563511157573164781215425718556263581266872887337157555715457175181127665562355666488638375241346424252415332714228173671282836567151861518358337312361258348163575248288282734235452476117575831144131148788812427355635281643454854835524472633425557764815851143412861177241558115558551142746653856164778514422637288851211476777544628536674527813888828127612525684317143581381656347356687416672278874881838661455757573434617522571838128683735821647677127576631414166632862461214678447365615745242512468572383726367115642725116354182525742784221837252341511343418261752882111168575476447537578413244424222887846472785625261616182518581676567873132383866546253163122785423216518445683427748613175851468488716727386385635366575736544481167618445731311817363716251566363143654234332132854315527345872353337327722532627224443274773664586485346588767256381677226173218855151718353247463511183667687341855543547728266584383536815411556626177531456663113135683348155687113523564842228422786681683828786748182255374786133612441448478153638815248537282438343183812874824514125174564474317324671735826366748113531567855457825667266861321322361837788434783128542215836137852151481411555757412488883555157828168166782474232137124348552323336818578476515378277573535637651156175883311547163726741373125727425672612336238277752455436168422656726656345824766528228886535381847311111613658127636585345771445375174212456137587257448886142246541852664346713674538178758673884141824448638567186612357272272685483885735482812347563351545374521875168567765585448644455854113761443381773118641564626373388633666166721732682728787285132184137315677761515447437823435312414242725252278533333624137357485521668385273235225457832324761488235222348627736148848642684714336818748368723536277157286364616164525543432344653435825658186314455876288334516528117534213818845231828528845287714635142187182373362821864453843113566376273161863762755861224235443776282168165113284777561883216272762165542243238373131685815381566343714687562286468447615244257873768287752672384718665888475331226213648714613188636225761453175483756444715772454166353368667824261521167216452755482474157526833555357748475236743582664525774218332215721814677613741758836453456264722522876444787444346648884377368222476187563177477243117216838857656135778253582463344254744415242445631515831647872386447578211855534245415568337236877436424116635141376541534357612552758351833414211751524625186812183128777725315347316438844232412371357747337468368813583626827155747332155567484152867335627281472274156363718375142733414821625743857345623626721664871163212355627242624546375352328423411515776586528878317411342351387328416732574143841472422317444743778153312416461525366257518573732737234873671312884311267123465225638213432467327758532811254346816726751563485331851612733837627366148666122222864845184486728653333361567486678743348454236767162857622262716751772433716278145212671884772136772821262578481662511666742824687458543682316461317865556628755511252531436762412355727258682322117237861314451356715531216388261883456174586333174283828628546312313622147761745255253235756443264586417354145532657136317623146416744546642861136446747618518228511524355452525766122772438421177736868564673836647776636538436226718726752754587346615338762281736778132224533136784487874281741524277315664667324324227384874583112412144217186437526115281551831172752363733473814562772844816662556771134867868836122863353621766242224677564133341237423772538751678616428432733545487443556242316746578188372643842372617832738413736446142212286882258852731347337147442538645144731622562366716567413335367762314173886134411737537731156711112215285865172152825464271857537457144387485362461516174766581332785785632858665623131474231863248687857221276328337145138122113173548326385817537183312874144458468181781451811361516751865177824584661765553551227863636331188257571327868335853421478678748361788822625617811257353721755452541113832463851672476755412147767837828735682756854317847153535388852782466342814135771352612217268148745531481511158782533421236117157678327145722782524855575853625273172886278425377631857248211625884741564116331161736241137286455841553134363446228531513138771132787287234245833476514426362162351136426547132176686648442358171741583816476574811674285476185165282443781424515563753386685268487613547271611264218215762158114832785624455167558168326433141584643362416521446121842452355472745248341688611362433337561727568771774521286231133336644422157833627161688168168162616755556421472355181817572574325686728566575416513661237842474651433856614742518533523327266637437324181265883543884285127347782684688773442383388678846442236386362356261461355231284435658157383575717712537737446575221173527436823418621463313567271847216141313358877834235278863557247721821243712585174388285527138822813674865282618615684815725766564583185212347827476545726451127277143334437235141464646877151744345578622512723838353657552215518234682823681883587551466287347831486547727873832474482111512814658374755321613547657765476367638636623345362483357614328543176815676627725154346227318261467638887335214416512328611273286638635157647175715584554243232415164541471885535752264257562423636651457523233417582827435644663844181512522433872248873226274175544255174326221812818282516671214336414783125226814888756425416646883443752148436586467277488258455768624724434174487826666248772327386445587162412368682326762813488184548445353488158247531687636346367323518744426146451538353184432838271732873244881858572557866758744476342666755727473585457143674188433618842234168888535315374453383568334447522277732837556562687821843154473311143743665882651523574578137355331312277767821168886342122444147647553436787784453684885716226851413613383248244521516276765466216544778768674115255771226638356662126613662272664817821354356633715576448637481887456453548727215423764787213368714458462853748382335412233528418541277371625321444574754173583524638234265684484758815171348551621514636855314756617815818732514531583375473855335184674267387427576562271133562272618683512143757211175788155341412472412512557145721381213716427553468226458823281231217555286658615384835787717726527134524256226312715441332671432314656742431661817253242178138331413146871553354236157265765767417668127774675288462887542127834467371725783478135222635534886414817871561567476155887447414254214118725873336713383214654145266634526761113748775653627288412145256744712753432863235652253433858388741636835632125356473326322242783525275424636837666167386577334683771431763266148313748263866886344147135127373321264277531231734838418817646634651765288213855155182648271443875628247238122323483653642673642321314776648577826758223152126844831427658317166652644825737428523521185173871253473445137576437656765174438141158461573436676522858563565276353888844246872311586158476182736672663184453374383515448215848226441418852748848886441122673214525556217483176672373485258531582147665275571724153167578513323434867485521553635842366386428338373228341166138583636335866568184826727535237787751458126333843411772542125811373188182335385535314264346513337517214343463175373481711221541462852353615861268415252274314417514438755328436176558773713824742881466167177382627555743242385145287862461755126773854844144357764331534228722256223673144268653143785223262184676641125412134147334523818115473724723323286587136147337835441423761158178617167772322212725834762877755782318676524682741183571365121351576522731358511511524556138764588246481436146774436882365227366786585615866654664358245337261446265413688322487738644847351412188338265287837661611785286314163153678285185432463248465755262247116682267621534528252637722635513773761217861473884264646726444782734455357156856463414276486735618241645412786581841125664427577558221741526846582614266367133557546227348881351471454782682543456274865534668466423862617568414788356778855753312265215852468847771438171366356441861222368253617726424557274588252364261182338771428835621746653856864638863726557547771464246212715768723664481852781746737544485867556781831623753816381211318463325664437585772638134715742478777311753218757637547177263227685486262288245565186715688511865472768674614832137714833751544758845461537181818641248282743877778125775645415366141635721168553432628352882185656438876654226535687338484384731268137463574736463866725812484117177484412782215282731132246317772527858214882511751751541342628867453831436556388842885626787454216216326843337332182461121756863381172742675574484336417578756253251115341465822851382616682176388166381434685787824675322428745452146656226452221375426538271622476252563875257785384157535663712584447415122716116467232467755562176723835112328166858686347762161328612878727671836873314751624355383442178757857525425851823454678181218744646455176362132836412177264158271583161486386471787665478544233287464514818544371646251112235115852478448188587253748526438141213826552467176812855417227728488481243856654322566723215843852487278464736334152638646212583413336241221414528357338621736277266551568671648341273742785261146388425151132625641671561754757255216473252324554683726413775672758586412618762231263823287733827444285823868288816268285645836447753822228284272568157523173424766267486865354217124543526425713428334122327445313367225866527566165534756316787282524126745357864224661886643153221388663214861181423228574456774763641626681785517778734875533877822841328865223862522516235273872635434131357512333251563147115345488888524442544568523583164654813858727728144281728647141276566638217156131215383764347456171443161846525246436428711342521632645738147632432761422143312844217687283132845138236837264338441365252155821138118313185587247232656528122731482387664733313126858622588448477324242531521883385253172575581123416565674474463885358226466575786228447882838385422414747412671358264658552147681411472332466283178222163845772422168368565285261742625621254366171166134528783746618847551856531347516664521765382275647648863186456771348185575714137887785754466755545442561226221566433817115386527153826887675443245446824523864646645342778431315558857368236316172272458158156522214532521752535358552266143481672642464526768815837241534461588361226377822878172556678226845748832358126865748813561247438683675766345132313364581512155884767442745358275563822643445814181582666367252718767888341511618468543831355583265662265373341854774267718138813546668884885171467852317321218133466465735441457818241162758363316814286487413214785753637351351847867614154132226663835737751555458885812412338112363545182127338277767575315362567778154365664673438876584777844478354677844413332836355634184538124552353751654843567716222332344656587641625766184472768613833868685521367845512638473443643616365874571465583732468624654824557753372424544586682363737886422714212351775832361414354213745633114346181271327135466746827456567858367354475757111355647558876448462856362457825157538155148383338273728654223438278274348374664373531416585847463377772316434763173234451844471675423641184446445624738831367183334365362375626288462332434744144266751887268755358552485745321316188157561523658561426112381332586562825736617335376143873872617424376751187531138431727772653451878232882652434876136761635672736658528774537122482167712465348571543187256655464647428356847416337216583255412835377211562878217827676668215167383671616584422871654122518265612871126666775833114573343321486684355128464536814127357341388624251468165128415427243173662644228732638142548286827772155386367852721322445164653232423812348111878127233488862245873344265145718761571878862156342543655236626654427126164345636451624316175612723632384335858312464761238665454426526645317737142125785433877435756138326276641528718342511111375157586264718536416112352833157233688473533183713513335284451774721354677683833754773368765558637663717663626117176478326442122755745367536886612115117723181876136654273863341442158532482555868581827375318421375245142216758328477865413812136326722847374272278576774275845566255426812331518363852135281347138346837236854482654554133764546267461354641175322473456634647134877111261875577673527356332131228688413586712535587823642423514274681148421243758556572481622236215375774518574186722552684474112388844151875175453525745781766163626128274772874845576655428125477651647123871362581233764475821453537816865688754544771735134761288856343563454577826618368753462436157125327445233511217778175385667468587312532553543326835552777584241842761125378372674816171718321472567661765758624622325116118727162887672736486737836343824815478568884747284776241762233371827542212575152145465422312641782543663587784887411828758123153824751218555842373144811818365233615683348533647648248746334553521158451821854728414345178132141156668761856318845141628278484485733625412218663374115814441546281162618585433436535285315856535318146882215227577166556153773423826683861487843655462774738166135481757484854236733522652565767427554361462851531868735842435273685733435522472437466837762856386535848262815155563852787181636881544432328484126828188658387183654716685545626464344311716575552117667288451664267658346865326427752341274826343778478245664463758183277231762728656377724851243217286518652744418734575866657168847218744187135625761344118473447267123272682134517617668524857372253147827726747574442113155874766732521863644212525773787353418643812567413721147283563865365747284852413351355742284186674865645247147878174358144451278675311481285658556648354768474327528555341515437213284541178577348865488526251177857372186515318363428341136781576871745416644331568563373833677155131677128142268726221114348144436482861774152541228836151845175484277262347212381283785548746356475218433753642631875231272727265652252444725547313833642884616738654865344767388657828777214587461526257514111666235173784321757776212837117132452858345746781347855625225187843138531212551574146378717316717267732542664488513332722528885778363474221651516586474245712351374222543375312622461842223427223584455458556728162726835844422632764178834673278456626721323573331634384322546248822618482326555385674723674385353223128851213617876325383328821238211255873823617186585534125215135617815364311616462875483663263444331537637615117366462747735175416265837464845432168328283361867584254617258312278211786133781521685263645573611387876671865877646224287613844168767233885573347131155585886853516336225444765238841451615462437127746881137521111726887182834616557843846615475256523187272628334728121451864486855754672511113575284231827434788365718621632188365784576886435368528276211175613757313612345548581175716864182376714162813266174782377635642848321437535547326316112834218368382815324575467785115268376873868158367425158885413688384872837841546478681541257483822476271532685181566682413723221125738753888115228757518857735547727764754461853888455826761432714646188233788747674873638437525671358378668541178244413316267736462166138851158568676877564416151866566532384857875571447458724826341863618115584728854668651658148286263244388472364712337118581518886311347375288531454832751726715213833668347261723216852111357578863345231524685173345223858713466687877618165341345556727315643178743214772322125267551387538734678181477266448656217817631318746653367854558222518486738561444776228814141158215625317324366424616617672474152583131557642373453271657482584753735451335468772288724561786278553167287441477257246311171767721186575326421346627357152117876555263412224824646448751652225461187115277365441242686728531246753633327745175666815273114278564443434378774456616232212521436857881388863365635424644583246512387186671113274782826443654171725384853621145474643876828376837563838887887416561765124142642258522212817717252314526821782173535643513871716613225714551357661722232436177644666314768712268831144844658483566387631372585477287273327236283728343871788317723317541453662128821325885885334655275227282354822121615762484836125643158355324535256748155218527143155847278548265425321837478351223327715736641752188753616388871328686331662627433418345662568357824624641713522563213641453184556535158747168323338663378385622171576561143842342365214231412326344667367638823221446721536655458523828487441637463122774256653362563128554683211413351762434432345326278226533344565343253565466888316817357572618211422458585354273543174733151572584748455181215151354714721875115285682286877471273524162625286412532457123756565784786138657864227151562724567627114417341746337632477321664243123461865845338277825627452575774186773444167543442673177335421888374574657213443512571111352316811868411322343661427435457257548642352181324241788388812636257633737634422716586533423646358232171521653814668832271541836726622443518818833885763484574835364517865423175432567577813312587856718427635834782651126126273767425327186351436367866678183446877468245861671816484268665618386114135583326476226313231616233844826442461177481286211741534875876381584663128784425515635673377827644766675354715853275651177841361356184521116388277454467323851182667728586283772536831763735484336118725415384153426468418857886664646847247258417254752657253826351152566178588311456522114185682764636185154583684156833332517454736536617756183518757752122727866226556343623131683567345524172613155678157122681816432688257387388767441212472142772557563888488362726716112715554725542817747441328588868241615674337287648144265732637343373527817483354237523785165886881322613552544134786746451515382383231553317412856542843561286186425231432878645465336384171771187662722571552667351156164248224172732175742864311266778881462546481385735133231717472147152875635452845214426217823783315413145377432858867675136123143551854257582746444367772248541485552536482543176118854667683748351114323243412128664247877852746854152175326584462553451242886358352558787224637574438221476712314567224645217134466884688336237341663136324224237886153152665151233513844133443312627578723128147158323725851252478844885787653565216458612423532183542221655578285741462511751648858147714152862522268121163614288264144426374235428121174154571267568571267387588417276587516623466381177816336336142361236558563252261627451651455558377833878763158727564335442664552352311883258741667687312268582426524221546436553888676588228357678112723132653643372517535157586563343545472723127768382814658176171312546428386144161722864867545345416715744258623715562555121544762152683727351687224141648361413227474753284834622725558472283515128262477871822164325331448411863588734588571756785177283241317263743382226853342746636641747264247434655142342233855237862657768623747418243133378562356482878826286617387381525442377835233675182722551446215728157521188466573622574387825486467778588483756787153442841455262841515225166656257263154168683546314575272523745632534642377512348387863684165617532683832388278178563717875413355232572316382288723654543754686875183231538625654185221413447746345345188636888368872638543426148343857521226723762811754712573427373732521312378448272262481717346388547247463873582625864612485231745561417465725184251337577656732387134772151321743475388755447346146224885634317543242124537452133622771144461135345254667271171422558668676678861582628146212741863415464122668684456456647528573888433514332261322627487746461328238585128712543672271662365314886753125613824372211263156257556318621786657176864586861655227525176223787663158285877524215626231641585433415124578147428687872143687312312811168648582126824685562417318461564238154336588758325233153868133123825427276153642854756224724735187545128782735827882673152412621142543238363654531657831242413213334324852224336368262253453361361763255373766184176867264217881676568114441727825662158265835658126883416288846471386218453637685885285521213521648338375244664368455674781153624526542662738822563732261333212553874221318767624816171724234351354646363328777255553625135527344477122123687523175414523745536575856234114525531747361511751277671153243685855515338158115221658332645615787828557451132323448172226774831733345251361482414412331865167247248635427564462713642718375767672552613235363424354512218485721675713282678187231352163862254728116322281151573665777645821112522221435212265288346121578671817721434112784414334616364337387247876887177574574125348478877467226523186442861147373237122555147458665121374158876756334456151416148522328671547821551166368475676647468147152551675748172881558288616617111835163317223472417883864381617762367485817223424778876872158735633168626217446515488777158532282214246757318158664348124664784172515777377288733356835483748817634823647134616817687884244615275536466366646844778368654781414867221527378678134157684678671244636784382726738312137282731825388634631823562252342751881173278713872843266473376457257333621587473646663417332847768668541665221545822727658744387325775722131254343135556412547831125656866552143452527237178842548122478131812244165785388254168646874554325516813287687668776642446553681241442456385133116448648385224318353285722185865621544571163284285215354524117341314527384224388826252364475315315324251647667636347245378726144546657482258682883477816544744367544443535212362325166481475813754768223448646464142351488175158445437347872585161715854428125666266562356225673638832443355578886553458667343375864178471117587328335818618534222636531612557856578766616366675517737887614168734311647364517265548415266241774282853658626233474421817338827486282526285777726855825415313113317251538123755147648876177175125811851552846422343787565874482642647451541853653113721325334218148572516588561736768567212582283652762286614653141114724641521782645464232267573341637768732527343785818235851845525163125733667523224734185151327721182375317631857137187511332171785173311764765645244862814678467145863121184337743811156214242515718271356675236523238825431287647665386135357861381843573318144761116776118866612766722758628716567222538475253188762523275252715387426162657853887728246358287724235548712263558312222524334113186356344161423423342563813861361516811313152864815228278475573511881582864762737141827533256276763833675233812623674237223837324664538252143371547637228213881436557438543546652282823631836648184747668528355235384357326872547527185127658363563585886671515864768342713715623578267413251756814847628865237285162523545577847138852454147463141888828434837737374585561427422216667318662512846465833132731647474812778518611346618528762733532132311767414415235784641521844126314176424735445825358117757766256522868453587256357835311244756278375376243637358742372166448137652241562734236212485212553235887673788848852548448868882211551335214768632885731384273161275728416571143218442576865868847535245754555842786541316551455265475132276348577213811356367552715478584834743331321345543117255783318352713735756782123121815144472427268448174431342541681315421337121665538633656521586377571228181256366348365824678477833554433525858251277448564572862334443784378861175785448767631551884731335833137266727361213855811184234677176462113545325522712827886465738576656667281722618851456281644667313666556545312267873588631686586568375615833256824848413442787422211641831342814157165378265876284727521512458464332521233611176268176736643585688541252582266883482132715625384245167277315581836618576227354447842668258325478628664853757888454587261718316845413564726315347463251837735278786653715545746584575638428647574328616727112726871514223683252548371858338577766574166315626442465232162771534888385885234767672385262445468857754844256511177314732533276232627278512823181537667481675868237645263432412251824631567165184825213156256878667622638345422861542443238536151837712632874136742886271738515314175825728788564353642331341567855217375365772227578323127732536724352845428312736665633126346527848784143833726178553862255726677337637832823627541583628766212835487357256284127764113678418262328845667176557131422476373311242636868665826381418346575872165235532555657483214188756842247437581416877473713268144415386738557685883742127115126134353833557827577522338211367142564734241848456218448136154835652212525575422718721428135275651561388543252843584333312581153276825761753127176216434353155344132578321682185463763217214447727672574343422664142433324665216871787228432214628458646721381555632551254342478132865343333188668581516627555434537732252262615554672843685818837622514721882456572675652313715344414575635476785864585426364817127472615854648836355584837388657513773165488178672847287824558171324337866572421371161832374352854476842585514533648638534858124568823143683253277157661123834157158423383364583164731733733345111818848235385582845685177117518361352745462582472522288586446141762856168237833285414168671455238382684523126146544657333447552256126545726527843377217112833657436776367126422625285513613645547826653222733662272512577852473335857876131156242383227118826341513461668642165862773571542873534731414148222717673117133871231571387483874232616176751244764582337134133122283856332826468728647421824736152816336588735723374185277331512788288847782843367676162762432367287178827123811455652588617845632145117868736442127864444318548353851614386132313686187284117841832612187687587423683418878454426573473328134576756764653667718236571418463526368555887834622334642482318257555462132435863185151365285787648386266811566433645772187376252247554352878332516741126845366247664786184873741222273847162443218285881148438147236536118744135651841812542422245564234228382833124675586647533145567156583745223547787437272246681263822263344668245874762646873118857734168512225471863147445713717672755323514743436712352583748364548777117248282548444581474121445471857662652423856166122438541758744527748657853356835664638614657676457483355287571154487164485864526335422511125227436743273568887286735553664753586361665527267186436182828414661457174345268547842511418811173278157278413323217838145836622138612481136358676268134384165745413622624121884612372622775338876247866477546164887635814116682362668473236511551434172182437552735333623871116748727824766588362762234287268743722273656866781676756846663527566781226468255224866551833355622166145483117586643865668152281467762377547814667665348715635742575418224622147872262128383463281737451528681257334346265263283843677446863887781321814271281155321731127326782781541165245841178122738532817286727822415651364736625648488275567126234668482843211444372868283585827355882275163226312468875245643338737513726235526753357848421443373713782264623467418884812853357547586614673888488175266127344164871352386682211215483785576681247241868514731512157136655832513126171681763884616515742181252268757476551441821267752567654737778337174738471465827671543516454177743772436244635414225472276572132876221834364561872231818364434332144284281553327532217135245577458734754471712633443335541665211151532678636856761214424177317371183257787251746823135231857455451444733358348112462582347148282386641642266234162286321735412647867613838253266373675464115735233161153648852366535662142382875782854324776813523756831756114388255246525872311275848535385332314427846441362386841518135367255517482616788635378148618285627267674842231718485885832842174517165521344481131536688841247265167526557656321378827528581826233142466248862565547185515567376652788218663821241816153671125447626214776135748515228546357888632818854536277638856761216753672573435757245178661327444621157813825468283751424456387736432381572728644181638275762224755154172851485861644527652871155237515482542614437558135371846268188515456286646482262488182677376846478765535752137264768817485675181677282676545468713763218777354138747673886541481734255231636745681554454224761543128318138311861583648226313364636263765716551521881468288182425747185362127146785448358334275756335752631115474125856451877221758382224385448517261523562171132662781378431451866135457253836188847873586683486255381273265752745211565885731526243832245481334852577764457478758748538178762853272565167775332813865571456228534487885741134285552716447241783317114354327644861111352233213213811112534465557538331254431352328388242345787657341365615746668564457383873417243876426667432175431338524525118183712267527626236858876345755464314532374223445717316682243476826448364456667817745264185341188613436863515116756374448171248278588376284414156452715471185171518233723258332666426155752338856768227111613761527884166266752415184465535728547434542235767627884441584273784347687526164713482732752835822346675244856417643573437682778171357562864464714733176513652338352228172425553845821361516618332513121838472345844861687167567778186748444677847382151564371268674438161418883737584647276863436848553584283433387433747281444745451421745745645555848455561511256285745421682726477823536587673488543272827218546335488125473488344362434341264564264772381646661114857148663288516652881634357165531812577754774256315167254157577334488844373414114317784286521144558444533768848466246333852866178888443386272785326511886258457153157153647536724575632846858462737238164533215338583654121123383673658717685888855231637411436611145523453142617236856767727457423671886867137557741477865666278123228515477841624633225658167876868735434825854886715442145414267652351411582882678873274482427371175236772172825771765715156875854273437646485671627317711287454468663543848127255846333421855118846886842858344588238261253433326873537431321571163876618542731288253652351415522575343864157236727671526556678533124412473266554173131754432171458811615132344753765842352126732778458853754348572762867766428587444416473773432615862315846863423733148836345113368286681157486436711383587264281626443557854683334134488766875657412724325352645157154112616378678552548272445522184585332636584226342866167688478885137351826437633576281826834474883428566278658616386184657216565763336114676544343543128885518656185383731172423576775441682237434631823682843757543646473655114477545714655541462312141325783247682243615768863113317885535558334515475857521781227576211663282323756121772531648487777514731632614476431374154161418368427551437876378373488852113545157874636231455851358845125136642111441753514766713754865235811771485467475553241485778113258314143355664326237246472458472162443638315414226847653587413616541764782132424715541586126446187774821281132478514364875676455741313182782816866184457636332523523878757525372687131554284112463437364733332181561526623183331331237267516776518568336535524354337225572326676333232452124246646538686575348843826762148161435148827376467432624117863578682313255558816648578155443757636554841115185336174851411776311622125125282434133274834678368132838417686846415331784857854554347355235575826226315616262324744341738887546758276324136837318781444448863228737236518888438366421432475616686216736426355853552315221682126484243872376877881187328458266616182146264537424284185187524342622735458513321736335582451475617486112628657411111321535371712256834776448278258852171217346163733211544458442143811837723538472688323455486256547341113423151386287234438155766312422451752751546138471855218831142874826218833333331332458112125871133621573512882574486316525761763215733688848116226554875163126486661641632212581816315817788447215831511687544645442518477887775178136765336687712628657254113516276723843378665537564845343364552311365284166636444437768183127848146523635355168173528485417388881223473175547156375884544161628437342548752633162561674257731731264485177221527331468542134665682232341227875615322376178543173863213875663811543636441162441346534828245146286131742518721455874345256467746556382242774738824427638445221562357178357717311447277623314837754567468228556381164846243585177112748431485222735375688825234131325364473652421828277741461473572115414466374345351731577582845216627762161511286766871348284612444887614454441727413546255533445784664616751883341554876215546635153588872132466472546856271741155872868743175381224761487243245448616582556782771357166886722163838658471751144141547813685787681623261325125588551142416545322481424425637374818128721472614528557861233532828576538566614656618562545514413452174137357784162575721171577831617667561311423348731534253642712275682483141265124664288164811785435535848153232688164647644721464584247721738165533684564616621775281642722427846826461882363817486257381148443234547386121122732244134144574864337767566577436352354435771337636221164688112737531664258343673414427743624864437465587172827257656141473531178586643446448261686312425468136655436347643555632137738433346612321515478332562344224756282458356427822552465518631176483515241478847168316744664443183121584348833616387677215645825786743847737767487863648821468627818383143431376768644682345317617634685137635368843168863481336715762435214412462465352217282568252385523633778523244862552628384581628173351877763365522658545685766735637733628522268844868215688133215845813735153823261677326226144618386638732113226775676465761216215435128288216782166463156644424564276663343838715448422285385652735218483453333554583778117541431616555882782256373356236177626787411116876168467688113466325682512523267441174723438374165644754763651411218557582535818443418576542258366382157817258151161135388222615335411866748455268238437846216646854827382217421814846447127488772843638851367467753184755452886781654626341273137113455687557236818171772486715266562747653475763771524664141567285145711228462626365782282335652256714826423382827464351273455547777246575524673281622418442562341744288747825344163274724671883566655616417117212188562511655828685736473843723838873843578247214456711185466436314555828414882346626786831371826863231161531651488767127646784587711424543368374356728681871488737575841863562883674614317317181447118682158755128551656586355181556486662344723744428164766463237747274115557412841556111644534475884112536866267721271322464872447548668136448781725846182241454825547411122882673867444565262358411322478648724277633748333258286884133157646125554738437623348638218275815374538618318151441121682215666864336183531435241228377115643311641811358368584612217624378318138138622558224555446224612248743312863285714335461752227442376323421418177411154638456367565787285846844352853333878672437627217788443468332662825583716365182431132474877244814553818236683825528754322186283258218223558721162124415375661183113632547435538687147343418517765744658117621651552185332343781841416824755882614478518713248844642848385571422728376867357818364465414538667511217882383274261274671743676587225164863252635353772735211828347712868384127651885777865157657185283727886438128687584666588188384534124456365282827181448415834457735767182622773252213211783815347634411668716738556546583548274554764737768248271735171445421572857112875416374436642642854117863674568125721754584438622672568514561468621783822364832116824865137145523613584687777854656724824687851276133512141743278826827384748553266584687478764356827423787451746286533146123245713524561325456745254468736747137451716815227782114521111682582433174442623413213632382166323436482742674175813832162347667166326457335788871271183776624127755162581141635323337613144223887561426482254383335163177258456773572381116212532247212827538214233462241561631514332281554242335547453276755813113872114187227342887765457115422316266576165711155443184555164712528876248781785148324761147184246141432412142353842475285565171361113321582323377473817224783788486485414313642441611538118157813353763384655768511224282186554775732237351714454573512772283577221141835516152166487672452725217317867538231144774228455284424712317237741521115284688216314382588122783545323532881577278325535443683144365524714768346875138648878888336454832375818364763416465851841285675573161683641181487888644454532141153771155251858725488745884165771755731853628652787477834112686437872673545261821654227638454187553671142255356388411341875452774252733625742246287387843558417728667118571415122516117453463712475845564674753674374736238211125516654777364332638723115173275412144423326346471157165543637767668171163313811526428853822758325233381226527671888554542737651838335847666544311365621518435425127578426666767881438288238347728376275858315682614528218641482436742314284354484533214275834133477665144576683755166254344726264682716822371656241823156415227347184676722677868121336647756657556682441317712663766231523754361648842862448576823232351212537352843111842868251261162142211686887387873648651374477243438288757374133116538363777682511521465881361366581534528347215326361525233256825645287128518131433443165851548728487816726436168273476572313281141587871373887515524268185465545365168187284812463556165668774417524284668136344568263418187288127434587211582827515553432852451863871661426578148282485681543586582558361837438454664738658868327574467251671522858848814867711524632414172781176541447585362181434235318187753477282142244444254574764641533871758661444858161435763844867332167511645246644443181372744244441716842122753216213347483576827564357221465645165486782148417764385774431155267467753634344632137315655432524462214277662242824445677726877482323416264157726332485767533443231276751866455247884577837832755568325478734315781317717567451626645254133263628711377615552528841466448733751412231612223132626738171123868118838885674146728588217266233114683253737282874581526881521837166488337757123133674144765734537846445322128383362343628852175745181622581481723554485472658714473221161278727764223737581541557468572358241624113185542565227662288122112774882351722635726671861577648837823228856126517843638376227711568577464743564337317316627485322366174165378473828618167526655842518523727662524584152771243736857676558882253578772638653143315763485885717265711871556521551134148647728613744417561222873656651682571216142583126134278244776552365476787127138387773614753127351858235187466356732163518426228814884581144438718873341778561567537656426751487186186142115222872426755516256153458133841428383535712322143415742422625465314626213125288231772624756213641123611612381821668831126636667665615763868651776676477117474827587762737688367683346727332721248873252582524451385833465314334883215464283388434587814433535135323526115145175145882145355565653125483886262763833233438845222571228478713158843333565538756615774683371545546578714826513348527856885826242785542834682525534831686787218358413613732848363653482176554441887835217168185832872675411555351244631134184654442575786552683714843626183255565384864588467445786267446457865514167126133534722484827351227364431841648663741881158771762388318483254181472537343272337554164614836816641811684723823435522673142443614764741822864277785853836767247224365363551644124571873356142851176221443216315663432354157721778317352533861444743578842433472118741664651752735288641888817718658735287843183318874548538416848822117888767768654778648348131827737474348725787875728344324475235661812754131784445166165414686831187263263822325583881417574834813686613112283453448258524867154113661742857363224136684152454861817172864662844153732314158522518176861443317311653551862528476355643353674122246113258826822656372326542858234512477875676718216334588751448881185473156685315818467811654628388847718548661361274672614775722665252176654476262635776855543671762741415521847117655152563516351534242484457865686813636883378833456253568162532378252527846441442767285657827716613724665326852745321556455283558712868266738611748884311888352213156573353884874744371131652742754412514711287647773885527613554182222387474828657114262148354364552352286674621282324478472827838265185331768754572181517786258235712831517553526736853432153843224374412726175464761163875878387485715887363521853861837432457754344581186444146113113425327684284324331645115713771172311156536868188638841277535511417223836583268643633447767425245156456776753433656686274683223688111774161413748175761831748177678734846884834513788842632341715347613467767378235778542743521142822738612211128517538523464468527411347564266114556474777834554184285642235415557763821711832342427858762478682248441527516712648245287133852276627438887647473413523172347233511354311664578478746645846461431453753736854583444725821634663425667657413568464545114663681147674146844266723264432417744448866476662155716771828136561825718227572454835374863865623722178851415351711145432388857816611666324845686316846176543183668785133474544852543316861846714344553552823177347538283876637738774236135413714657346632362144583113473674164415748218436317763644142328472588163181613181467617773875533472385362387687412873651715837863717411331166817185146777461364241151774881347154267743371473483568543617433388612366582285445758471651281278126843263478834271725751546551233734751755725214773465178385475758221883565756845247423852211773664433786143644827361555473421454787734548578832764426661873627164514134572164222331683452321783754224662775864766782737535515581817865221473456215175437158217315168372188443123281744511231827234138785418667887632782712563153255712343878648523317256361675886247463657633254272686384868424247685837362586162337627721633257623266113838345245867445178181727742513566457667735246744653412372513436233516478661342776723848285248432458154631635724253556144634276428425457571668754166471724337678677228547325286364122713716661318627642561651386658515575228318747612535552257881446662273761424343212427648118721576661654466582767121441427818526351182447284842648354463334782277376187816462233765377661628544432742548845635628223551688353686737657248473842528774554478714284538324352523464353725758411785844776217131367761727814842581174238751621424852543311482516222645586238771336186136262373612836453176652652851668843241512682116825377128275817713186756684754553677275264354243422764233575547572366774818481617874884313533371274862358854575473567165388574312684586152521635678542771685686533158664583636781645533358785248445867433756145266786727466182182388713154468683142681547356133358881765318745748627632523835227266844542485866537312221218632225811831238483245643424543573384772545635335541771123274282432826732881424144633714738247441218772677326732384534623583437227663511448127314626675145145836464632465843733715341721822474727851154524817854278251853266348142754275665237645532223288734434521887532744524234822832525865486173512676615774746131388542151335575711277323717527223764866168336577662184472714683661164641661884451331665555685858565616738438841664612854223478342768153163154271557323742676216154165873274553375127153831221836438626811143461648524423215884517166736517712873484532813188228133312622413351516825226286128672877248156377135337825634113867735546222746321851643273378376628271552413244338451377376312863556663424735227231837752243815867685643726345734736368554455158488138312513743335628275371453313862813131415615737452871632663558716228731456818354523252488651332811781416764786814731138562684552342458135165666245348813643267417241224632864577771436617125523117125555352361727752237118627838447684375128211653475382824676232166185514271223131625814143762868664781828686818642218313671843466726824471237788678526542385542321662726516846812538274371544443568412157353853763387485426756663414576128462428655282633875652681727438433364218628753751373248276186648832152181142823622113537317837782616616661468737518553358143812272448766473463283745142623813786617574333335654645326157325381162738827752424585673187738138132871763355556873452752281211673862624646263837868121711527652627486857664536121888178712267441845546364484183282656647562812686227855185262456323157511611566358221376413644376653111241814215177715453427823354365376836153631122337645414311736851621836388367516867267618357821673743468185426773687234658537515546753758161624654433816528345561255587482134516641611368764437453568165378418241267812457581385332335864772482275665771636666885788475531641437811284857281481171825275218728671365757377484482271454872564288785477365711728117743817235242131245873221213274525515487518672416161878116871442813117568513428676474352658654811821644351382331874176247224262228883188125858513112432241333445312411378564175453285426118441871287825748847243468162462463168247616381872615652638432366678264845631328455187851564767483425526648678324881683348326223134645316844776862882835854243115536737528867231481678232325533786566128872315424177162281424418756454328258667675248434246586568712814726453286428333714263876434674662374368627326257574538273542575728726784525332155218223144883445434628147666433143532845432745845326336154716672144744147227423624416278258887682772346735563444845223115654481374168722835375746855835212327825438866761885138732885563385253386853311385568247344551456542847534561566784614515151653426521431586221888366486857634165483186243564638233777244823376575885326541514286542355423657316563252725843163484581737164561834311488153426462721451334381173571326282111416555382481781515523542352237278544771575635742384528442535123873837875254688884826757677278144136785127547216388145413377352362157565181871316772138827714847743566273831662428228116884848331644132325457288767478147518237763266317518138673422385625515172418115523425151383178657877485383283425634838137836768624168658175836468867767361627358653687264653811857412214876617342361784728226818621787885333264852616188162458376166725148233527485714762626525327661372284426133528166734253454322146233475145316363553637871112873666814275675178111374763851145122668754332885516514187143127525483168417354814531848441623272381314241673161273277878822846676414787533785714717686258418663411456318255416473817633231714122756454135575881272112132163151233877887545731558421531787613436781281111354416357477126784117476562278365313614212811381667265728617534732687217185272857662824842374456586314778417551124373437565617126314653688225324427727544712218841873822848142278637453543361322128372132145731754368538863652853551354535224866384856521476548851683746127212811353624668828775824868537458515342568143682646247382255566437128872853783157647277864431741343717158348344115884371788563264144721715746814453581238253465871137725368626133377112627132571373732335883586525382254153772775758682241515854454578672831628362336122142634241268234486264661751558634564177714674638413578534381331746852687766845846285138234763717481531473174567854123636123181846818547816341732214266745744415182153514834874664182545126266466547815188146523188243422187732163523127883341341761263378752667131338285271815887665661556428838627544123721375718876832564254726646125857872223226718133224313864332886382164485643623515635178128367186211215778722162612871787624284514532261212825255824861613727265334527238387411162257287268554256625487434842847133428282757274542252651145336615147534728616737828745726321677353623112148473871725116617464268132438518247412573681132865852861771382323653567816826774871174722852143125338226578226322875467553437435537556212784225324827643673133646282578658147365624588537546862557513475858486638245187527765636247455122851323716113721317446252863265347836826324666454287861167472675435233752284588825413476281357567172454558818566216552771872737313415431187544335657732428368786284616422373476542372234726715282553815188416752655735827554773888276466313755531274663478826873862514812877411227651855427626861732288474784813347181642211516556342276366626622431254143151475118384136367138847861242447485563268547264677368735848751555723735758646222548538684365481678563214268851212632516534241814767777362266844767887356342387775561457641111587844461212812776823128481161278671224885685761162434861573662431428818167311324233371845322452473368842673472562881585724866674677263481445652842566648212775223131346886533473241822583666357357853528233571882588717675462814485757742688445611542126664531876258813767323741862773526668423245616578427418466544562238767252778147681536248751827117682463351335281721434416265846412548742874253215827156743343674785776844326316817711154885353318777247541761252888514661383374338643466554366136883135252251573447455217284814318223788614637167524785525675112181441827881757626613325483611521525276172127546823215622672418157575844752223515873224378286113826272254445413581873167673453623141862466826873546544878322654554657852221814834675674625542513145431322378472811574813266325388718512748343534277648852354771337388138624167153823775162156758345344276341656545878446337863516638723217863533787313835478681131628148434456712642612825875868637587547874231152828121615852532347252826118725625586533725844768542313173655823442664143316671312442411772141872257237228554584614855511464258342162853518855182454121627744644751816853828127334412561342325761567731223681384644482273372857871463472421546571686712741833681444653851615333183441534384534664146812738363348374314443785833414661813846741765756211246446643726717252743578262882616147672633311186847215783147875376122384381116762258734618466685363463467267842736316643658825242555412288671534251435751458133875473362241863377136278831784787416641732427426886621513383638578818783812758248466587823866782783437338214184642481748835325451663516124283663563257217735872118155647757731273118478333736617311844331618727234643365325685526362711472421738864867418678386124765813722462438523834817534215688751718145365877272272632123357231871785177646154348227481325728714878157527284325813743734325713251233581471472873353233634822314124378177132881282222475543443715718727226426115386242663164355515277615327635734214171447748851375643345614264574178683534231865138424582127143541281214624366775737774553137388467187126454248778334788183577432382713457548576411575452418828118878782653371582545767867856737433122244443218331513311883543872373474885815518551851526847746132178247715326878834553826717211424138815217782653778276526344355755423631421342531117751251576737431483512243465473235841118388212742283827261468787352428128845728115163486584141845244146511278756353317857162153337718445254785482327274687558773531234626786412214128277841588827632271555266383465471741881453326111156633867361418561651312584855866211264581618325371876213318452742755321382384428177468655367442334756862651288667221656373687832474641573652338647724113472842646221777711813574323434647583464145718376344682782114465375227533763411732367247344452556138857832242172215185521823777152847447438687425171688462415822275636165685423677717651552243332552765435543462322654618874713137265674735778862236566134222422387435575758745835241553134865665567785147822264488451431774452575831234876761376882631625222145247331425118617356286367856622332234864231117543252545316667812774847352162772764628725483351537623417212151333355837577813832454664272886676122612268826818222287466335814363113226267535527743341864232324534523388153661142465538657451828461661365313424537147514425413116243861217215358233681113351631412718585326848422781552853522353414153351612551616462327365462722884828681843873688537821537375364633382443347677236178132531153283532746767512131738418553335352515355638458532622252274167664524126275772745663455478856478741813536775156281246671635864825616635824576265875524356851112348878266235827116335751222783124162578318451337567221383477581866222728755875413224321268174777465346333476177166257272756234846377176822388256562486263753827343141718648625878775567554716332623661334383451345482354714244865818142237434235775126414524172372275157817132611772578546115243436643213122278253172145743364376116327228213188413616747772368866668157867874475725261155873536363277542135544132357128216261784662282312856838252628546364118443353153315817521673314146424137124336357827466411432443754326228257844645448658753614888371688321265245441372867845382818668567655845576375543843571661614351612386521326731735771723444861846743251273535674768821352657318553775814854172565223845171867434478178161445318521762466233663722625328834561488275183673641682461188683126733641356371552522468245115173766111782131153272135815423632164641371544328317126617326575478413347367461487768236625843557418433736663478235745167563527435364346674122584245653221447871174477253321271682836315828414512821512743562517716217368221547416126367622743571387234223743271783238186332381486768851384321468658264667784413156652452571523258142515152452467718144783552467148758452564477757753318534777347231766521127714676514464422842655787151753643767228332673434666255132774647672564486622665632324823761342716533137451236416617661647747575348222627737264714331412845461155573424867372722752862123361136341588175521668544717676673382626463447186133554615443212141317652155752521576846451747513518172346538641455156468244865712511644853784631215553564537727868688785174244335587415545426371741728184225618364772345543242335874574162543245224124365658742146285262483713485483531162126886513738577524831466435112313663338663287146248243482862288255157122111762276666113868288172687216117255341623124317276752681177675257352823382327223458677485234346132232261868771233651281763814214484576373237711272817855813831135484272211872568756627868237742447736616782554381837472465846282541312551723818817546753116685451577348177168835656337338857213827352335133623358857776443368522343245627686672544133763156177778284433367545561878756228437365882883278841214358244533475868554424683387124211132445783856868412442736318335138341771772237248358433224623335861817553773383737747736718212457426842871226281641484271656813421125811687374848158463218788712728176643562163878473713478151722475251216811367274134468332413251735753251343762871374726124846181442333437622515683172354755435265368613441687234232334418852164662337548374157566461717368243671413834763347682118646471484732461463816282637837712126126518446188156766645438776674466123534811725258428133576852357656825126167541588587426717113565337745548864838545466147725773416856562168238171526387768454352656464266258654676125767461716862667782476458577286464866857322155535773287256145678735437821636275634641525826152614824765448734363734455115422547148476136561513856812513122763666372571817538874574432414581824223167264887576511154782821678251167471838354615676763822178152738573346872448666858322588262145811314512422475167161388865771446166487348243656534533276665468173777327733164724746752584132615874463255532661152443212672542215243435647522377438656574645722143455621167366716747116476638448745124132527815548158354183133614225585324711335846578547858876484628751212185578844867451327654176133223322576247514156157521184717671573446252872173755227233664232281231753621738762484773228543432244236584544236365454662585747653742212633625428854187244418332313523653821252124288671236661882211245216728677266634727581546437442832411175753533674433457781512461312876558727276585512377417315313211456414328545212116746344574865626857141681272472133464522177245811612477555361141176415628233381262318732457163277437556531568573674353567375358182554274242786762764221825246126878117582347625718271873464276541246656586428615581378582578811831666133635382521545152376877847174443626713152725837236821314178273225513768646746538872828186162384541787328111764658521435833138578235156567514646588348848843767681253876647762227623616588832311483751282867786638185452825242857713822675561834711125263484341137828657311861121127325652746748317373664762768542163615571232152871326381244268176423541564678534626153144527233432786723856521177371354426338648837578561323876771826154654328262685343441335873132633767366353238724654474872851184477874516688231563677146747827132438556273116721787653846715267461123341621363347124314654267665747667741566752338731365478853486854717451213836876613827711218512848484211561767515786343334374238647155767722662221552874372452335717871733815787518614233145847525873123378857418475865731424863437431665531167663258418421564827621384726571457441177888155414246872438787411244818618261722816581314343781724262232658416683813121444433412517772623251828826877828468466533362233558517215584153185583753288368332742527774875242412756673561268341263651224438566628176311186532545826587647355633547744714566637278815436262435755235626173313187647877514754888228752225423432263662478561837545181318422762554871675218882723832623632774648284838528428257456635558417867844143855853578131751173133421872145442884852432514263472474247343873633285147254542485611635268224464441544356472626857121644356363414467561225356142821672174471427732587325747328271356464762511474511842233825838664367434275884442425335237482427852354778168171282725445842183575611757752466485643743447346562218752336541775358341644145412578254384617386788428541854281128882137555174468327732883428577147241565161217216888645676612515181126331247834328754438115823532613113627271518582534212611153778246277583653267387418675677663356175432764651256187562111534766531774836458174744286414266211754818162414372456443744236644681756753668157883344637622173538214751774758528541864446222464452543577663624565328763152857363224242815366481538462446548145157472348832267887734545365368572386131623711686436581786371338527837855346175675314144372475817417281722188654742325651558256514133172271623214835561336828541141814728551737826444264522575346816385841181783213638782816287888287371158115326655331287427364253687664471873215417524433766353237165118764255685224527512286425882213178462511723342783528831481616672225355434434324533132261212568787388513846464487316574362238664263231474787714341155283312775883872876165616641443132838274461664533348866242783255854542678622245275733523613877271211468117883416678637167835441431567248134845514244141734164276342635337678348364764526831348741828118577472178122564837168618351367376181317721137221584152187781528278815656721588357453538317455844532116445165811743785385717468428588812467868618855275463368727774464577461832584218352647336111244352188258117476822153575252373618775382887716188312531753856874832167337717524212335167834633722135727365624235435132835865746126655282731243453836776178334842367584666757711163422686621274117856811246624781118377611687185442247862331616473471352821686342135528718546785281275174723447326778336371838145134333664175514852482125278773465584762741167554488568776632837274637518275886813858714276441855387745654221521773464482282874573454128117238264522861655824137468747428287875333286732488483336371787677565665142635441471671468244673185663164217442586334431825473683338332623267873615126717456485688228152364763634115683484634863851456563146376477513753873478364471646116444148768152158357252358328581832136174655767781275366866835184385513168315682675823318818467687254437428584332881822727732282164224825742874241233171523648526184186646545635644528631612238748324648418532214332285736648531237563264226414433613282536276766633118137437577747734176652144423684316856414255647643175741387637764126756368414377242736466888662873565858881384778628435622255443465667657653611368222344466872828253125442427215123327464232171665864478326237316617422544528576848354775555853634245315457872532237622834181453434134366632574714245435844646881458486728874122545284357728177774638822866877748128551187815574824522478177527521142717668324476747883561828742422613161183112373842287756742554781787764744578733618185746518657647531864138872318828211851736266125173272176877768486448287524275758167843636471135641656427535271254558578287216742564275545228785356765685273836681268333542512683471151335537867542544486626785711822515255122473586616365622882853221733885138455126424672747133125254444626333712444578763332611775336658172832273212144873214882471756622524418428284583878368277358687721857888825144847842738352826688482252748341441285477878762547484278858881181181335684666572886114811415562342141628653471361661132748163387413461123351454427287162147367775683411746557868778383466364128678588278432387343768125413571545465851613738538526484145884645358824875855577585744325574155376748343585153468153582648221415181631841452418362321452868171651671475286483821128755528536267836841158767636745677241253448338534616344726286632552534448143152233524885322655717137577472467647518868557433821383121838762316164137644286574571887651314531844126752261574113667534354664738837523636685756233173115243575168731761585772411467475858214422162657667853158263611283774333238362745586413478626416655774114682572282847753584212476625232357475682446317527637842524683536864581742132854384275116546558253678658833785735714322635382874713775738174327815813176373261651545274657281577277456774267731552678755664433226632126184874681764721854417385667568378443418573135622237526251616632242282146416645454326887168383223882713524747381428778645545553853288457482812143131585756112154364775632772156835675836543448736722141838115457133526736262224513667757344571848317552378181227552884337473177664571327384115437376678234447211638367256257466285534244584172225257534325763557212225642141828411364383866282667781221382174834636753155745822361178177276241318875257737381234833716622346163537154515344133426486265365633683568628751353671821534736481438655387878515533632751734541574255744232288453472524514637686767328742637531737651127541476653255115365177767513622565574846258456153537815765213821544637151113668622578635723224768213625782268117823785147325418388362411334281552487182583131835657768587577581448228845848622275127847753373337316871262143826125878732168168468137242325314675271724186613546228511782837356544633113638681473843828217634358428628658587536581488378241265124853528535158318125853636341523824342752427855566133382686748637137814223827462842271826681361643441528421334227385187734421575585327255857366165462221253376413634221712338845278152274162478757378836265736124126781864713675571274766448127125465237518547785571866367848657353465383326783152124422215766663826245446223525384735615788556524735478757776475457185364886228617253718673381443812435775517167851211665164774162814558778573138128784866115572671785761487787661328323633842275734112156786661352853232226312545153855514747764166145865365536682177515188875858523271614726586412863448834528147452282541356666551714413732415257846787881537874831866846256738633113488522315667332133747282131332367281326571473383644254356385288117111465474421674288283487627675246383437441425512272437815734858544557418521667885618465616187658175532443526373858465746126877776838272531827271283736438676562235753663652245754217521478713633277242273387841157728534174143362755563868423488366771357328653788153115847356771235351783735722683513264651115737351118153231386523648665776855752758464477274416766744877374726663665771554515878528677413551334251435471521215134682448485284511353468531316468537648375864472167421141631476336862716363661574386187652758288843634421654422816325187334811565834876622153824623337722778582675248421333622674174522616255431515544376315371647618536222421571613111446862113441188622534658428681341644814357334313155272183628654434781876325615177613722774736236222311647278474244183867341621813241211188637128327571171148741135723828453831728277846127188112373332277146278713657868638515641633817322111687621416176587267241282631886533184112415155748328138717854676846826256338873415415882444712563235416748787747845284438425638622252515575335681316321257487351543383617746475113644431276623633668881472238736266316184663613866836675787447121447157282552525228743133433282833745364478332528464763723712185346878377877731676731713183858584782786245635381644772246243253517474268432637612175851672156823731224724886653442734787664852311182564853285518473468335387238237175242567777436668368417371214878283426785634362287715634741718735236413865468255635387337128517271537715418384763153756355373682742637847747782286243575763148334164724465254841635658246557447554616741335626466538544865771312662143145314621174185452615435663564447145413222527734514214732688711214722241868348615776358585165783331222368711646385836846121665858677764452136756855316625643838456244375557334585223572215415442146272636326372854827138646372455748823312545782781688364853615278236137742432361316831385263651331118784634531352821156348524347325864434747561663447738786327628315425811367412622285172763211287441187134472328238614756766556417216871184226736764725263527335646411215387566721263475634226787115776462785577361317747356613278654182872516848161552144774652684254157768434416258333766743673267261156561661353283236877855233625371744412516533553211113376514242826363184424648156733152378754143346353781234617476743577463535438251136226386181745754216236678355165346172457282747755267813717814418764118588663227443833261166276764242251684126526728733716575758348255234612854632272237876238154666756886282222116238133645527552247734223812212485484628846783173436745742838774474823423218467622163246116885111482414422327756534725236883113128328751888445787771411668876887731663438373433827624782448147536264517412655646128554618261638445863313544628127831167685654265452653117275284657634584626113655531587423687151883327476657684743413811231143183881785532186547575773855836786685745368264485344777271434121458841243726865456542835735247773444437675462677881188663353617648773226731188545554287471421241738742534588254676783381842636615351118238241367524714814733164618426338811814465523863843331451117687385885418551727728722757564114833537735652318751633474241321614624513138766742562421811142768732857222714145363112763533411481345167827428625583768632648677663375174575144313558428353237664658233647853378512211245134781853546577434367888121184313783555816264164417886717567514841385452165272678447135578845418135641554178814818472586487618328843685763631121628877384722648213538213146725877432867418264254273284267728364727171482314481418775388671367656521258356715526411581554557134342464166724475685752517833783736631217578177654888148443487741121211865563185474358118855788716527371413423837151631323882447211685646185857761713545434368255822486753358282743263615738325817723485481376252277415678676743324361826615482315723377726461713836684462872668847276124461527417264361534352853746128556364624417784546641545725527238536885412852172446461522248863823323738175873134631487222278266418357336725734214844622541124764616588872464551111143383315687734454143256327175788625153388232574157161662238618547758148853286282665613522573114778742344523848216753615838816371835138587453171635613255755541541724748685581333411785867283243735268215451551817576261848861251446433675781551315538683341362122735758488441542211136431133832264345875531654742511243726268343476142582357412552643131317818224877717848471312246415246634525513454744788428338541732152414862866357786615385255837734872344217431375626215387881461435235645285221782168618164777822144675812521585413441343782683464513183342367528728521511636643283118411287145584546554234787767875575515126346686413435772647283742413511884561862312586426845328426343143268255883723162665854885386511823418615147152284481756176416215516573757331526655617823664871547756248667488155376275217513353218581136873854282566187827711282241224517713828266442288676686571282328268257132472312265815558378276183615277883228813214336321718518646252621833883268388832122848413775856826813288728728576371827716458756524484473134548346135783237611432867876376447333643382261617421364233566267817777163866137776624687141467728513327311174867586666132264126643675173186144663836541436515731284463362145112412133742252745751357281112623521411372586761823618438245464485235351171723525882885475633147667851637621672737186633865776618462435367832225534154311485255783186383683762831116434243657813363683652615768868377613834435738257171852448113631462422761143835434586431846266323255312163165665624367427745473765853758263638218312724387543878175352875817815486577613256515278475271667234444612233545366442471617642132575853265226323657713868414326464666853232863738321514524543381423125117754214136784725366562214273643234345625165243431156374467713675215444821145445152455512448626814218667377873184216766676525812373828644412427835577745266754153844518838861321567421146788284255523175648441485314315644231346765261342872677727725441864688172358158223172861458854611176645767471362361233365761337813636774628322528242535622442348523866435124275788623354215186825822631283521716648571751466165654787876815173657372457184462133478836326885766554781266623436741334153422815331766784153462646748752281346878656412413428681465121835831684351556664625684787355845518334755477245273758837321872212132275733514783247136545314422382518148115455661241551776888134352356734468613383455181781411785177361775346375676283173128168366211847448167342632135817874427785875731417287161231481777381768854517644124821611741735635378864482725237686466247237457565428567717311731436651231173418152674252852145648171714778225687555862764137318767755848422157424177861341766444388551558335273272834637622362767623748668886362135288167754137761221657543831111531283878183771557684157457237372861358254242784634136548332726823618322712687221384155858611418648248328554446563634881751586537452488352465678122517283851313128758451686765734675464456473444386742817384546812417521725766886671447345388645853374456513288754514288634288772788282552567428871388833348887763653527362174168665337368227685837258653731717642374666655233623227143433513846741827343856785123786786624877663621244516773884241571252551273425238376834321414563557471588712822548312411422775717356363823622776463314456331827648146315636421237237544877635566531766481148238843767722582745488273873684666537564856225486613622178825478712528524743153738157753454668545787641282413472157844256323273752383868171485682442537758747281125123182136665471683445431728571157357237764112137173572333277883688228862368153821745178187746273711786584565727513161166457775136262737881233888815663318684384661554328333383288756757433468885147168178418387361625155412387582315373281638433584711317136743671365354424866373433158768223272277323722275464623687572468477565183145223761718767683418353276353656847872633511135476828383687831284178358278288437735622181841668147638557233273562114218861136516341815378683856236354726871637132137366713214577268556354877778552185445733876614331822126562587683344576775513612364576843152537528866322768615842386681565424373236557612262735832587355514632112666287422381854773675235215166218838476213367643662352577175316368763541473824352246384768315682345351315416737823343488426153846473473828313261412441188754648384312263261146153214273755328827845167274778155472768751348812483861745831546641887541645332171474138372342523663223247362548584163582783544871788271527478417462431366531575332221378723623236446263723877111388386864213533867584864832618435334521142161467283656145866528148412273188233557533814512853524432551521111136885386624718757362586345855158654841622168622427636867263765317782851633664425848613128115643522474457624722316846245655186355583887456517715188474146346172286556118355715422168531762566485212477121362868173685473638875556361733755623521758467787485826341434376547716488115485285456257257355811741486467613338444728512346886832676483721224154236757182357112776272264345612732577474315176331845867383831728636245363746241342534331684372312135253213736521661218238363114366588418752424271357842747125412752618375536652444238318771372567487433655121752375723711518662272672856558341238716653414846254133237841441563441773223324881418672273887544864622134862157167816781276542114455625723525377748188864535633777428157825124885564157522655838447314782363468826133841666365871611756173125174343637715188656384168644643811345675152337761418413146167367363531613542427235143143741243178188131181333722336536777513777477161668758631831371137885243858325487144674474218263667243244176683463582645656541716382223637853366685756478744782222143863668185335866625355715883166254437117616714242474124271556843173771322168178384656841556347325261888755361388642185252543344532326263786433166262477588883145764551537241443731875414361564757263822636476726721352457412553341342525731213852676788316133436457528757577433587844841544576283821566321764274675238381645134383148347484728753866863884217684884538335376258256821861486826373733425854346363631334363632438377521262565257281723336386411147885523346562452231463888528328168687633876832645652617638362248274627815315465817677542564385773344113333745436764625533667323356724654517227514173316568152383665217358277847323643866533732784164411475766665116888343585432838175773461714314164815831564324332416713584122185255654461813385113784123272382413177282378565776253534852251867333743561284672464387378561336726252428135568466715331253852334141277658215758511631615616881454148522413684614374424582381484567236376322473526827474578338645225728151355213865411728427458562714625627838383783842581485427318667818783428667633583518742342317765622654587432456477358453348633384466533845157485787734657632837174784177353218777537584434384112447856488468444866633743162472336278484431832125467758156854783217126136231138545186817664644652434736425225141241517141514576381461622311562353114477535141478474152853618714712358778141184633118181362728381233766342321781261661753644544354387822253888865617484637252654773542633623576157884136858784778283166435453165732335687534622517825335761734124824443863435385154346728563632124434331561788161485744786751132165564331316874121564541333385218456845173461463488551541778166127623871287381346357123667342844762266885325156643221544877242225418254386587338257362636451243448435761226621332728872683627532265427546877827781658577545878763114725413861748714333774177564765816434422465113546574578115558648153585617217538756812877443117128335415786621365663452362668167161577254412238685612435583516373136823333443478548483828246464774233555561578431465467442185248653568283741484411614117827412164431811282286643464775674284817816114783521344577136252366634135713242218234387752444267542124382276366868855746642148418662787813516818815145771842582155214683521316363567223876133745436552724752245412324567871332834276437571685245133251854646711735577835165555668144646262552315728322825242314378458136258251343344214687428826557568352266857273313632242143487852446638335211146171115276176547688153665243354663731144328674224231483677673246188261283262653163677116471685115677617132756731767548876823533782568137774237214135824386648685717427256376684787456785436182243171866385562142784131673848263267335625277473227232266237144167857438656451443353276768564676533175817258383388314852874358673877247161166116634785574176842835658223388655325385554122475576717737136682281786157431365573254684464633858618364224821465457527831314365333861157448253314156526526653356518564425187438842258572244545763721843228122573667323547557244576547555437375523155315762543167482843455274786652288432686563322213424142287864758613538386325213554138854616788738277177426836257652316647433312771355716186472324442776275476662456844341187771832168677385568365168261268657616423458858515118572287215746267725762756674784423633541684812684846278747283644667828577177824324583574364384751528474878447736885241646676758571488874487241836552572851382246355711358673433157816267783127424812687332575851347652132411347315465885223477273644857665488386714881467476884734326753488124655752765623818852488671171577124281446564822427334817116132831356851324776637451746324826776562264866311864475236858337115658543648161244542765532164532163687852565575881247466573633716772547381825522216613366386377823163563635743161647535364188576454727742883888621574166276682317475836136836855513571355821731235728287776243654623724823655675857744332612177216158546813241742385325285451847543566734145788878217423665358271486276381865544135467731362871836315814657118472537112118884646344745872478387451352227723274518151547483382136238821388676134186627453482662175144773646126186658562726674862236514535346625357714656322727541867332422788484844416618776317812484243337343437834385741242112242253165855218667787348151831144826738175673248175571285275258327617623271561278717423642233735385154377185773658262443333615715112415363751773711821813271731137275423667746723882572566628433347568745376568827673816278182883648328527862854488371114564738764463424822164213717724872132168125424813678716157586181281166875583844828886362132431226221568627172271736454533436244535653222686561553888327652876335561478348856822867518332471771813151652617866764521221435163664846722658446783822534534142175241723577588747731188223584417882664618125188578245227244271151324384883468433127511824448215213532628535565736586385486167587527446318526615135421556234643481242843452782412814666388653653444535472662567668735435866843877487523675583368818428625378674471342575735233771632281787465474564613272412671418638625152316634754143883726767732351836754426862836325217841424625678164173665638852247618642771127521628662385256147517448376355716875448564151454221665581875565821254176553217586658775774386574556135741667286728717355482658222874128282611163113718154235644812314881167234134175677111342732638678682565578656822788433363135114578713827553854181111386511767833878842684178284352881627465265228223183456875167357486283476817526873737583715537136325334881443711171518745467247576218267378268867685561274687225513521124841514163626315642523763282754324174581528356487625613688874876171218862854311642313672235683812128625567567533768684526146413222143386653513456135474755286574658654128236443242356432857363717371752462225186837572444766117642627554643813313126832115676141378682832223223422224122551262815445537656837876665677781727665318768314167523848523413252837455183838182414618351357661733354851721438646273618442375438354521518652282518831772678272174435253174713161854517433356222231456725362365337357782683465558311188276118618434871655183327758824518226246156244878445767321878138847527883514612656281683371274744216185126484325144774227813847468145344153154665728781687172888468681116873126385345171778144651671647145124453844253232612263212276656238361635141331211824814288454246661711173175785854154533435448776534632548275471442882815451184457782852831545288248386717517841778871241854548554481771581482141845638732776718728883853658863534763415581841722472763615368632165316565328117256183132667536484885327711412314563566611528338685823774775672747285563284224754346271648716871766174161572554845264317245541683376474582356448862462743484434637466585686142815217183188542174887247473283854244121131872256623237873852357672774876672767188318763167284632576862385543852773456663578828676341161684175834361613658341277562575252356841134754238651765382241433534225885362444121653358263813236355851447678771723747632628683138524667183177721262614743723222143266673851418475646781178852132148464336366874515785858525687567562614317586617383745683832674212467787626187723757387587466776623461312617258235122441273437717224725643437141223457442453343122563744156822643575186312543455378558835287458423528311254465683515568677238131488878182415134152667346136636735331386247627723151572854224863183283516865624771537784822368678164825318742335878725766114548112511237683572275627315163233611866846725644857531851224414465468231878113217821173712222368823485488461677478277225446541247457184631767573211628351675616552132482245113334883885654382823135842663263552527826158278342622826753166382224113787413347261368144347844755334263618114836664534535185478662658836836821653713736385811564641213766535361347586216566224675612858512718731351141686174243618864432678352153157783282562513551611847761565547473787555776732883553881633884633862734122682552574844516582161327467535762136752345366523725847351124662862326416643815247718235346473666465165746286427867772873332354667275435225553328757653182734811327837148584883578455324564624653245851776833371282621743215672653354842342531345277228545771846232616536671472188471182568668351271748264772877785584657375871888538546131888648284336225618468827443713788753378473282433436825738716785642145671118223222414184534224774557736884772664824128143554618262622116152387356724437752832515476243855254686367477324476337732556558144563266624426864364647564325226344622483712255682136483874263717278125162287624886545584862853646445842267636185756112168862215545281173453153317864771764554224484483434746176434727555612688237644547127783233274115663443362783256536265477665676321654556416388657335561316542863815127634124585487842542313255225474754325672827673847744126647876867386635523357327182251884478145642312721856687264151218553266432658427564818423735416132454787521447282242781738471183884364723436823117883845874558518142421624322522112365531682642212124276277316576414567383464355457543756257723521673213518632373616878612283422458475716436552533371827137146253617184686148318586345225528883348645664475413837353835483158353824482518721123855848455462156455862633621483675846783815222436684754632736715166645513282334681745215187745842673834823112277252433848473646714764756124842726166121835718251633727181481663138412552642667387666275881824374724641712177474842535725873162454877668843751742165354412715152456231171426217375511857717414246835523525233161282774634562853246757726121424583372751717663873238827378327667666422582354223343711638622485323854121713384227214277128865486648621667157171552175587281381632588365232145612521236542672314261117682753134372155726641472884662441386518683818146767425672248351178615373333744572833262442147755484677822812326226543354227868215564462257151767478474783381811434547658565317256154241448235745818662685735617824184117527763468136266425546444414724333726233133421757123627265323456445127387618382281233558141473223634231882581476411752366121383332715562721565276858653851151188331476535378866327284186268864764823342568433654248325832425812368253421121354474415868176567451443751563365614142347826668172736162225212772856187548813772154341258741835771585351347585467762584568322711525257748567711356526148872757521783664511847171742416461223171761184441215621611521837841824117626737747116146185877348142518871558814412272882476877872138826648648686524761674872461341213833464144752315834488632356373336673154236126625625388582728258526582512274542174321768812583441751527745756732853816414533563618361722466748133183341661826357372163261512562471414242248544138235228861676882832223844787867851268135181481651532723268665451574157364478144186845263185338446858375631314611264386666318214416385534554612628725278868551657363476713848777458673546558385777123763637625437383654176115578868343375654856686637625324538535125344818162717167548241383726334558826433663446216187726215484841418152125838311828617184344785446412221678311358886765386675885536425253178272772458185438877247558165141658846173658217166877748426581653543327374782564838324323572647567811785875718263281283241372648286345844184172486475466284437827553814371457254563218835135837451447536548435582723473685845656467222543445885744242126617254581327262463132323617418746662122723645578753672812628664146225317332476462436384463881184623823416651866276416518767764816214245566661155665124811477838226342755223834462134184238687661412246668558162875454474151777587618445167862265662728871868437265215322775558285364333135868452633832175341351553876255428454383576351554676383687163524436552866367884458757684587426535886741444334746383762277681324528381312745376675852276116748756473273334537285677562333663558814283236375785131786186854378276666555244731884861348845361354622877568112161264287258485187556751276175857545162556453662483168253531673546658564816261871377868278157368642667758463567566858577578176647724656311333171445114728486162521152643675151751466445175757621372516441626318415256422884435228366672651171882413255822331443446214878177247885876164864825821547112117582842185468555126525261861247186246156314266448881523526211516811666414436241136678687478546833811311651164837562542181524314561312143126211564588685444541867185861248551576633567621164756633828523568584857365213278265815284155418137138853134422137277717271471384784658638131331658518123162766843377857466556533243622175222813311786248862681515574642764135322162352848264235441775158137321524638528246555766554136648567336658322285527715457531215758542276215884423884116766856238158746237423534824832677343623275261883382654142242368783132118686473473547523713631526485566546871275246667545878886213768488754543666333784447337628883718455761144463657783673254114452116583316344675532451762278375456672668411444657813876762756462648516424127581381355643725532363323632744263362364537426135262411441621617131836371632415622838678617477741811538668468647531455173732512383122878486161728535744283854248457613223825557527182271463484215833354213747686163341187114424673815333626246751155232682181168156656674415777458142717677654366682861172625267133123777523625345548344275488263431528346375818231734248474162324373863311757767722813417815134232285123717642284351382282655745654336523154364365315424356842224627841345438466867475522272181462862856211144741255727515462227471334844625156778436757112324722544845873278734443288518786778581672248267127253572138625458828177383325787664582482151665657565112811575428447654556233758313561461184533566112434254438136471477176515731131843235547147445483857218452532286218733534378584451367728168388528588423726446742545327882886445162861252513357117311616455286418616638576772348148718554741272742472136671512475163588738747128836616175183817515561121182468353681387864865783846657724851784753758326313577743224556843187241286177628664424486757223488211321687466181118558711623657648347317721221237243638452323247778675467281771651671625754245524578286813686332481453144225776882817364511233173185165276665124822645265854258237634228842154225181266662754766586627663545836532345178864347667415833284486748541248213583866777362356685837582673283128426281587423248443288836344355864354478227483133328772523815212544672651161461457146254222638583636788816513528121686724857874756232288746774675322614115854848663548124417733165232248715316238244753258543746156377835162655636727184127118462766651753187237818675756363361453125617177411387836123645643477756333182542341288411743816322786475452513646423363213411612776275437648828322524535843563726235644268637668487557212265427737163586161883513364252165576351767673386375383531623825443745828386335831561881633581212575744631364554676446468325145354734867164436555285513244655251341744541653478665226147261756586366677651668685274585472457763485234116768687173447145757335642864831624251658163533128823147331331157544625582442724422726226258362276245661574733874233445166653747453886122265261643656751526516328375657745157187354648617828657356722665767367264538255857581485174811287171783826438682547277455516622131766237466446551445287448172871564356614445661425112846421518333757224635213841227362528646678521148263758121738566435188633352433446437818173116358565217531443377881687666664368323438848154478867644471753281777782683667766651222531612837612551421653248575564637455334182246848522843756114446851473872163757325266452763374668676832747171572288712187183558584886142825868745436283612827847133714855147188682127384286151451431776857464314212812437638445544383685413544852722125484345461818865575536588662843148371737784487825265832885655661357447276622523711413258775458474837623185314675675666645256685855476782323747823258821416272437866342441485783127666476262164437658864511158137511328182788342114161127283766533354233118813161574253168845565582871877837715528545818411166523476171834624246712488341813632541245348677863554451342348362533657857585477311425246342778117371665281638336377568251445826711777114246636354717633447838576635282572845547688458761553227847166874268481251763658672668254827625288737551287261117731753345173353243665475817874367441642728245136453812287845472873827188161343188855141835243136487814472476773345558618233144453344787516341244716637516527838354488858584318755128541217681683633227746345736117153648428247577716677172332842746662628244112577226132354147388136265286356222113412517118734417782371813231181837274555215653232328821811815118584158631812271463132772473158628721451227315418427586744726787376177218538146688425288547377672371766721412267178285228614272471253712552445223732321881324428215253424328746771522667316728688724152544285764432358286867417485516732811454586737627172722362577257427258578758682288841274832424255677685372256336832116185316488536486182723526818268745143673645172452618837637212756151485368544786554226855443528885115348214343665174478528842837117338728251227485731482375245545448326812621438618624523783354868511251181743461348761641675233178762547582745546473527382515471157811636571141785727513751167273661614362143728351727161667552425256543453682537361643626462674818651665112264167633614327256553286253434527622552422821433758237721264285634741888747852333846485568587757313117643447237278538145111583374551425328718324366277447513537854852552142644177453217627177533535741852225283848266638483756716452426385825876568238648631177621732252428614121111841818677548372564615343744451445513241854788646774427351712813131344331475428184232667614755737762312821558268578442368322785362267458174117832473666687743177284586411611161817744471835338148167475545328326281328312814865453881422611212787825426623761176332141811832611268722278533631831284775844623738422536246478268247633876147387331151465173185571458427133558458264277375555821533565467331745658276812236488552717322711785151545813123462326267588646585182222312524821157634181635374751643771848182156486513566662726572738538435581811656821357418754817566218665465181787521331823473736417142574654788342342183381378821381458581838664454634553247241831172511563236678642183277812665361186724746465845222431387254357156744228535638312252256163264861322633353732753667461233241614485635652844786231644666157624734413668831126438263536812741234361346286867567285145415276868856176463136554433614242435123175381684614468472417438633212211688438416721765566125178418525552262723512244762474683533243415332573533624282488467671765663282311658681216325752616343511436667381868141638822742455413226488288872853676565311222462754418185873765138443844666721685715414868845424465421757185132312858815516127231763858334837168721472548212631727768312752657216345218271851182465815277822732236744333174744552252436337477382143272156532874268112435343663844757833373177454464614784262223515457455464226253371435823712167564171636614436332375566827631554858682858168712818263825384141523442314721786554571638767341387387488576623177413435128558555875781457176475822735147688614273322466842648717182313637588123845258551624352232457377246225226733457485832754565314137518132472624164624715753358637558258867236543565813585422482326838735328838883284453885712838583543231633373613114861242312266271184134463418361764448276163642727377682642568312726442154125816315245315233731623334218517665485571777367242813212223241826523746432828611711787126881857211242584673324382131712552256144725665721242366446587413235515657322513274817652162722742187563162828336337261467228168365788266165555355772575314821514281763246687834472231736288856835878813541433867786441228112365551521574584587334177686354581656665784844851758327786238544626873528878165727728568777333761555524472155337118126561414471413625151335755355364571637136743225426421655287324733583363627148257858832211148282217145327278681276745836186812773687236511241255881588767265414763356514687611361878566458881443468728257135633786441155524355512571263135314278824886547661216152667832252346337786117773753537761334456271878428128514751778526346452176634665544214556344856288734618362315521142257882177484376324241146668748655421375722726547548354187542517726824413574318133164163833754336875135351746451336711751245337523185237362614444174766746461838237427254172526885177658466425415357648247166655851333368577737821784475783534771721116535315717843857546456814673641463661757348615165772242316576574527684227158253717622548767585657486415371816877326261247167338148485674641115736554375642272145641828871181541363487833247322553644348418261866212112173725646816117157632627148825123462535283814426278427787471887814754143411857245274633572267134126522438482815581653611734387415154867876666286858226368467215471874642818387671518315848436865638153341241618335263424356651223235221311162815277431832287375355876577672537156588657877372577163471357117773548165838426374146155757355241452435577526821885612176728138145387726365127723383267548128123627261453133515712787648351238286161625688845486375146878862577354383562435645168344637585451872172344453727822825878415651625824615151432882178647288362438772752334474364143167754481318377168312716831312517154461181135487428365155646764666774751558118822444625371867112686142756664525431482181754554731111346118467876526483177434573388484782485753572822238178114141648784831473431633425381861861812571871687847867318517255858111865133688278853343381775867838532184131645581734731515712555274374456426646686771536124841154548685884668137773483264655366732751857424383747187424571174453647434243268523333741258836378643243557442481483633758322621641654676231336375318352788131685431515275827623711435224276323463228616318766127166578666185482621557377852224886622287614213242766665537348448776816763281215483726838663374862652317384321835767162845843448613511438467427155762163564577247157187114552467525478382658561376783563685837488537267318156652137852372541446818723223225551451352456221325122653575553175722724621347441512764782854338817758377828433584337727518613661243241613556512612471817775722734114265281452388513584148521711772365774836652573512116654715458675731878652861736616378426867516775874815753443211517246714631825273568122152878135751116236288626561242357252225666476786516447712776628441532787113772233744231468647343362242652181221255577575555151376267343218837113336775117613687122715783783564566342547478425823111381648163188681542358881178476423257752261611622826513371385614821412575352884253414633437687281731655852252336574524556332226766513284478268576647161351542824674581117182821372777814537726874131242626777875154512661122766866887755414887564672444553718186752534244243865844745312548257783653134425413113287775618522161133343484114172317755336874182285281415716812212887286472887273653383641837228175781218415281525552586676217765322143171268882454363117324282484517562568458361617667411826266584351217223655786353214713276845341157441413152676664621638384574386241847744877344473456455414541221275651124524153117623831372314188634333685751257686678774672187551153427561686253781437816265837843842718544826266321721186351142112748313785222711477187488214362215243483611542386183442468562683814223488224143628664517454274572884728737347278215253168486515362653313183812737154326863673726557887216555344228357142861327564368251562115584278673746737375727713461647866855721784446272324262465288853345416473584868212384537127618682242555514852848647187558386853177283748842686661145587277773751546572465642177778447353117173113752518741157835746337515111472626874468462822266785325736734866334766474673588735464114386751153516853181345828533683238565676617383588333872444774784652771546445462362258464518677251344817618845232354366327286767762268618688818785723252146324162385825454242172334356427248323422821535646752674126327688337661537551224566635283482862514367431273361426186366273468536824353147445474888583822255714566588813724133128147188764452464134682641113424884764652853616271646521537431836163445281266885825334153785855253263681426223371564861256422637522882818327222368466153751824476533473172783531566877724823136351655553613662675844723721224525272614171123272745834273351313827658164266455346485823728845314171654231773863523272253624812475551861614162381377581537838664388182131586686434271833486361661368278288537877153143183476423421444834877462867243557553715244857151145543736527541885375561835731542182172684547544748415458617453238436373687228584431643323138158862388535346856861642834343744641566238738572378118213233577127762451111667853754444364677188533776446511186348444571515422174227763274288521465528271788814475258244263282835176812657645174366781314683773472748624578175262757588157812351285134272256364311168532433664371583877763485583581254156171278344382174124274518282616172611382631588617282248738155464311431258378755634525418865577668627434433824544186644317765683331141574473546126657177762111131735888816257555381785542422274267424324616263762547168317226313741372348632817767372767688876761854785668431363757845361368526612777422361154418254387434882523417818742716227283233642747166373174654715523813883266147554258256628165324675861857638171265187456834563831284378623237345822354157464663473761433352273445576858785732246483236468344685218564424184817226536848764811477335776745383625165735763861867412855511781168372454112885853781653213343151844776357244611586652877863244785861615421852526748116581474524122187611382423714665171137277688467338464273523786385468884658316788343756188137754456825347874554574437213225557684452156444816122565855333758535662836547737116358755145332854526376511441252474438631234335347173443477553617222771851881585113313657223451832175762827677244255271817311114772454326181773387426276624674768572614828166163712138386635727735886384862367327127654437525188645175433636157566433442263448424527237181466338561771114148856118788665412185157745712323777575232157517727883434824726214652362276887745545577846435725287175218588371884128628123514228877268234758725786455357377485454367751883775335667361118747141577428228553166338266866727323346644663328585835512715546875718544671873748187218485821215783727773871831788526236477218675834422676665725444256465383852251517435168621821386641878235147114847215246834844378464386582368728541724175545573578575341267756676428523647212521277672418241725227736211826238756685532126764485278785557247121458818777465811288775437858432473171557375463552248448211144852358822758883225145671567648635832438362837231731315132463443835644677762564614415817122465325585864427374714345533815227341586254575318451851114162271174631446464662617354434532456425884688343418676468522865727138525175676187532248186351538122661255481681141834411245366767132723422582313813143134321514474262514731527477478778272842856164382642451217645681268364238833352283347335716436544476551151453368564466654386122131746457483426333346112547815218743485814743473426277117885565157156543634647886672287574182366238454423877744122381755232464676382631635268546466557642547872317562311727643476118843684152172715835124577526886756776782886247442123246865252516245722627313253825236583228475761153772622884385565235214117655451645776663168376515283664518142663251584551558726333368378854182173113264321862212484128122471684684526115752857767866877186635282248826488654241834683218432151865534244268271841478485338412255317782218734487435164465162277625215873833372785418515613837756176542882228465812433613556338143366256465172538673148485635285532224857455378323226124353773333525512424817711722581823311318632287836134874855772434762452425214616366651726351214671483685813873666812171385316742451738176371225815772416114457564224722221312788136874553887511583671868588445128713825724345414638425352352868416417856177524656288482237471182647213812623184574524344658758888421766818875433442575527581158111674445483833247312534173185855634274374673867464687182156653283316345768733265611266373614634122622855547462517625113373753721858715338762582433632866817851623513136668838242215367835482554761741426126887625828472821743876851568337676255613556428288247711563466845326487621432157563113621146437851355734747813465633615628128471416676231887834264535664365223331815678447237225665812345564556634253686266157332782186443715567854828243828758847727557448152536825511888534585476788648225167435853643615722331118841822225537824255183665517525275234123575435541651187257576211484782258768384166132444312688637774156611588883365427825771751247644414564231457668267346473516347455578682614247664554211457752367735782537623485442623634461386146373146877333573745665272817373862773472871737277452848711634682476481255347133668731711441568373133157657251487176624638473321621683137811155823652185634565384132344744426115132311744757254353457487848326726523386748255352583413764785437758185766458174711741286573286562277335876842382363152778655822285637233473628715277325172571368538413357375233441343727836638683518542341754114786777547212736187617842874165425788241832724481352653827321532611633683561628612574532863883751533762124746773642252328324351321316175568827358162264762267811837315738427323876261554742632322128382884633772457571124753182814738138267446257176658744213181441141836467154823387277658668678471453286662234168454328253717643787264517621684348767751631212456771882634418744627254384815226712881123251234262154171577658446612373688668783557643651286247464512547225151183854288818381134452326235612411582872868587567673724234664425262138226733558126865487555864447651237522746345643258612317323645768321454785138142822117646621256175182447121632783611561237841355725646115267127174182261662654316471656364662568545423475422742456132755888143667216132663444658138272731442668251768885346773472361413544777483571466667415321543251274638478483416774582733443666484525433478681465534366522554284345488483463478588125476587877128337864227425475874588847416264617285673435648844354244772168518824273182553356653274228332243725831848265457733616135537758681388871856167542717277681242122716712756264124765648478563665523383177752751347418326261214335524838464656651187685178118442811153111233864571118624524235122117464186174417518246688717816276834118717724335358575226824613152552548872424616662874572522537351264233874422657856362231144475518873867111356747534444448576743712167865551842654257518437767748822478642532687163531548876767331545128837164772711555524881784517126616263637417561282577336376755232728272838485462685128724281618872766866513231888516247567244781666341882274748766272185475564637328375268254711524424533185258157556243165245267615768148652334681311376818525853535416173762342843147447858242564722478463663457433243845555673731845473318622252475338785431413456662818432347482885574786784116463638563367723872286362652728435687322628486751671364546327252787385257664111774812122624546373772484762263251316475647652156345244527712183631147513147854674288357618568742845463664368384771366243681544444657632125154512548828285818341475745156528165888447436827528656842423765348837571473745217248531442678324273642641124342125675775654373352632566568688562245384855181126385542865782448531738825584513813433321566711431413162527648836748777544281833551857621545215758447288377467733578357177288641675261615242182155557355272722551664711325272843217144338461635317355456832736156837457815144334766322574454666138845343716881464665783348773472176616556846551887564864422431544862536327671648283541882184757342414782358134648864551731716317547884231714765532876636717144788355745875832572651123651265552253736382785641563571546533155871221548787143781124765428484658661485472245222873355867524656534568764887276862317762381456115138126275861367455717147153651334223537281227631221172766718833124874653745374316462327817867836122457618816444642571446813683185387638531831312256256546876252487252771474271153648181675161876718557613271783227626382485274832776323212181368131431676312751518212238837864574634452687831172662545447812165437761641281365417323534125232732384155745767878477731288478558754251732877736374723543571123555177627725668163445455774572717312274862114611822267725268151757135488381637481313674762773468843447167217656644613281845358343256161542813346714724824128828844312335226151487778837346817782328258631143147836578128668528457131814614578443782351333845557361362418867777756678377643888622425565127515357623527472441818247364846413637116437273177174665583654884324734264857356631286723788375474726841412286565682144423827255537287338427765142343442643224767356256668555736121362415337712217573351712484156773184323664881457744731678155411465487732721863716741824576636434171463623715145471442586338863167171152383553282745662484481464243355554516736677354483418212635631353464223481275682532253382762563861882236335454624481336574446684378218588144263523352571622351455146113877114433328576645747554767435483713823342718541772516573286636124125146237747586616435754274456834135727288154785238371788312565145526116618257667386443141216461838548811772325252452656743171273114682341572657718142376682615672142245281163428423621886653872173366553255417426378147678173772177483726136738434835414862356231171128627167661764471467361674657451888755383466574381624773227831638572111857613182761344526171228167838834461661523244666172683655455425453588341662717412366541755486148368861683463274117737773838311246718735278267265825714764784775235718383311136388745223668644336414143338418134677366233174216424724757658368616544834813428761858482767652332656255345257711583533625552655822213787123783558773121363515766654883684641683576458282523185457756273356423436273117338218444236524846354267875883672662216336874135632257823217246368281778144257686568861357232425341878881312641487381123485314717816582532766512412261426543124571231351246514614582288753232375458482275433761828647621618744148155263475462134814433284244357321717125328437484837724815337756814315537241888448837427622164724222341255721465135734612517856137262384446578753442778136582765653577882356232243471351816774328334233857348553487573378154155177167468883427334253476458454833436833788286631125851655517661671461355864634315517334752337316144675262312717437357314446847343326812742573432127728363136427455216376145155256148542512853658865664845542164335858211852387782425528733835135531517213283672584142525575277447567854334583412523744813577137742636768275186845278676614114878122485171688471515541761346743624558667713312167587362365746177181164424625528147572678351624421287616747355751324542143615224348768144548732468874148121613114652636676351583577153562382368744817272873633147741674814746621777363121483457888866124418147882624836172884474377646746657116875348623572126221585368582163656357738787668477516688655458685187872537811515335654626867817226862784281347777823182658516824372436545346775567843274735184433245856581335578843831161561128111386122724333384376473116177645674346224627626141745756532116544648867431287462546288513418121285778537217121872252272428182211655564185766652873182888488666342868475532886144141388245773413566271611888368374371815278471414232282357742771824164288287747357174868658586285653747627212686412757371341655237412244551776436368267762537616547433484533373626688145385635476836243386382538858768265647856645138366612735722315322753347123326821571768112212481545561347366664683366364254184127345848463118535533236648758237532133668646385748732463344857371288435181685376856614117581887824853268218446238818866433423874146354844775554422118327626525678422425861286584462313745413862571638285315534867168143558743662712687877147585468873888841823654728677182827222625615368857373362311178831422581252454145744267165143816547766758684688878456851455725465823467433563166173465427668773471326725173175783711358125661627626188666572227487281667815863714511136482518828485463351556814424437764582581231453355312688132244687256875855811812543413472216342134622824581351422452666887378482764633148764572637552356645684547611162557813232677418174328663244717163538423646287263284237253211813823864748554842256641452463168462627882424827634467578776671533764251413561334447782741268237162586314231354364654815827587165272518882824821483588657563461557415385187286885851733658153177528227634228718182771225721178837451338612688268454435116771334775467445265183635178246482584168675238723882852425841375412514443622353553724653226842272318748712114455316668682355261112653641441753173726482586764662434357818154158312156275533686716333738615717715176452125882642332212253641221688434586782526728546753236225874783823387541788423288178351845834885721662422353338216743786386475537682818612632522386242871375547814165642765837224448614482546444427672825427886337364314554855366141833445881331136254576668266831683184254374456768283451373146612672187585887264654118714117445324531845235828451457187565178611663657876444848172782318724745817844338638223782847768421711352755247626685862735578222767854146237568388852645363842635527672861737326278443676632814133857625764215534447413245833112487861116434683116554867267467674136747247523884355718385688234534224688157143275723612872684117285565247847863544875778848421838283323777571812158237283684754464363541165252357376713673227321723144751436528157384667556875166442436546288161561536472771344155887342838812827672386261873154553454344711163731666841147841465416882872177467214888518161227354124828737531421461137645753555657245124447558366135881262584128541118521173678888557263177451121727741515874468185712776533334473837185543656555113871311548157151421871325567747615446587568374426122713436277548288545853886818377255165743316783627314651127555337545685826383634562686388152655575644343672825838287534241373481164555578642844451362785421431443565724657518655758887216748871816475827435382533482263556442532845247641276881345433477688828674387158746546267771235612553532857431425748233822682852174436283846645238742738165256165474284154638322763553238752228633713225654343538455674328537162443331516132351856281523143826622552672472274375685746656128771643771685513617366727274752411265224388421771614875762857257842158247286244862166323564876461245261671311467572873236375178113621485475327143241238867166563515352766188861251243235513826374521653361756543536546263165351727444746788243466777282467611452286342186162124363778875323457674875671457325652536582133165584688734745367811761128288265722877761725447818842654641236775661423264615282756838168178437882638816476653738283715774624273343334547364354344222488837345346536687584626711283448188731121674144758837615785685385275777832333478177714341428725388577866261175173438524566214614662235843557126138182224435866311323864838617466846757316584284322518187565172743127445281571612732487222385531542483878816664714654232462185655552718668432423854874272847223768516174677836782875414668571524175788727617853752417444453114578624616164521715613446853761174845376658112157325638132177172463662433344226655287787815363526851684185116438847434374421438224851861247771473722218357111583645742563822155814185626474544528261176367141646125273532155114886654388763436217673146843451525772376834273554182363657568627213817651167481451486632187626513518345448857661616871258637848365888214156584652356142672573168634552654173525452153331247142815161813322633365177476461862238445543844667665861377874672755686826861317774838866455588442677346633733377461337641785418367267432472318253842325882513548853766614744326612748138358311865357878823454732572582137655653874733635547671547686886767334387667611731558613177447281821128484324884651672586411721588581215537686168187844555314853477517737563876555316457857844282627257674877638731263134788814643268686681521263876246285254334527176742461553542833343834854175748584347483647511432334776281445384788584535386818748224513546772327767382726276251148451324682574467253311128731581416514663537534856356437316823663483756716651755477671276878246255536776518572788554563331712536646132772486566388723115686715241458634844317834415675842333814558588644664554512148344464454776785661736358416672622637161347884531311813554323141323281722371643731532753382263384274353172223266826118118275472518682686678885374652633217425672322287555424628772124835777823225182754165234273374473867435447826653668878456652661663566227568312274778322646823875311522374365153541138214852826227266814417824834647664721817638226714755623126181853835613442453714881422681118652155222546442738278832666737313565157367613872761433266848675683217612463737675674712482128555566184217577342581166263365881544841162585127246848626823473224218373142641434635684376382273661588761841644123383387627742118235613663437818815244815346256238666611851317317528875271812325357678674725525164838556223442543412478426167372342867275536651117212753251155756143462121456436326452764441625386643422556266787213141554233433154815237855512122483158248347554851263627245844244355248264686187761283626277363684228783852537114271142736353573664651856775576664775635452776154271372536282457815275722868262551274186725868438644233378883257242652481683286267381527584566881225134181471756585554178286783724177283811846216437582422787145554841336182417627566475262176387683686482343274817346831117336883232447578517667588752722352642832246614521384713685747663834684767144586383663637372655124273531444561366214564868232413787752563628726136151243136774733628542711447257463474787243535883527367423285132141585418432837845473774713373586245453385255628353542687536542253488415187258183124343215456643858585654471156165451431663416368324551865776453155117762118416134571347732544518121563442152652716532172345355344861371186322213833732852487677174663442261357352335127236682565613556361466267482861683828143313528853616833738525542543124454373238258758617656872113172423541831746488165787282412368527878638721121586246852717835687143825853632671864321481351826481688854823152255686433238237577314265354351243772222485125538461453858472212541357577755318812154128864672835868786237638631832884886125225778324546421373842742286888177325757222553557527488277834518342526414366382718645564134375278347654257773664645267341665381781325632276413734156752584771765857286812653616617151728317141545334622853273421822114811615636838117368546587676874844622352552153858721278614353327485372443655611353366337431762227445586437187274126721261217181731146688255664673452248356735717772227243411544756671663345783341463853281825461645713684843266873864254852457233468345638622328216683674888428335861411862253271528454724463365857667662877863524256618155882253128546614257428532362237333148426462612887635558743635428431342155835724574216757126338277873657257438554644386718433827776742663476832313412183683882375858783281452372683887737177712365844338164218137124716365753651222244227345717321417215346317331242234824215636474251364185885516736787365435841853888465622278852246131374737532737444566662527447747843136548637462586763184588171744243787727364271736113253127712222272524456562555335357531816285363235567825177377568338836625328332858646722645183183883624822755141571863286483663652181182376547265367357684131316115172325531457862786235638625835211387752555852216438153522124331131873238631412251726645823122135723146566674585374858117311523715175318676686321463373774813378576177152722118753757245385223277556357286864858841621321533746312614124627174664746847587843343513522658463581132482842713136157825771783258733662836664847343611375834341388263425783243677554678243346133858261446331668424557573763276462457288728885587841467352638875281616358827467838865461514288418446733624561833786434554561517222715677281881861621735758876788675241531375471427187343382547212773515234748771355176166231641785245458813457573747444144718584168622317623167152766871422866174545663214527821266462564331638671324234355744837375488482362718782322426612161587215654547637377116218861656723383765888652581116687642377535854217416378515312141515488752344535863316337734688755855741172384487738538872142523278363147337476356778764548417775477488372121443131667137877423861415484615316626653153836468633471821451687328181163825628352685657388328751325488681863714634388735737668488647216814851433738418587124134854475173265725768768438247311456885271286745432378328713613358155363388843582471877768281232716431456322346545244136616626766265812618433247332731482731174481182222262243175725862624483748844666558474648832175336466326272428171625258618727446753172768112575654338881748273737833771477526777271737822786751341327453364528444226575434878571522164457728438828676226614363372287281848588571147456174227216432811615634547653284768381128427528378418534455365753758536448266282723362367815287131881614287864725648876746155865665682722577161241238774481744316573765582457177287746285838831685137383418817687572717367852636716633143181431877735362137387574324577444486553145578783278614682248551161785686344878274614674885751827566732436522188566844333575634151434643155764422172422538188465274218511157215114252165641554262373211876686884176284457223586725712788238575184668715323578228465552241788318345374416431458855572712872868418687148673485487126783847285615665466112141276157333387224384551767448541365831431661242547188243646262385554687631742615271785128746643284323253817174253847441182465342671166356722334537143128255456235282583875665274174186877273813283113381566655728328583171137356527724546812154173587765638462283645188446552626143835258215872345522256427346122811576416685581118834242576347145254761526765546436711164768363875363474167372634422178565282151673628182831113211328833148354187156836135785273871431445377344241584773458634832645776114515885645733645618167842231837174254728358333861747613532274858462548175878863157488617734888612756452128623878434365724373743178432284833236738233324722753237766856128848628313515653738722585857328873512447665731271627544745567562523427881178256825778254476211432462221737721272756738776554566514673666225233127457342684651417435768171564733367762117274721632817723541621554416317272261834272838373825177127724543435438417616685667835634123243276785345762488655444677756171155741842527437311425841435114771151122833662262824265227734363864645738773168352378716388473351625815553758742645236822451743424873247431175748438726138614153522432742828181644222882463565774674867658635381428367524476632188446828542272883726668624456552566835788874273232887436542284422712341845333216452712255844353238354145544534831627831481535718441512165184577358648657717157818828222382746548213648276882677641227457613833744767476145228644666577318312572835464167256236261827725345461334866132826246538622251685718712885615756147411368275221486847636364415221521637213434134728588875136514634616286436545134651228728246311646366615361548162281743457145728515773461132617527612523837468126364617477627471817665138443154782737673142855616178643384518645438153347438881378341241686352471173316726773511112285222444352851386648426464442351833774311515212845744286412546618674122138358244787874584447178647755835761473438824443774352283564726468225125624158814348224457838346834436868332737232751365125611388738585177267141833128376827647587416125517113262141875346217527365636753651537443216731147818313763258582355168188638444211717755267786878185154684544632472266471256824821485555675228326224458272773835842263447128828381445364527427172715245157626525551253315253531427183614163634876663111273545373153128136465464732247725168384561562272788112275366747325342468433312256163372574255187382288748146763548834783825474878718441855542755418874375782878535561562735677738427722257353715223245337586445377665572366654263256656212515114541214312666651835361187245453776584835757234223451128511253112751328715677666118771742527837171713758374751537176236475774353331365864456266874254863146542742535133144422665782345558878233174586867165743432363785474167135482747515786141843388583881711145236657837618463487327626354155578321211877724751552374678772411842628476235517533737263741158623472431743311234126584745541477486336377325188561876862483216826346144542151164753225325312883316867432534311453665366486654681176776611116252538625232567836844388851661456375254467574874537636638353418686318623142535555338658285532162718436711531776476153572785818656318546668444273857213273443478115668415156445716387516542775446821557721564651471816552445141412134865888161278766582613867614576864334746851547254334687155523271461754226366773273342217355651487438822347123311615723318471575338387423824222282341662275234537423832221383578773425533223565877171262817326854215725744157635431526374275462682264444726681818521357645853127812155214863823775576157513524372446666251223517625121742611714128656132254162734415271857644115172642566631424761148742313674387223845578627661745436554583883472665883532458433643465825375233866556528625365511553115514773678432254683326576238518168217472132317376567233542512565255561763183587724344515425368542717754231255537662187586733454532317487163623575354774434775887135444852721175612686748787447246761853745758376153633627253547384188368444443657887331242486786782487448844775374216777186463722866717467756454562821635148322217855317251755328161711314315433788125711786437312172128541141185884475565314714513721734815615214628245433718868827881456627217366251764641614285685316174865468185242263331631886187712385713322483678523553357856346233763111856275216238254826626131177185256845133425347416167757755361443216411658883733146482274467223213744568465415416156844157776186441464121522258734438545188615418246554316188142555265375842452136787788115118222438633827138843578467144244736845724213566251578183556877162332523181424141864744788554861713862367176457141585575582874665662465868575371416664283857434557314886525121752424514851458825653618452533675434871836178831253433445267215645688788266626743743184262672822587434126788568514771816172774683116527863786747876876442625155353674267426211615364617566262364612725636114171676757214877622752618232838114142726544683132214464346216616222481721746258175478774284835354253732826588184343281376741862856336227544424755741468213766662465174535176237612758346683421566745366731244871823456132434287837252714778874836872355584614164571626265751223727123368786763237811386468487476357272227764786644663121828534258147866623117533885763735478762763258787714656823185458683348236518258545817358335841726222211532247667828752685341188727885817787234126618464668678356713361128538112442385758713434175117161631581435564621386586114222185764783833158521226846644733813185535527883542334887338418461675888457346387476576878586541274464125411135544368564281815833141547178758171267631758811468374184861553421216866122613626354453811862261881654326284235767713261724612716438832221634876667641783264841384344436586544316647777115165282283635852526644127886463868285475615811137768771646178446152356587178657515581321535548852774431315272642386888758313867743884124512462267836813718786647646145556481373276733774764114777278612447175453143472527535163852432533346573853352113563166332142885388653524711577644547847252357547111437515564117558148735536377775477348753863675371233472171555113787371246515111683637815552157487733826564744773742582256468314654145668258236227444668163661235541664551561257613136643865878511377438453248118873543841515236831371285528476875846316134527812846866527236535625313626245135821373812725274346844822515778367183453615728251512514732318813328524775136628766683263811851348211655827358283462745742746867455586188521511526462843687472884444158627644765262133382717586842824873654111374456486636473747648134466746562867523775271525885585813646113356677165371413587227724658126852688483637737684565124588287788858667847671255578272287714551526471844663454618673413871435157483473821232382221537532535247686832881573623882654214464658474644834687158128282368612266622776858327781583568316336422758184678377167223237134754265357236582271184476416271553161313675142338118244842266882355453672783886866576662854251455686825765161467115468535657653838627315563616476621643717644143525423836787412734714272656722171322375852368523588167318172756755173265113524771457255758615382856843551568127253545221276375237733774512513888828531218823236818854415233522221168751452762468454552774214873856842676431663575542436513812864554433242818227541483154121317331763754811833444484756764562482478451752822866325457645762112825752513764851357464345832713554216366643615731677677336413468581286557837167813672112723156615685146716321211235812274455183353564314843628738811225537716218155476847778751456547717254864741174445333875536242687413556111625238458323765256433743785156234327321252515787236477453668348471273264822261551368172448131177753678247422477262248341753527183367357151365783873717454413313245137441547624522857714252143364546177213575833735616788881884827433213267337611267424161136438767255173722643436247343345885563155658546772721214688831588213174211262825664474851428477155123414526368812441412524467838532578882685383484111162477842862721626585672127418212411281157338862326584653563171322117223825572611856182445423142253632888247167234443373782786177847717737582125121444431516865766544186726124336342541567265312634138471663786486222838722353286286215377567874515458831262447667374723348133251656251863767545473832755435746723214281474348446711673285471137117437243636672137686176621381281611534754227826666461687484424551511656137837684816666526854178746717462334654121477216457736516274137831386465524181346288441235217886686411558836151776386116586483162468332884566241748246816516578483386473438223264278846656812842341575734725743227722147448611584621711342882774653737578255262414472413312571522885324715482338446677874733782141678666775615558374142322366472218143431887528156437351473227345828758815336233545477126415888456442883432225161377146674361775526376325543221845758284577536775484126346637323854461885728254713272476748671533671745384828356662478263687556772555752253747272336314343685444566758641885413343141265442656178455388474685628584617222884262264613327756825552822481386618736264563317616352124328147725455273516814464265174176152588245721776437742835538647328278213485478288643533156827421348828368474168544586858526358353855848456554475841386217811743738178835376634284324542113246536182142271811131532543758134454753137355113716725671522535832874356747158381143366838748418217318674475125788626475161577518831858314526285664373676415362832527227576253736834288831163322474283641133475168288648455674882112143655163648535218142378747155751133381361883414124353733685871651845542632632211232482752425277773413345425386326435577488117442358653284781122735453252738661413467353433411683735221114541687585331661571641681228876341166772122145613734584222611411264423681453838873433812778475583642861626878873836374452111536887655784152526825324366463226872314854858772448162114626685153882346432826752735845873653358314447142843635565238634688132553183867663612368842571851553375342538413471273236855111763166282455853867882865636717772757446678842747683786126787343424248514568648215262533378614653146114126152668352415314342364274545556322475167324525615782826376533231278356244512763328262715558442536267443563746645632473815551373655411437468111343472443865813838246378635216231546471666334283727413835253572316844677417587775386551773131366532111827667222747463251431134787654645178417658556877677451715362483117525381826561135746587624851737358775776283783176786565527616412171534341386584861287451227737835685775814531774514348831618263447883448562611257583485232748741535548416644361185112274465156171532268814136115622731834148713466581541551322488642485818751784528261883825761611841248874564676611458657712562336436325473747164721446283321251553254617678156544675162363378432426787423337582636833158454867116585314584451383575587584652133778128538632651675341156223433612528233286838187372356175828851127612626826885371113472141536324285824322867265246581352125623738181428316171565881636735166426335444334648666865885675753582874574877152185678877413187813112151527371288734673231488381586718451358445184563476416332152787641473177576811345585785181736612725624568838834578738835178445587758273666338384346236615246762544523785228255648168781821367422834781418432156538568567384113816485116145242711437154881112357664374578261127261863132137824681175243126787311167361448817144228648622851777581427238786311628553574378435781883463118648467333257576285444441354355285113736757266752156216342337854464726157572734141362852285547884132617352445816643845724348145247875472682753436476858154834115511215164258567826318714364475532323726348766357145833125561684823314818872326787342324776545617835315352488765351553816652828613848545651486838874845561453384385256382437781754348762827727846538238868658434825483645133834356238233664624775422656866826342665548526144482632866321622356523244666137546415552851822744412473826288813251666867651584812755714483154466544811762722873625363728724337858848883731127186384242124524861851721713762477167582711722327812153783671825432252132178861467541888264336865751821687675423774563558888342776868614463162858112437173514762535285542515662368277546884871783413133851526321737683358426416424324378387631778345346278585346365713412371838553254772442832338765126811113835842385285458582278457147225177677766383888558443174756367773247175421771743346345721144587818627226312172366812241742316787755337637432658126731725625381743463786645572284874136587727568813282533142861455467276635482148335574568653468812681151368563483627164686111817746522647581511532444874375343133384525841117721662738354558428454576242327181737826512833875487852666487354116484125827363522326548885682152487718187584443554815814438215112582267626132487455812115682862137224673455382613214172552347547438454758185755243347463514154864421856422817282223838248352717756843285453272882274265661842487178354486474641455541176736866471826133762815647357362525323521628172468525681173576747338587368264411138657366624164757477224647145727741577726878365264845126587178624748227776718136572258418323271354763622368777546322367758644778363382178864724123846683667142545534448146485587858527451222143565621671888248132553315186382525246774874814564621626235832778384673746733376725577217481645372745688173127668324615452285621461111117825752471556168877526258361337738315221865642536157461414487271777116653374244728353468818684442227884873484773424431477447448661236524534677876438267878424357161633252278164767455253682786513643524733416871385761746536376316268613628364313841682354648836651587458482878341118311442342617634471835781774482428264167238618117766855181241443435732352887768513817277368463326558652446333754122548162878316528285811688872354217172861866688525225775441675783561733426245217475838274227484356388342135623157322348637466717514116371512524446236781644882717328816634443847367157177577364265733285641115438334111527852448622137668368528418578547448343222122548545284112168584184138156237488811331337514534581663265767364164184717654763788756244786334332717274548633673665178438127247837416747766214271675485866752551188363226886122256483871332546652285267764265451168434166827558747152737242454431133185377118184568658241172484257157683164148285632652338575181486733141454431114766661624771886671584616748821164431158244343561536656347388813115178513114161234756481381857255464382352657447423138227863658282586483565168721731412818334752676126448846888647685575278331485216521562732386235471167581346834245388142377567615768538531828444541544443888666844714737438461484416541731487183278528362865121221775735842326332883776671752761858217352581224463457175667844616276823867856384315114341242663872371236133738728436832642777763612682414344815748212833121514832611846142442183511463472512655483284857688557875532866283128358565521486353722141817523884576211653768162443554345164833157764741784611815836357821323227662146782227218362666258246238655866312424112847275587478117634832523742242433842466815772645147851714837237238845685761812472167754824436226216736111616755158434626155744164717118775532214124273475651133264842535188818371487616268777215368423187885583538158436322612235744743617353266147672161241138324684561453778154588785761543272542564626864545685544277733751161787765537558275648725568451224883376516452141521258675387328315614451166762781523482672468416676773748533472483347216821832585761155677823223154842343335242687764837481768772245341348551788636636576231717888281834756832555238844236225671311358445684818538184264855181226723753132421443318433477177766458642142851884885487646222187341371475566556642782633844121552548656861582856143862266434186321283571516783164167751184511817627832658388216568155162283773642412366265783428122635824788761861114332811223732165253543228276253685743532824181313537546432626152244566628734825245686818172476616621473133424618835535213856677155284187315772462585215217745311881186437673575745833241834522611676428754117378542763765824182638437121481285748186348532886668623221225714188114317222371144575554565225335782327211347122276782255737136525344265266838753513484864436177378783425276637148887871323187536213421138467363723527321335748456717477484227281428351851545187635271878171786448142786742826656862831784574285256335626768515818283343686723117632388143664264771664514383213642772443718283361144415582773146382243274761114764321736165878375251435522528566184247825178123388843481623371875461737335816336737777826844518216885778448763222811457158478116463117842585416614446227736443248441212122568818141637562225535231856228872743443273131252374867658467335526521837247221125423887482385453765755345734836547783613513154182244774836426146576754764175245868813415714418166428785861574742637648328457431742387554618743523486388842442482537373424388226253858424355111323127356453844351622564551761758732634145331333384527144627781373126571711413737356631287544548851264842882832727186163833147848535126273466528824382355551151821222516514265635235151526378131157875536618843435541617186886552126568341832245418248645882527538253774534627355238751456678187623657111472124536278832651236817361142188351671118188821844511834118724721557355832723574884154224116274788335774856821471443865435611288638366468736734576843442623683362758283146431555248154322642644781716271421445855561818741814461241425263817164687474458426633614456543841654623441574283825853455121111245525838683618862253218671677463124263718166133715135158637571553636826821581462141316375611752735486748787842615336832517242434838623268623451874376113887131111133455877831188423724673574354453367863455434833312658614718713235687112514617145271627284744154521237357625486661642137563877416226842571138383434334282158566375678734516243582172466572217844163143111424631517625468351221526477385343776487158263285266885684538164427756568275162685184521843548851446268154352287683645718162636767275251383422352683763746818346262347364383527646531874641375568413216335574125778743767853226153154773127126681244287174165677673138131812337328737313661217163146856616536368823748716786364647841661124727611582563228546171471544515677558324446465125674437258578227641262373685287733243654572563137122146315782372265537855778287618761187647575688323675353243178625725276114361217162667158826785437623323421487812247618512886586837257588518156261842868734242734328165186582225376238777382442774577146414385883273161561714657176487285524671188865123161283881345725346412577164673146665833153285788246354662716272444146318338765475172355436124855335663512248354837153363541546141614531712647737513536872142425256528366542375642615411372571216455482713182266444651378234324555162852232848353674773313684651327423615766688657213483638714733572547884364286673873725783775714835784327314562728717347313871874238321641113785433367284153241231152726434718423356633147368142253135774735434751134417812425387611245688747324834334782633238685471111585483573576635785277624352153277376312666831226412273678482665211841767262751486322248758515223374451764521661357571225676387383638413862187688523235713118537867415418568145156176526534286643581142667568731437256576812366382456228746628663355624374567716123332316545572514232268676224735738736471818855838252776218657812471288878742135627813338761622565554548283366548816336814143288722243857355616316885383384563212385381125343661831565461737755155374452656628628433678633224678224325552723451484658582821858546865281338364121573413354355828376782515213314337675872173532558815235645646766311767636888722677362443166441171236686352834668585645623327335117373168338315822463834225625725331537221126318455315637861448172741523375616627858488375831714887646145316544436345244437575844425221327577127613316646164658166358877745626484484728435557235867566117531846485867476128583756573771534588844482716324334225863757827847487846684475565556244385174747686477753357525147463783487453327635167261877283138175182546735264442354823718778774883243486178134825427614373237586567723272781273485863457366186743382378265351518282287832341672871725432527677563473845175744513341774146762287543734188648286221365366624743364623731654643852158373144185427451788555881783667282563668771633672384781445312737144162855685523443587642243122773371243612231275141514785686552871151387281368471516676213867233738535354452185156721147415777237672824338238432164775572766681235824426438168245274643521345154356667177671554173223464215377711447845313438644555763841274165276837168487152114656622646258434174782316762178154426357133546814451251747646527636157832385586688714557338551428635537626843367225562452323835515154583886871682325232121374541653223467766533742834236235276352638544481741784886176488674471224267377368318317675332811445456444868763384381258457327158655366451416343663445456378771626723558266811846787313687666634126348833528224511411478216546845645218422448716513647665878671711437348471136387628242641265253812736344124758282216431155641847272773884866882267712526156751545484678775142357286825531362136345678657747664551742362467677363411433726681615686824131564452613746735561341726275547312457587578728373416254762883774626475881573416413134567466425773227776734642478443715612111287576362124285183137874552453278137431512626386516164276482416366728738617436763435554761661464643586263514871871513685663468531858543813887853611848412428378862685842247613634627235134538433687773163811263332121324377281456321327317381331482521558347182383472812342432461388425155524651567655586431544673684886545676334766435175116542472567888426226584244427585318427372166818381546636237684224233851754521148161441254574613625872134175285263316377416566744148223527743158356651212758184285776718578773477621736112567686262742468424358121784461334181477568663374418376156211788318413755483676137555337645634662262254611168642284736362712235453265615677322438867585475668862255636764682515588128533766754638267552586727333332785777534587571136783564864857624212152121538588877282355712273668545653463138883728614242161817853184132882782238281372575245147826486376536626635331548164335133742271534766446165786783883183447352122488713176362827816366671114312127858837254425373126644422512621263265577636835834564676833764772164381233533225548626311673737581131213262444665536337853335182264773655866133583385771674848123216473648448367516252228314826243856782432368786522311382378651526363216311878517737766562534683888865216264734367122445385422671577255743832458837732837566642485872236425337881661564377842157645457151681448272337333226883723165542316352261461863252557581764337258481324827125316252827664167573233251358231356163762617224548552744566458272558833684572685551312458261258424864844867287411241356778865563531634182566127288285478146651873843122848556436326462443118163137416512227837358663817715673683584321233582384351322182336313532534644581788322323238128756111838181436175164266275687663331184184113626874462241625278573688187255183757384215757463382261145527734228818127618123343135218422811472143642413824324523714443518217412366574773714826886837255265176711567613858112687182523681314555618245141127257626774721847413643524735716382154318481545343513635115652371273583533556782628172257683572616862875317576458324141875344264436635823671283675785754447455768547711145754683878434838462638271131731373753641558652558728317416186785236412237188325884784333617386521326135742443618658748116546814586216457612167614574585326613653443688525378258216636837555831745221633351243164714183528178258447111386112474452432778486373326734734212348454517443372181188768742363454316436862211175274631625543455555314851746445134486538778182556654256881615717224566122621743277558255375456274387888767522736263754343878263612167142883743538714348387272112327733138118352313713438216327221664163543565413353683574873761447712165283631632167135181366111852635821351824231631318132418552332533538387671441441151282724627867386725553387143744434362643536825514231258154814453576352661463688222214716766273381136781716736344234512374162362131318356688431523661764862264837164681366866187455112585478873348715817215811625333252781684527565636543744712415326556333372818562786261257457688422121855215658418172713255175524786767448522267746877811568787374621422153775625424822865435853882611715688332568626472124578468615376552555327371837137452215635264526443561485257667171861184627736261436433618443817884613742272717747356387248111868816872788848481223522483318362823626483147187666637867755757611843377573452738562155516148818661857723725864581483523327775717814442431887447554815844332773338634563662573338671361611457476831174451317317245843161175474773482787585823616886864138537625652741386757638185782884724546712853677333883412642716874488776532711313368615841637185512175748586684531287743572377537725486153472814631564438666426767164745671867141156286133732225633266315418218775282711754742321334535262657636726614751784886626276353585465126373758445814245431155175378751488731362737822534216422618585314744872631482614735563331358858834488558668548632745675777763463417131157518568411677266611616654266348718753664638225583563818123756686378212345224443656156655511236531152342432875822223546113785545616442454548181728274481768131552312146287267215731248333833158745156443758241731824524526778364535341522413282741362421765618168383822763257148245174651877752677678456647257232416537336262348164821352676566466181821536727484753548623135673188771714443882436487328323787756732773834221134568357878865631111378347666348483385171644776876622516443174624621775828317153731652412478717848824416116478663737535768451324813821581835762622272628662354314513332185548421335566531463764832225421544485525143566511786876614716861476635328666887643132368655142751431822874244617877714376841226725577633756224672158283747536817466888271568186817724757522212655842535678248748677654575656587678742168174834558132578712151735378583257327743353516247854114642386368212545877715571872153426223548536471637424133631886234526477141645418826486655455648256585116741378861361146357727424233641321125822615728142584335447478471258651587161641756851182535444238212821784465521313823763376711427278355483822623812258183734563881885232524775643857433726731131285317536562745217522858343452132563175748832212833735668815865132836262232358523482154622227421311137822653564873148527788237355135726677825318674385745465252464823277678375328318881233728652114112576461658681385368656228481766724157223153777325847568514251832444733248226645816658276683786187271551473744184666384154313678486248356247517642461773313347246567254574415776574362558543336151863821437675341663588444343617455657766334557582841851852882737111446276537157258822666765154521565871511425817768836311422534682346817545213688653844182845411515753624814363385258235125363371535564851474461556575687321625348585147173286242461115444575725374548324531222465236672115374767832551621712525237766546262328172846875152223436373846331258167857325427615155643546145762634121858287855566682853326883633245716633476848667761168428482713174746755445373736713742351231537878224755844836573527653433483877868444115218433754686631148144731643751436871252631151134535818774625665453158388184787851522455487652364678367246333174733578787632467782335746145454817262712375477834766347143354615537768513757212677327678621152311747375621241365757233781862113244677226846664321631826661876762831442283866387857626843817684853584474762451223671445436262636683231614728447623426156644513772253831362823642883665831447432357511244435366466483683616146363778514813411754164148366676423367325322623465463773461138737734335723153318846884317376331111138372677574245832853752541327122856784328744187381235157248142814553685635145734554756561462638675851221682244381462285748162846112771851144441284163654362522282171263837848635132457872613828786771163534116566773367417456436724487717825562321244575882685874128861752375276382756855772171478443575473112436568261425623367767186285512444752645477818843671256776113243338263417788778727434172443634164851881771625366226281235255352624623457281736214788823284721578626163482462772732781778351875847325554467513455645371362161232158372435753187338566551724444626344554638818742687154246687128721835315286776826428518347626657742147337813514843711784335687247412835732147243481266561636452852253485316176186711556386618415386516636444743431155442263121341861631844125455236767875856177174744448451163275823472163442211385735647754648311545342653874528658333265248138754385231575833418418673314277653758372186576533543217437722687633567436252422736746557345272114167771256414677353675178613414667422537875314716274353873338383714134728421411675711615688335565667256157764543121751326848416641553338626266444471278764371655777112668853686712478365464435623283366367685865171127324334715122127424241746122283574524684863242873167228427687813134411517527686881412458825376546154671233158357468572561618461636114274271123551277411461174143621718833885856872472585383314643473372342734218417327744744374528524747687224132553845338424546517878358746821165136265767337878334735671467435615332825317253683276624467277458872741341766232526287381727633588468264846266477664511552122441843535821333847424862886714527278542213813887615268127654223641552747747884365852454321487652487248123578115567413812517344283676555518416633541417258853378356512768676156412252844846845736274137166663471382155218813256862441857532735755647368355376531735522371131676741566268387146281743531618766242865352376657444484447177132713511715581343776285616115827758175155323126311621381167258132618772218462162231765532454133284772558586683466251673528882866342216233488416728456728377272576384176172888577434772471854227747823227217132542138374861182843314683411774135217733376382473623747247232315735325211538673621512376215115655873163126852828671777265473647283211518765634618376264412663282568381274417867783578871757143881721524155747587813861843416715574245317788358748183656887644858161382141635515263547844475831834851632714835523434838463635425772551787381427462751464616845581352132722868325517512152453562616726668726454612233387248563434672454816343618833833343365618646477847663541541783734651377852266152888843184143875457453848662474643234211672571873387673356452535815132756871867366145146453512663862757446511434225378535843678676857413634464855271744385533287754682634667233412572577112122816343122255168475284153828232828324232456121565255351258232484882312223535352746878682575722871172313523217883356333272364422436356375256152157381666718742655476662287764731565343823574748884657877432415532763732788264753885744274335858712145321214356545276212242483863277466556578343822313484634837125428235583434473618628648117711122635255284333661382766747685667537123318648562612755235551284546125346777642817744866223818353155255541374241875347661657673155247487485516315548373147723775118758364875222662668174535521181143575134255337562248688817816622638248555757322535262122778256321844766143571781116225163688487442584388543683484272645122551412261661282221261578423872146744836184773815182716644613874325677184538436515485731317255384733247652562838447121617431626265585422347136872748521161713425544243444744542383344127187136581613616281522421725336112512236817245552371423565665145383416213586742168627135212476822333818248828776455367556484653872733726375364871413837374648616776758254681255266555183435885644886513872513188315821821528641648151355112321352428227331712843548244742841643554576416256326662585636732513757286583228511374283623165822284878248556277815422354367751536635658372158856255157271832155634768484668352644741665337534763221756273775615281224456226388321366682548721338422454245472411417734858731764476337623856114722582877742885133332781176453534744648583352752745631615351378724888515741685666748771422148187287148381338486246235733584261178458475425361645134213233551655211718127521555757245458774426886144646557523285621333217228727288664178547534663485663485873488435711452312777726354558756783643884835236372151455521453232113487452132466542356415247436344358165378122643537878414826546178875473141822275161576638881664563176172761854227873645242278635513316251722834683554274453332573471755516786263227512124327563476158618878362571112313415227255462418164817766774674621723635848278646713671134482821112862555441175465711714358112278162787118723451631477463474352235421881562864547343188184431218427526634582852446655634763751463221544583655518742861144481534822646283268375866763877486226565748158443862264727215142423771322334267232355446256437531514346438833346537172314144466437567327861882255123851424768572845436323128234746712751886725165227711778683743224355155686854473321117847777881883514673465574716473263132522262432715812468516252145117365173223163561473231723186287184383672888752868278331285825724821778138521767483875612314543834728673344472777743314211652622288167188513457733231252876257834841416854855715787821178651254614454746718481868467436162686127231611382242815857361834211573113164758141741883735587115131141313386362352147186545143623626454774471273887756127638651883384738834652857384613142867833862115568831773678615828213566768636883753817865713465145313655585884346216611377334788136168385774178618168264884144544241778367636313826784888453424715873425358645637474478485436427163472676247772221658564767226838837283524462584656373426838532234621867415534665368312885525335456454352424752147168835476528255457754583177842525418524363857281845814778373435645314782683463537625214238448673821356135443355134352332253222121713525736658342364567373655543524773122387377421537462447583512855836166455813636441672216257324714272787155424767716186628211281624761265367752618118346257274842177262318251872777377164752753131814745326425361788685142833283854335564275472457175558418475671774886475128862478812813522185238238847226664727425675537613873813767348876167776824277614613881843637335538177745263514162336332662255425184465183423526651458276468611268223727628672313424433648566388872223182158251187517733486683681473477641336136773633638468634442771352474186465725278735665118354878124538866227683265418528115563145585458766333626756774682818324531645337827351843571626816718728484623585421162388162658218642587131178576384234717841551522646221228747246356646216253714846667758384614131664882666554628473234724772382326472527371752481368757836762654318261168721851654548318655432838453531212384851472378825565428162484411336738434348331553265777827125258587412843746582728353255654245685533483367827765712284336641328448754187556344574311383164153514255532476161436533363635732258534184382568372841373516785672534611181354783186772218478143265343123227514573352143857553746142351232158416438318264121865531335858222633443374261338483526348511133313627812488238768131622363472328671147357862847437166384213432868641535333474883418288628658723386446675574578881778447478822821235788447413453241773586557341461548551386643526383522863787411452126116746688287428213578388112323881535311221627348283283611832886651247136618513428645675445514876661464732652654334868213733877554362442273328458545162412388222547358266478474315413311521232353754662125134251312348351873165151537346818371172312214887365572581832377223332138826416811557373443261178178842848541837841477472618764668363227147737583537165813848123828331632275111831647834888757158642472586757821851352746483264135843718441233888681772572585165658586242332282761825743588115537287812112882165726812322237452271137215114312744541343463377413213684214681775711835857245653573847165435573761831172556683156327725325841824563672784564465253145374537231557822761277534226581675787527673141227845665757413242681353677672664265612377635116776872845614847352432638567178724122216774838435575654362775427831727162535168536267584473122561543858273776618886722351237872136187523552282272433655347745145344213467246235364216731572773424812714638322517135475513682581851242512113264634277788134884888563671581526556674421184153547264228268376642115227373687528136515232131651857446865714362865383715165646488814561652254157583768146377136134452233817124743681661418267537143252523421415642327425412365148832243155283436564476827711875844658134651554827336175466531625256161282827415247846481721587624481266168761451822322111121887313181784477473274426223325872722721466524323647778217586684536615423161218138716424848578137468861744554437424733726772354211657412854367716348327653788216872328211316184377816773267758413315833151738733634862755646557548147841881563782358245475116552233133788745632827418646226542465634613553783675232154443186131264532553832765475381635824624682621573743638337756886277316746527343684856755647116725353687356751621123467138516357471446238875657365263143683377733767257215666163686862231228117352776557721424458246335124874481564271537361783717116318617813558644616311151381117488135486642323758471585325882747617856222151486442461682757633264866685511618841153172867787715817544111732423438687581146577664588865648776278725242325661447556114674238657686822121377377643121558672544161622531527153426735551474345348372231253664113353814823126626525645732114465416785354565736558721383461576237563685127317153641336344318677545462673413375216338134162141451867746186172612332815427528332488373558857234834225336755787887882846743623722284684166352612566452113445627834163241462611536368178424155425778264827258762488163125176325763486747333711626323582788578635162325247285767188125382821773441278758348822681418888151634145664526251118378175872546521621353374886666612271775538352378115418568246564752588158171777776186841851327658427123887875431131784481578815853752711514746826885412268666822266347154445716213624716464153778278875186367877136476224381544153126525828624277725513518323428381148317368786535653611517546476277717682261581725783454227836222162482616332414843885423272513611528476121857323327738724164412153611178765564483845536834131216244842725842477648887686681776551845784857783636235184721418224375522827717137451825484241133256778177457337668632876182264466724477234653486138234831744751212651564516525838828372123415533657472713465154626524433444554736644422734811368631631161236226741883136533231788533541351173734731784123413477432455587613575634674676586815625861271626872511868184458121257742538212885726878778232788785335478465562713487166655832571113657365787178187813264426572678624546185511428868273525178214172286765123151146535484588571544754211672683654477624171117667141232288835881217566145642118871113378847447254672485556464323138827522423715344171612155556721478216118186671785732644285846572563263748517374737687164655174246231124832466718274182224723716421237582734475184268381763741252862781571177657662661726716728625752528334256533681742127411468621832562676316673327281146758422472347513843577826315176638367276321242433441218546744577172881538643452683471432615231838785757378334561574574642164625314775674523536274612246311472672166485416735144472385186112161343572738172676781131545126323824343223131866656658474643362333736645125722447128134258576676628184666744188567271516422755436413435621216254138785146828468768778422242533586243626215127815548451361184428731612422681451622537252351463423184313263225846286522724557568765862277216781276745584641483141336454331526385535754228235218233564667735522675331748438858542488756385524677272855585452315542286433144123811163328554681822142351655234125282184856173772872276757462561158825871578554657736422134278251753416545287521468187882116872864814525714353851838724822368233581642283384686378867438523336575526436333482231133742461654118531341644884663343633538575673512346462726784727757167635368221454757541288547124782561767675781866726413166868328173258884563335624334631834855568751411737167688137552254325438174225267571311878612574813525138427114452368827854763361573783614264626511418851147362128155312428876316324711814412621386433674538231622117165226375864224547117181623788686274518765874838418365837826843531156883247542583275678276437687463238244167834747473386641476381263173256648131545842513321128133111136787456171664785134715425676485762564373445582175553664388848272138536437177855267442871742461531278783656553761614552523458278887773728544431467524575787415385743221145287814735848534332531162171254641446581775314716166773877664235258867643274234681368634211371763638214578817467262682622746524757774782458256168748121762571862411755682526884845743636484557688434611768255241715735471886632235315447454555683765318455788878215411323374814781427138565233658387878823374633442742767352334324178537863315521312478871211612615268833854562212326822618661587221273475483621557318176148118777885841458731473371887558465124711162116151285138174441457658715822123435415674573133244571152643522561277626765245136574388131188256342263556137341865865875674666151847281564384147545248674721226866756413713313267357285677665863618151437338643277167532458655885866511813744258655184381753853218837835878152627236626487658661358128224788157541268515371327144626345634336271877785484585167438761184233748583477877117311121613763875836785681588165415577544881375578224453518125652878632637723146828461487366888276726585147347111514643476735624455672375716617765286244824452557735854532212545164755844858215188372315472645228354714211236413887237373423612337627215735532432312645156483526155566115338568411572144488422726331641841567214822183132141827322373136173511882152432345887728524827283243247424224324513155824116483626647448562861381386554152381537883714466221221158312774814533433461414235354825553631287221564561627682384376817772856668482728546126825348611584341664523751315873364766436442845523844821127326611276786142313555538687658276427483733544434646215764611375636146425476775751246731751858228538242475154635628182274248727361351188681651383212126416848776462571426258387564443148444327865781713528444712842226752781654833873335746286176268852641663165431352885521725513185265813725227251411538611337314787457748157873574537415387735274831461165738277317624224684262364827125254768361138521675168866454722144432434147866545727615126118811451553637221841123851152463161212337652171262361236218153865883275656525212485428688662555151338561323711858557114631875486531474226186258272582865554263523622113318625613757625276261522581751752431851813464578315327273725712641383154386455453642456418155735623837164776172853268428325564743136548676385177364723422678753233756422241418813484316541433716262513684442113447748583345583361171451462672823766376627776213272134142365467414133361228745734633717134547184155187118851513662853323547823428825436337357323264416737228262631263563314812728366621483178348863388386646828823671386614388283172127672144885861188336755434443341178281358843528552216711852773542266262223474446633164755811265878665577835436668666118316481584222478268463715462143661168134556651546241131667542867573175537753877312472544817252628827246538577125853164535847278737552872548141533516121372118688525478544514364582364882268745756882852863486552658727132516252442683481481143874755368586218143273287237288287564266725215116182821733628547152477236716127723814154823846421554877638336674175242311661112124588152842381684878726773558468887888744163648244735171315127826366321485468351431544542713381137331161513517347317432563788868482214752273614411314257117161521436813787655185276318121476415247885864646325511882768514824415852558681377548688475113482542717851585274114634577747754875756328167583163236552113878166523224627574751761236886385258577451532386632478517267683715433368323247877236683278615683235262153377733546872766416875768372487785348651145288718556248677834771164646412537477484674452822385863113614464828328456887278878543448771887175826758446225728731672638728223664241751448527561615774425144372783564277236854674838377577675732675273686452481573477843612354281617144376225841258648826722332818673676388571376842811672562638356534231788733234374358263345232555547524164176472876754184674488854472855351618753248215343783444752627321371836216284628664515152821452451248768247676348456563422453617373345868416787733486448354332161154526227587347453154581623885682623412862665117474888561736485364374466314711227517552215724157542588328466577125867288677778214438131663327228376252785532557861563336635244272464344817661536571528343463847184528676448182726475466678164853172848551461328654867646514168166837543686487331736657325787354144787727454887547813412856773854388762375632285853384558784251278253181231341815842457146522216288154273324175366567848652578757464742841444847385285127843727332673564617268885114373266525157782648175852527185133327666732326472186553761378878271624366185711615337285328814783534157466514362514383425423763735886611862455515132144552888777134785557683724474578511711354757314458875364367786354111115257158111658383321255457734544156532438254781178782313256216363132832457833612556684668388834886181832382663477744376723512811576231466383311773271568721866621414127644665443337474122178357258561115568121143757251137831746661466584182253445237846418273726523243357164325517358881525463172215182517546253688245266328387514214361731416765786363674671132218542521642324461754182228338148861188723812125186566377376777741726417768677286514238633117552611351736362151421712374352266146132772215371422262385337514215575453561117718835722452773384722456311372763332811726884331672427725821786136886167445567683542183585675155621127532185534785862821555621852851724621864121316465226658445247388336471482128736845621332555372771578638546276872421153217482376345874818334872671685675485321822128566288556325452528124326877175613328844672874135614282481818538467463486354754185462611366221734661626353714811426644472268853386155787637737746261618436178125722466311681544262818527226737376131721586227211466827717481788268217753242867665466847657433458831323634481357751552426757753622454484848165457273424766513442686613116164376184413546787713168441621333422137234547214574877723452281533312622236526172531478335541561781667847211824737773425836683648373266684642735661827271746276224417766717186624613487377866544654582778677128547566382247768242351247173874515352177862448331435256665824174526475263423823136347112563567686432628656537881222672715752616846178842314663452521411883633434213667884462413535673338612822412677164567428668313336264163868117671717546274271414736813316273612472813532511622661452382178111255145164235286163715844718411275655753375762237214768858785774141535551616838616784678335523873643855833222253537163515154122153347432723815368266133615114318583143375376778456666136316384221232228357613647821684371621118682714715376317115265281832618577668721124645422188285377155113748487288633744121548737318816257716223146186268238272573561755683821282582318288116864887578215213882241337347227572667133623284488614447338156565433812264544588431544837588253466356538674711724744736246768275726141618256335468728544837742474257235722254657311735725215444826311887271325116785467557218651482157863554245531134881321256853237522544557272754341343367661543462325777356142232256251576547874174628542723835752564533757553721787613774144338353613185521753437315254335667283261146657383244134625648275161154237788288223623655326241414578882337324245264248641132778286172175477857142463416216841861245413657113877734132427173268753383355163421881463212178352846746278485614414517735613515785261757414142572648188628568227732777324484513363878711664675228867418715335368323714871415687574132672265767651147445243712536146211187561116712532743234144447134241566544824174355544548851451544256781878186471811162836538551666325113128427177171331681652675327585883485388613416262813262668237676636732788228433623116363883722282474631542282431631134428682467526578618425337362162513448475214467188117542437315423436862258516413124744657287316621124831881218571531186762312644712315352178886658755113311272233358555358228872533784622718882724748862683257367657736866435624658523352374771623482648187638782321555453847618824758668432162811135377363211688244211128886154257452288218775688776784558834346642832527212447426613727711812573446557174327721487331211762136366683262568142257571368455354557387612437418384153775372863835755382535145862346381838676175632257167562765566385357823336558745248865223478115611163352117652266163354383218446253155356722114472424543731335141155557736816242353613643755858122246821672183734764215441643324537281838718688262357863144365738325118658324242166524824127566287766442864454556878837131886674531764567863135773446251855624636471547414724158484128624343473282355656714811411727456651885875166343588141181647281725874563648461675381456187626685254371355387836562367853424144631764881186478713836483631715348832478144683343414243173154658217126531166817347357326638254664543885682187782283135614571624747134361266813733742472816568151753858163734614184213283726432474468143375456453843758712424322665348347744276442474334463515647747463323312813657181217555675266611817338288165841561475521787265255154534516751724533771831357731132285223757541153848148264523533748821216636743283617572633153383355173356611871856674444711746143316643318156658476587178628381532382338732513222761334263212835134824784522733875625712177877446538865136226172321486665263674343311411282566467424742434383636124862842715247158111843443672184541714652773545256241554483668671632784143384826512333472417876158845318345314854656185813681163553254658875347624421811246814266558181578211172131287778541564238685723434417522387262286844433118541784731652552375254825827725746735774856762866483541133525651448883447132828537582612854288841435731213412355621546613138674483166254261153232375156136162471484761256353372477183663166275322615481783622868665612617183625452862141113266711132268667116248445325123411756861286731382626547238447758444242826356486555275558584371731815763288735441137381211317877144521531528134784333428448844448862182148528668167811821872483875175846565442148816585351458754337773235678781451616848855547841685618266223837185456443516351135585223512714261715421466168743468677838775263211422265543574831588358733426316846763387345615351373732743478742424723247467613688842736741722863124315242673158524763246838172881431812778642688646851621278174223274132116863736588331358756345331634545888278888822623588881523356627316785645514365682382318635116713578614864467637863661384712277286166131236666451476526853742657831314134381112621167731725547317447547844812273788333121565113426367722228817356871358125273531827666445345766462256124343362451726432536214456548312713648644623432685375326647578328651524683116366461853336142674316868444722418652727651432258351844485836147628752633333458171875322575358672636566888215774567261334828455337674341337566828746446835542664538161753528212755218868483265338285372218286373581253652868217234422317227815335841315563183873321241868466868154152315371668661441217141413316422528757882455161277653683784433355731681583218284856782767272263653432157465144216586661554332666116822737838458715448261664431217588643243245733333741873426213163684574758437337623326535846228278234571284824675674816587268253766235741313647875375531354731267551742863284572778833134527341156731824811455213283266537857124787456856558278565572211183564844451123375784426865272852218681716518783453482255361265452132267435175471435212615622833145721633232338348855283632424735126156168718413365572714826166634848516284134132376434586818533134155464747826742445514782724124285638674176727132578665446826135655634737121724633365726577257424146486887175126153632351772624685334634488616812832167743872841243513627577375238442286251355366386257173576681512782116787422122387712221585323582368627557628825312224243465772525576318767631832241534547675546682182175515614575245668117653138245428536714223743361771643543234435387165554487725413243564876326425838242582331577412464823312824263674811614652563315784784872858334784452783128141586845131336236362727814265766732186385185678813151516584162422631836535161652836854613771128758743253468532322876124413262253243138365885123277571836824681511873576665377365221271832162138176132778116488112786846143855731234377278537515375538214216448438526412864472175316336426157681528351424562346667356117463231857841653126821674111716324314866731886214515644242787528621716488448236584727348477346877855284215628447731221235821617268678785437878422141754456286563547187637275124837121433642115158868417326425817476588763643345813553344583141587347781231265733677868137813167558847637754833312768647218212137532185736231567422872713431583442357431221747688474635564533535651513372466742346671834883346778586535763213446272764861361528547882474385586174237325348417832727533162287755368261382817312248113375214878373766813654571315363281761745461547284568875625822287345138343484723266732384572462215464167317355642132232376423211453851446772426375417313514535536838861358556785413833271348553322778821465222362625531331273514783344886518443674234756445763347543843361322578858112456834755365631554675718482462616166128356825542816156183711162335146862231774642356123113116818411164856112265487768766244735433215512872157364116681414753166373811614871366447274732276241478736714367315626235564783264223683464461356437227674221236627554767714531353764218481471718354611182552546481521456264815787338845286842357321133445816286175561258821645546228461162376544218281777753364685343428344165285674458241546576227438851357734162217138243582218643517341781266187861452711687368581135712778585343887748775312337431627583412816813646334732664574325662873241536712132285353477811277162156161746127246443481247332648822237818672465116845636261382853146533587611872643716588328411575737774522628544432251288716554684578617735471834626715343184164287137512135225387137363538543622481247152673227677274483853225135221126742161515323423627116378561638123786856158481668241447484267635174731445174126637667277352634238662686884163445768654575648737613842246311611787463787428813733187827525376466728768577564727184583124648446634327245688132512866744325821378676112636241387252445844445261118716541351156743584255565777584543786588652115362486828167833447684151876276474528877885674688465541535723551578366735861441853476236625631455358633826121673631423782352187618362261833812262373358284311632664582674142737125157844464214346486631731874676888473785723216853376355424548714648825363581853871274785821481865534152876143347463413814511617827174778574517114355322463518467866324868478786888226361372875767468463372836635547341348237612228266411383836586177172662113224236443573563788587363131216288228821347382677387682185772482121572666162386725584661748758837882757264451633353785866543412872163546648628154813266828736124886211765447311661677171861368637858113346764812171447241244117418178324116457352366747452832378374372373187571624457311464317833331554531877656162588613118568763885447413348823768481667325313583784542635387564574221858588425485728878317162171288852721638867416874812614873518284433265157586284344522861886722355533737354874317456331828587788113383727212313755444546283847828257435823244135361781266162751635145633617621824611686481375355536755236865667238787514632733186662372647314284771311631574853235131314742821315815164788285264777474857126747347522681675281647183445826616117558385454633664233174645816676218637333614631743157273778424634667482437552246228137812528178525832144586611138882378246245664356431588351161828757338154326622355471116111782643276777716468612718821386364217285564442255623764435261864854768333433357776134176361326622785788613134768243557874523854241475315315358273218854123828418144644342464353668332484783318321382475638234267767816183124823627856286676253631482716265334515167644822514567573431117332657852785354224577115117178528352257844238627175843253652328344531881811862745841822284133634243713513581342842684721881358634174332377122272412588654476421785887636435328561385362416128767324186436537572522225853634211148257867222176815676277242368143855612234317557236425845168161153581373771545255757852225787881711748723546758314218182571136177233722133418346464433357152365758736811822716251553858354251733622473261322136678144866182765116212237758133482312768537662862353445337831237164321261616711186847231138723525827634762247327678418512241513761541676887781257164182816836813863137334263785363762831583843748218148535521256131873842386377215866781817688418567468357676163636813564133144186713645271586728276548153357434111145361328667685846827824356634715132268633262433121873824377337812684657641783755523722811641232111433886143388841887178621643541554751255184645615211742772733547883615371455675713753832274545115175564366835125181451248368836444666711454862547344864587552285238528655158873766761331642722145183668731735618453272225117877447411381174222266172263741337173571361474566648153276221714677645443477541865462455234725854374528534157212755586771238371328746416762283334751234326755783334764458337267624646238571758268246647362185824357667585667344765518133818282687252171326712384425137477114248652726427285874125585181582672644485134523111528744344464237363718122473381118883434537822427758656565511512561471531382234571413768126144851668488488618756764757725481482538265224654336674265844254213122648221556678454431122543528582753662737113624256235146314353537512645222181476718462612244256624855167363172667364415585812378464861364663515333731858531657662755858182343472425422474516144726173878264177821468373314675154457323286284176681678828157261662181478115464748867766442755782717745612358341836774187371438611171622524547547372351777881867545667536842462256183137527371184332772445372257733186555348118217873186621546328515221421327238637814576536835582174725514484353754267417181615571827278575812856331241526346882584412138587388628613764458755875483253722357721756631235727375574411658571468145475218746245753818635263166877285413443766848315845462468733528768164451752748434146853443765652368674466511511572365625553285338756381536377112338456128135634221526248874474677234542125645163732455123457536821362278414122451266677171718211217832872171773818243617658668451228826872566723446766633366212874542231153645658436766688476332675815572853137137364641357877126314833785284664462583637272683431584571158526148788132421675675745888862581854741611457283722813157622872864144775437823385152165536675542823352512353387763666226552225863818765162886744776268732513278566451626723564522345878141824577374423682625647567233187786254158151186854485858662141471212277753523725325511474557366374267848312358852413247518185633628511211813887287273588418138461127218888284871668628565578475244864522181585638281124577283717861122222846578485267282171357714723135835641356833358526328281277557656372323862866525357237853417244862668836773232763556817245168126371343621842127148686222684663112715165738887317837546423561736617872424171711661185714636621442848182188176711771827381857663757426233746277755557343415273535837656887675262423757255743765865486256581216815857644235262465865681841136424821754744137261437864657337161237711851354746786653125558436146536278372354613477456173176357816385884286567573134713617113452282457436284828778358386186448237431274558821518431361846387221624687143615755355188783272818167113864842483578288144353258733243281575481658665341445628362673612736866142575215746177875751136161433114863141632346744336115663316673268174117242723122627355253421716722882673564533482226412652437776865743165287537656167833163522318781664383256687384687662133822416474564885524441588463333385132745813888421532581213283423533466157124856676715525835844263426773384686122612861558753741247836865112414542737451482775466726511771827147287834674822138427268243815376715668133175385746531222463617377421124438635278518671837765651212371374343737457326166521185163312341432412726627122474471656157757851657746577171284388364735522876643234772641345665312675184252486416782156651334754688885377536867324421775475767837524722571344765374153366443343612274118113586772274171735151136312623523548327433847821183712483364234587281511554343328386516834154478355825872273425242752542654158674243642525766847133355521676522132366227662163445462888524865665872252685757213446212734231454848832681746633565743136125752333775845686168473566776447531433612873213825724267525221178132153857247231677755616788584466678674465377823717865355212258884457812218162812414138326448387421876187851752582662381131536177135735282366183368218773745541153683222125635628531524467688384361553754186655278837342211141263227161565881528218633728583218477884827576385822452484343631378245316124424822234461481434167842472774833385264371336438743616734618718214382728748253243462724881547434853632673367577575666623776288672522486323242656838612545864518732666418778555815732686351416358426263612333524167243538266762714286437357311477768227782477635712524156754582478866453582131612721876668188814481246263365146785853326276176483226783221671166262588277573283571761177726571716153141516582741526582141755745217128238574768437754667711845536144837573125535821353734885257728812336535248647473733833114856544666185271742558538587717863527582367885636752415361121816838375577833486143271463264332671325738323638843236844257356125146381323543146435125512836645325855643667878522781411211564186657738285673212846157777732187334723788324341245811655214314217575562481732852213874484812422731186733873144255253218668467642421661155338425887827841587338261247811118142342243617724536541331622432414534455375755377682674753683513836468113348773518477763288251443785453647322543477831221735446432166812331554468757846528244773141441641385412146812561274238514254888884241345636553547667525812186855168211441186157484343814621175588271822132483243367535687383528516518617427738155478145472643254822448851443325534435531664686757188851814833475584127282231815322764824124328574685162384172523586858261568123543758875174213233887711437135351345811518886228267555654254681421521637237726484355487864311148167241733512822143358146547348256847121147848611142643166487423774256832632383866288415645554513135628542736734214141675832377371728671458243338631667852656545384263875815738763718312246887187575763421884842788628543338244883248257857412277221671661252627133627418821134513572324448522471643281172752318334465868537635768775758532438352764327861641386864441161218115877178843624613351461267285766832741431668238245277815482867361412242277262682761666363168753513474518376222318173768163627845873111145756157652815562741312767277782434118862627235116834221584371228681243122814522765244888434155172615176764372567763753763237443571747232521634576458612585136454588127261844852614534783113625764366158743745815135472448471554646333817882558758363277186247523322223827778422355373252463375264486454248772174577713616844137576773313257453412257588248357173451457744548577613532126618526728851414768436264276184455366655312352785344161278884486834265486388448678155761365765124522756476182525532668412657766325287812262134644727638581476775381142345245268347177536642171515571464875272113577317662568586255882157265442488386133876585376436332155268175112674667824222455255852245153631457581148567673887551362846765522361163785563458811517787145613816621558212454412462847353538778226743458612212828214616155811538323238186273275163244716867126614887586782216468471831234182658227844333521767713765577884731728523126135722218456122476558242268541724482318324572686453473256161752267155176285362676872716474256443255668278373541388446754361175167511527522873668578865318123278146114526461637354242477856375878356717425355172463327273711364111677188322711624843321517314764418815544784523163315862663246366824577824175158341844171182784186511113477673624465773458688215455563571425443748434448317375582154477226337622322755382286716528626215717531767811445332122738652178658563246116622342423313348256187555546743574425537555578582761682316587846454677438884511687463354874365176244847514151281583525173121524385481717214388115367543744573163217888676672673871734665233286427823847325558753583561258268727216262888245681646813688565223641337283264643474271211136328688488267275225433547557332654271238716532111654165737321273212381862231112243511758577516484223366455265385326882646563212631636343766155683852223768287137151472337881235422414656336745242355185854863275483457252546156843557624271285744646563423135476618561555662315478113444443152787425271643744848658883814216156788366848378474828765755843655431137737336242333286463637813222225654574377217586734157425433525786852348756575354331777422641888572775557275417742535437218357823661323711847787811541836522111373165422125881652463535274173166471673784178252114326541145328667715152251243828452672573675658148324536247418442588744272344314816158471282843668528816747837475182686776667511463438771563122687423762135755662522558576575411823218418552227146212738584612784624322877186862572762471822156237536334141736882744883642526336751573556631886236686536788178731748212532331821678113448854843887574337462431267235176673134188727357784614631244722578543552584135775246628448781625361582452452638223752386343114537357453665735447788878323571634435372324487138767433364388858462588781236636574127322426323226176622715275584863482314842824688866717422667235245435435675624516387716173863443556785154335643478826532577788744484815135366674363825261628381731717116241767885354842668618478228521341436873115568336856781778632433162428731844847231828654686481413545284875478718756482752562327563752246752332314854216864685527881775556351577578551326682751318346768285211867831523353234255781436143234372741783187117481568378871361387468225584162711536165138626446851778318712158613428187138664151745746384558436475144717471856636827546868573136532173437283836334176453477671148327231145117331716227155881814882424178678528366577481641646213144422176615633187783867538318511552566216776675135422842743454226438751414238442651422665522631333318826418112866188725474543563864533241742845314783181444767221364357388281477766775736161752545172477486132787563725128161335838646443753848452784816874676246222533767263164354452216265558346281476868846442474361845411414271787281272482331763534162172356346753537676726481413726185822325157812738277584635676456844763347715547263133553171433774257452847463881358222481218577861626476373377374815642632386173721437166182881356637462681865246348753228464211738675715518283587278467815473436485643813787747355862768824337134217155144875617784642248568333421235435524672562132745768763714486611357335578357248635368521658178622522731625241118313364881518276384577328584261212484571542225552876414424442227134488528382556624152451864683586582528418551313414321314443758125366324871176323425243583568442874366651428627158361288553287352485626768641226141161585512384243612458188211472545274632532152178385785715521765373426646452521545685233574522726665181635766577153346582124785268665637772288662815332484543166688238627714462348867777238216776768637275383233676555178188347671354237667651635472156862866334355366218144724868745487345568164367586557611164844153877542125212667371127734777283557363171552735354346275251171133831847161813445548227344418428662332785776286742463284245743676528465844264818142127427588854313258714836826487356167537571117388341333182447864651223537547444867167177887673117235178548844347224623417843254846225665656162843312328624885358177241723488354252171842817544212685664871565682465526326247537656828184211446588142671454213638187853141775134147273224314334833385618747352452841238665768858858586441343188881874516781742447386612416715361437478264218311741572322167284317642325412413274213142717334422252184542457764354355413835164251455571422265682674884286481575237755484621246875375781211365887671888421245818547674785422176522511523313413424272328767665483251278211151167583425363136336658746626738446852311886216835312242773225666168265855375546263846225216471643538225328568253556845153451234584266615363857261532743148262376684132554556143766846352245133763775611653333618114716671273531775845728657888586646315384613342842224685551411261587186126452253464411655615478545315627124715217558574721166671371558321317528441868152257733421266168716528233321223815444655768246673315237251848345741225468473117147532413114534268752417813874687527327338658266758155556412876388781621255242434316527868156753342411283615425725577361343678623568358325764326561864167416135388824525787288423528583433636332281552737614655576546575525818125742181457884252875231782477151642412224863487376856515411372846253865333347262527277485124325881854286187724136522151663161536323638117786366528432554462284723773354231436255685722124714352231552642654166312583652742734156728858225388888245222155845352538234214341218274662537622326446158236567287263518452231167762144657472216634852587667471324238515141362841113357685543335747667771714667445631411124844524152585573828351873838682153271673483157318811858322887164872115355256867555652553418825361242444861666178642463414315588673527864546825746854284582757385643481552848534278565734576415546556622423446432158588553384455212748647142351556165832337478886636652433337471647347141575441121456585737662736237613757858131176333885627567356123115762764568763157386753248552837424567671667544431665181653416854177745878338748516173754254551654435673523263222736617284318864424873314337348587238845465853462568766861611556438838235687615867511817837653313862745122553118531626471256253445681718164445155727536257834865581572454567274423265786651743883127754222615646861226857183177448283324152323678616168847743374864283367486655383668554114443835122358165612217164786214527577776113515246833741826386725333721521462183385538381826367782233772888754171541248287424368258234433378787418438318252254871711313647573824436454341163527214335315123472534877367171413233656744426664574668416821152444766557881236655238141448441685738274138152487561542275136262714638683517713231885118228515654726655123458443542611638558835813555726768614134385828754514682126517771457436853425166226586358575134736278862371477256762217163632715131634422565842538756338253414664414743568222174636355272577525155116468152266588835458267636382513815512634454146557444824541567427168812824424661274345666778531314885776287632446767115373383183587143468812712588355481481716653236271277158264761326426186738623446262863851384132444221464133347664767228828388244522667762263831163452443448153485637212177446121466277587282411533448554858352415123747637767432746487854581336715776628263823256483855314814344432761676647821361622227327623133815871314716831563454373724736674357378738288255187576855887363787313246765647853722264634131466886322685231635864757221584241831637584176146313375186223233886636472551222552576155474664124476215352141255121636162414726865542774657664843825688588842535788144418843137336565474175318474458456352354254417146222642556782337138762846487858571622546323423823881152412254727458311637141342617474521413454368316861772772622526545346687624414117743836787816331732151738836113877247526175617447654414856667623416355663231645411716813548117458745312682655813554344265275676662262117243631185426531627253826143814727762766165775754338332813363412287165747173534157152357274485624577633232584116512684428537268375227142852137375215624573465184576377231143766457636675678347713116471582768572154677853777327535843188276682886332726165864474577877512742837232411176371627675544382543436355486114738757332846153376226852452767821463313517713711133774886744513451746186544722531518165741711742786563826168238386853414455236376688856354264718452413824534833258244861854441146386287617211226117582384684718435244672487211521146262312782631222358458376815618183223482332451542557243714371871213228142844665882413753757813833822432686761338146327664555724713653882265367772511156168522668132821223746384242716221262418873162753213432713883324317515113326283163123358258557675285616617824887816282224648214674354175574673461141822485173542544113356322637618611526232246386667681433553813441383872786483731586585427677632758226183483676383652261137571453341656186131666532424584342187433114778172115667525865418378177185173146857485813561166115574141654568361276376631644114268374311763616774423675425786214248278223553282331564216785273356271768224214843861487747852347663718627787288556362255527748315553274862781424112383444885876117426573638466467567578834538711618357371284837754217662281742812514812637172563844427616781557465765684463225261528175632476871566682287221747568164616852251264513733342382648323781245137721362222213312573175121142325116782128238431357532734584736883672441451463485727166136568265488444176288285677452261827414624658134443458184441623472282363635318318352352765484642732654686724425351572725155435377541868351783814668812117226752215261265855826378331147768215333556534236427726346156713474623144417881512851372874534562631514142787825711815154473511461131531421777358326732846887584514324162141843574733173648288555657652835586554534818843858472116773846286857117164554416451552215268458711262877111542283745135528264114732886486212386377876518172452544733248761661317753478377533456716837765837535312528257876373663123868138873121343765228526871848736748487415286148567231574648523863773221736242768577683756675678826848588363155611541723277722474165585578484165128267485247375447814253113428586211816231635761667674841288727245216828578766788254528315376287674176612575821743815886131417245341621777131724222462671721212745414557331113221837682744562622368375225376515367144275337111383331528244762817463551151862587537388261647514312364161236883715241867817755856173286311565716132725275137221887224841566257827266674757375365757227275516485712441835351876558871467888315576636438635628835581634213133272525254283325325864687125174818252374463715143536666237736314321224531522775615472662542832831843165284332513146873734177377342344833826263144612172541165465216658652165376726131345818256777114178873126767167758426447775583512256164722327711313813782111467241757148246574624512857157762376333733324173114262437211686775285168481565843158818378354113288715322464538884542476122228547175626721878737873281767576211118566728726711315275852776416267775464325162688323525354114632276623155328257756165672148278816567541248662546821477253672542315756447814134475271116174715635867272178157566774552355416875133752555261883532686828421225627651426134638153232681348322558132264444514476466635435437278757635676134243788521633335651616565734114438774485168853234352574254355474828358522224143247466787884437588525174866377582118675571681428432546113387126836562686722833546667134161743213556432624874737265648142283273118658636175564157522283123387567213662471513118836716214413866646524437185152655333824434426157426738347754125315517522154428267811742226584225773534716728312253834123372461155875425754384528518862216153224628331513843851826564652336354783685316667564532875422554746123352853326633755551213824178447764538536216443718535784812845771748313628434662524761361421658344344623353721848135152761816546842113117371343225487344481144718826386722553745182735834148276648174635577762877236621721488264668112656413312274722511641357421882657364615524562732753888337427581126557625638823767227716555874643385733116164857768241562135181186548846224618455141614877286283526527811367273484255521338625167775345368647186518761711372854331524756722282823555543347483533255536315285453318538854663123348763461188285583245212577546876734646423138654878256474238874636617158453875448855663282741771522324235172222224381666517385423312321888622811145268731538761662811666545485116584533556281866736583324421626445415732222215787223212553225831276736547428814386416537557146634264737566137534865287144715544662715358138782845461744382426881736358853418684737823113325661443145141471316468856234265343147858553567355817481774381581485886743765282757314352777416246445126163583734662186842782414727836633857832457264837214122453852272176838745367652247621425677586762435315512164257185637865632418247645366163585854537425665865486837525238275742381718346713158422363553476631736814518258231662865872786556541887425331321186341518777541765752313743442541845883472885172334154485448551614861225171577327428737338382832488576674713382131828423128223452861645225244827571583584512527712472851261633481258275216454815151825838182812683312787244634811867162147315164462321142262623476278151441854162253333256438436152137163734342164167183732372656826333674777874447723783686732284734753246115216678855382174284346738724481671845747137235622626165115254272843483386616245113621811422581481681681857342748277737746186682767886881325256741634215774254816783552258675151738711355471547724148354388585244235252465538817322827117824444556141876111687586774582183117551832878486462722166475682157471243347876571438335874218475731814735631155187837583814822111752342511515172572381681658568644444285323881754854874625668214314731863738822467763845568478521653456416484512157328565471318134176627154421585137641855843545154482757216836515168752136372553557743631833653226788858573318364145467461412473738735651151573657212125635864856786437118264248866737317854856316548421836447411143571146512233484415284715343327342456166856715853168328721743244475683848531722735624615346662668315668382371221773828554277151652287126821148287475116585886658767341542353337643853662832513256152125827711575841814186827243547626864624778343884811658144115864232583767658627725852855865228212331314746325787458512767376816211817152483878322332417713211876647143378347875125323714282771511322416842631817231527586672438436337132372863453211861214144867382265153256212128273764835488235842147131327226241286381535428873784657488217487427726466124872836453787468228137721237435811783217184832851433871864326864613821435728661681677745773546517566665254687456582436514828275548316477857611158352822464858223211758612477451873164877438452432574145848755443726721631676486344724818841185467656771824224557815486856156668115458412833355645352654168683363418451241335716213137432111387645381871814254561744376174224557144733883378434277512311377711324764151458162178416686632273712877471583158364811541771117857253887626128622111754713528425881256124436387554541681148556245737411748244516132116767334144384134777683728528336674526577677177423888742484483151418733682118747214687744243558666258588668321282666256562834462173648675376115833547382254651435716642841341818753358442827651818653744468428112134638836358141875838373785412321374743538441415654352547654575672762225636443818182356788316544626588667172448147341635555818147756331117842526322454566234734561381171832174422334771161443816613671661848857777265843154142628146724515561158773343347623471355184542658762446442633564418544751875127664824225378542683525666725833661727338567182337685732511763246227827832432461215677545572585823372244487232222751261688825114142253563172213445162712484164465387624573418418173234178446568215533182848556551744757768225215658635725372184147233521588218342811253687583866748717466444878746857837353646482442258858157582857746572543278383517164136585476252578438624644561244556766112787842545226647164778311687818257857162281561347723323478775651222588415437252611838843737464445314352464251137787672132464878421513626242812781254427362728667425353847748874116527852184636175372675156635133645246326676182688553268482682863273874238845615656143673558625531878112152633765565581546474636785482215434422664384447685258514614831244682755284588465652217675248254328465671211224378515161552246565272646757535864474157263386618826757113853246552566854241422161445256227538845183487878686484445631848717652367227672547347657821622557134221638486356147523175743867767358128837364578486785865762357771643536123457157437585247173557582822221545842442767352751223862734845651351262358154146167132364334511533351442137438185414282334742415786512421224784831356258331577637448376468447547541355758813775286784587443884627614356726282476163273183878452287324816383282564773753126153742641217817274841488432443255416271816756265535372384138141351847635371654287423522182566388153573126658275586455324572817773632138414388717358782851747525564467365561152544483685368687745377774317814755214531654683274322787877748735442565647667885884278134728313516734884732587886811874423153321654651283332721418263362667655732713883825263871486731587464613484643642827375332762432834861216342262354677881734873663758846561487581535471264227581576542265814333453611787228535681124732488838734785861352822551558148787441381761856558741515357233277823527665627173827674326241154813862737166775767342734527288381643886484247685236416737223743474773272213142224852282673824353316525443743835126813167165582828347882763736345686613476646585425375232212812232488417267424636251433351412622431477751613235437262216347175235161726853736171563373177456675358381556531314856385351266412686536342612318764261413585216166785231117748673788741755446151781121171561515785445127652134664672358123238677872181833733261514448147856884753658322652878518143657451256387324252437373243627871482174413285327221145326257123633846446336554476147636852434717667467712267612826646143383438715523461676144345676441338668226768775513274624747472275728741524168531527546182436625816576388713632444817276826658725164781441378574872468767281162345782436431488553788472882165816245385618628374331875234847584215415132564513585678263354761356587662838445312548423455788574341117866412617752464676733772712872468176843684837165357685443511744437672851421277328245481321152485338235833622148131536357364571763643815264877846111683238553541872262457756317677754647611662328442657413714572824488828182224765182747688116868178877546635768468211178845313311815635168343258167262636366317455587252776112625283333631466873238625814264143558553733448284224256613731882224661823333843862346577836526437712468652123115311865427248478826668545426624355427625411144116663614742324655753325536547657472412466684638872364534288631235376238757837832138282377241854458677624224866146135358174766868846415486871355838225188272878431147686142266436318424113857887512341125218847248157567553813761562361581442865847361123171166284127666776544734551538847851348317272436282261336356342784784435814256843138757584784664124533134156426671365272261614723733216377635464417186811172168153338836411153564138631438212213146811357433488763732441861247128726558353218745685838883617528266877821311772351711411767286171467336426214346186746521336614628528231747847527312658458227688242134215668537337118645624453164373451887442334642673745251264357581651514387558636577113686228847611731258672315863431415183856434413286754155222265813472446256376685347444865657848284838322128655888431773157842566836555757484858587546818364526878685847474746312265523548166455485678224368818283454678343177287753332757655661573121544728347784173768315538683884525117618575554841861181658828167644215233377648313122144145643473584167113636536445658731352368635718225448713514645624651557437568587213778711775424751815425262282567826786561662257727168583468335177633888156848722234753286126385157434116411373262546533345531716655625353456363437282472645436757481633868686115885614835274756486468432387558227485748166552257782414541165857483877574285122867168288212766276241884124682575353763453681327843118527556712316351586556285155136644518376473727847581825487161345782486633674564811687314211812287313143311457524584474782553367715178428122871188137273418312772355884715661738341764764662448645231677851834534212674722862586671717211858872413236678462681455186823518563624534362828684411121317665573851174477536216546327355737356327375421343824375613285674371517146377478772766833353886175142526252658683761134468738234417556337184163116281634374713341712485375377385674417535873827854161668714541777227567736725577685722383624662248116858337456282744661528885718476147632574813147212743447875528883736852158433712685835388727417772247448358318165325724462322716681142133161543272624667858736486276871154118186355382184737474262566637785715287386213575181176841573153318575325682556236834635653634565228747877241823226655282254667788741237857827848274783515643427462175577455211737814832415314221428674288776758226311126327748757476882568222213881512331621363212517652648568737875778756583861181453587542184648236168434677776583848461578644324637566615551321364877815565187256871357773872877166836181358172436228117162231143385164617372534326374682815575822278351177317418787363224342818237751738355116545167446472343332717752374841275477873637552452632264312354442888774727568424584411881734267334862444767428845382172832344747234145173835588185211184277328148213777677886852177254532264145833862445241486312226546451535737685736151266586625841683726385655825271364523284485424485181334525114781358567723335435581633172382642466331778217441611744258374218326546334211652628783864768871717243462453524483447635772731427317245487328765671541784877686176517244546581267728768833782261537312766273381648635337564586541346331518815578518137585842365368668686376414152835742115348433418148644374376541685765186648151622545541775588235412627377358122745411175582224322571828711673556766462687428847266235616741656483746516424125883675723263235565528277521137674553715727132385746732274753677211151332112237427161875367313223285827235145774551355847345637624215178373757272823467818562848321885723765374443781351215865886556117484688143178164251344741555266612161542556424518331621676863231484255872538658273314448785224324645314264288723121252641838352683188165542133135727888672673527427334548728738321176542778132541343414146126557535881135688451454415875347818633887681221763718358414138776758727584373158346267778277766428152577815862783525163852434642657565333538428637231285185461343751454316344814387123623836836813557845378336733235454443146717168564157682461784811145426616568233617564322456424537636817334344564182528335177186831621254375633732851588266573346875181227357537484153848464757155532621255575472477478432467231784833817263761125554164311684761733188525768532254366654433416288415133676331422415742272583218716328347167665876562386513483131632353655233782245841357556566588425757462351231731753618152772431575423325844626768611673757551625336355428886338318846788654423813318727666816834888377243341342667228146343143582138811714818732354727253534851268726717264116333422246351625738711241864144746675715237861118856161737238664143381521416424371173766655521181821167165413511278553827246215264866744845213321746134548336424717258643731158214724245767478536352273365876857385328763677341143332254722214584233721754545358242363724612752371328814428811435638627757844637751726758426568782631512162445387161743384812877751772875278427771752787287146728886651345774662427684473377551425782522288533761281647832477186675537644466311436116761665575818533864366617442148785467686284613118116743674547434547413673253428181464687153553623453787713622681434461375312248452712278526456458515681886611552412526147778185123373862318854262473184548557221425367288182227826833456317786487885512172263665165816317274731388416625718665842148766344684321331183243166337232774418537166651756646624153746531161631216733575756587581834386451281316681818284718335837433765475565331387874834854426836368526131354451328612614226518216257537361663714335566877515285717322658776233562228477815434675564745684814861258167558167543785878518575168784761323788623513256717635813787234853248672142157744364755741333426787765845712382478762326145173633166637318114342825223487882332337651157837158827236435885734834761762334216687576231771851121486141374454131577267842614426433746761763846881477748126228737212455233587283812486854673366146357577846323623727224258572253588347712544712754562687525432746677535488736613636885624826712246651285245516776443671173428333118675861521785518477453464115312848246287344584518854267467865121141356252517627621726551446518363315671817371218876312313168586584168721554335233531752627644184416478114547636688762811475775882511572533315674337538633787474515323273461815147757471661264632233256311167563155784846554634727714281886722636224364116268626284574373652784223211576283722237556874816286364582228714773156827572633157375781622313786653455778153154788148261486345112323582466668255166643678414672573833668413188262746711427845114853836537814722665823161535733887287542332471557221174246736175514458258187128781515881578857477571212117521151777466482476382651436644552267356688445551841183736556873886783153684326422181163685153143777154171423722881514568245455434315724433412552322465478581244275757366317448562627823472583621382688421734777525116324271552347574123665711563671473567678524833132414652768643756724243261333243141515753334371157543455458478674412146146474488318225526164118118221575233638231257461163564474163137651628513334261367582616763673417266216435458576842762448473631147457657364722472355281618138713345777675164872224631411174555886174543628127835367475248585651335476657331738333731145812236361474251151638622815661366181774432823625677626513171766443232242343362746364832836873384514427228255811544686776444474811348252677365188455711445683653673665541144553564742856422456635668321325641613777871673728557731468568144674658554578562286846688616516844126633661624711285432412768234343816343422582567221837764774827225441447254421718588476524813484644345262513358225254723873233684627345153185176681637883325344323213428324833352832422623244345353665264626813715614775666762354321713744535472648276421213387636366351661824255734566286275115612137715553148623641355568241411671131586612533417281654347385154267883251174421711463787383775888377611614613754766723643881576412832518176158422283523573311827212132616128556646655124344116724687557321273856323582822183772741513115683685373343112321558741587864443728427717627726872435453848381643241887451832536735171335831152876145776561381643347137232337533786844687784467768368282382712172473447387435872414434333463647476637536176664422824143881334738113735243776874276342547341434432622813881588114437558184786711668731126765343383827874361141614357138623827723211688683656434831631367628212187227773138477832612715377357166888344553281854782843467253731225128241556353438583516383365173555245281876826842813613546642654877483551758454641672532363148533868385172123454532382577788442645634743142357766612721378721651371465346447874222414412188665451584787147886128236533648375827544834614484783415635115114383747236566173238138313871441746726537851335518223248136772435726536888128548261145128764514282512851738451364447646583551636783148282736861374645162436556242426136875563351312517727164758161631125648865672433374187168673346157673536664715743712628243577281157127644835118386235751218577341647573146544241553214874748243314763136382772744135523664287578663136463242483783425447837783465638376386186473381532475754286636362856366872312161318772367611114251884382573485425111814344144531336662481636375552313643654767566281448222726432652523587845382621732648881514368287414867484233825776746886811525146438845438671868543788556225678138888432466451164151666374853553152862717258223337485634776718214167228641333565465635774464442545364885827372587257616641744668263357721355524186536817878456848835727428837486756546832836317281738271771571835245845118435252884772555561531744385816528741816374215558378321751127638211811615636848564566548326171117115735415668536173314242511627275668865433453637658648811647563116583713148878722655243377731116726217268764642777118487767574336613121117138376276686448787381557851836348347523388538525124778565228858844315312735454155418426647231282273478633777371521238784324113237246218183771588273228341627641451731336672447435356278821674636768518777878732353147548616141377834828776356552523376247823627121528557881512451788421828742558471336722443278357876564557324358152681844733765353826333222254256876636221263487775415487328681488668147134363712128237161515615277173552855315114837414251732318724775831437648718655762841142531664257862712382236411554235174121234687768615787237244333532823633113551426813785315318653411474755617421226455543773715656711846424336844646362555586668128221432822325746168385522255157635675544646777285172338425632154628841415653467646766777846153284855185267274644387633437211485672257431248214413266576817527773167422583571822815354622573868335673848757726677711378183456876524575556118776264858727731435147215367168816688741633266328724512637541417646322472718136175185268681482232554413348258526133326875822614851867712774645158871665823154216313774833466867463215384661787487463736763136541761165543227836464726161461134167744455373243551838332848127282566668314377534383773177645534472728625144514633177175456178524666388568636115163762127385344471716364337884551544613542643771467262581858375136267277152381444851166238736146633257828258863164177452434715275151758745618616611523463714127634375366586436164786238571878458857271746281863352665688457488444238814638375676851288131846572665653682631718582371871844688552684654786576283381875178228762811463752265873812668246227682583218551677143381457472764344252477831668268488545341376776883681251336814553223624448676135462147176437751762218243227737134818373123468545336351338177777844763744287213645137762465324625263443562448378883478223724873468414636532461431367246127523538467736381414516238654333752114651211836676616126187232266347321112151725155464163553736452888151765824171336711753685347244221783345451158735572412123534515582883137744673317248116168421648487667258534524148511213255788638216682621163244285816288667317384563485568583677868554182538828475485528147316788422731643532535175386211617877526615671643753431826347167833475253787767754167831551164736672214273826487874467181784236515732226277825678785514341633484533724432881268155372416461775744276381258372843477377122666826435152677665436771378187831322155237412238473736755631284232434627458553286166422682412731648212147568555738572421667428473411262836542132181238865766325332456628861244141161656284882122153684347433834811163388457331433788724366321671447444388272835362824326145668424755281778668762154185456883535627243372857732637117341818862231821348444877257637438171873713864888518864446215627323422367654121572234678856488331338163837116762575118685342244867572742312175743141861112285388124884135884474475443254373518572646151641685241754161214262786522336367134227263346857132321633763268538147534728521122228843828712664365125267685567675548437328252645826431366723387542482181575645246556374636855416532436445626216833337782484635354214557176414267282862277357753841386715522138545618476718552855655142263433174554463741616862114524441484753264526557588373154273526362617635753268135634115224142768616248321587217661636327328515263746775545325152775473825742155441678238632843722836327862274677753643376471458527851614528856418441667473234656542372731682113646621258432816557385235764145815346338372132744374857434518686327651275187343746733243663333532116281386136161721241476467731887216146625138717783586344683743231532713463153837757558638671613436524522736786673218238166144256828342131671154361754667153537825721628456168455218646157821478151688335187541762686813481218112746776146516553728425462273751515378541286852814723156341226276462333142714614756258443562286434336547478855186678324366573782235575121572172721642675181341533777476114313254785131638768533571175686784218385567512245285423222481178266663328646751166578717847623236863282766428223732427378751161437614577835717787811437361444276137283845583877647777325838444627533726146332715653242644345726236577883383474825838661764313636345242166112463523281376417777413683768466373645135751182845343318583518334364546728785578774225661816686131254543483857533824187787257726813153183857717168145824336775545441726723258133636284634863523144786567484456726146565668572882442614251665117423636313331126826787278842523151334531723682881636124115836238732871868817754736445516268773655541314264141181414162477122354575313631212876837881734536438556274554331127427326186527731782216632125684542841645157717556764483365442886686737348781555218328545788145422755585472517674526561656637246423563776116465817552324654547245218487857312883324143574538313531545432752627115126134556154427267617881632238617812434638241557487274327287265166865348258222152545677187821483671862576565677783456836325434467124278886252811723576825424457361484453765836615564855456518116613124182641112344735847365362638512176752738653635881736168318256154611783428658858688363783775472727566525151853522118384638273835478731415266427336835388774236471351362577836736428615383623837153256874464116617668358237226883365663216566847662367786315864361537844561852388125561287685288313616121713142551614483358444335382664622622547224558545456558275147271358513881156112337878567678587338756755852568462851767342352681333124366481846282258671775622445323746546547264258674637118212313376187352245521288533438126826242412243434656662312612323822385543434446713146866247131437234454686286566442115635438237821855432111454765866245658568432523756834666153621342826544173815376541514376328848217522881241465181256345876547454813152746551156747263637172583681883247588515246161183862687156743136846514285767577732661443126436772247527762626415363423685187373487328686557265712711168335163418811746288166526354461884566574274834641616135362764531557363687771212243542748822465537124373767848661681875446671881662767244687362347412845381146773861664734667453388551745451235588235615742677574588264726716162155623364248566123536628165633544276261574512868238767461114864343668684714687567234837635182583458484474541364186281658335144488385413857554131425487121532877564174166733883835244844164757572158153712682652266366344485251825532862247868273576816345531588752647738385771237525216431258142713355344432222668356851665378466613886111888152656448576112614455342158747621855316232512678274427281172518385583365436211225237147722573578747245488675454176752334478787678253457885442518372274627264688571726673836187673816835452537446537866855641178136721835285111633276473123731484143143327727851836574545534664764647861458322115631755417844477852428232164844274265616567616157356861253517632648326133558262767462283414346527145628872867712558434775278586382831488552143315748374412131721661721336511536622618126735867615773726247287765684365655222182236577887317662337725376868764654372762668242342273427175628775273356281714845134163846527183617611128181251731747212721335382123632537324116177868742444861233415535457454238625666711884874834256658262345224771237374372742253584512736824418232821154287873348768528712358237136188278676672555276757181674283753742616464335423288665734248235568336844433874814862221282222338868633636681287352163752133233735657687156143767842834137122311843422224587742333235585414341315543451718354274486653263584684858251317834342652124381355484576462262152453337215515237447812215132814721151561281471285855776345246627681653438464283648736267452122551233563478818231773486812261826615853366827416485512282165264444115383675133742188827785318653128618674774237347336615312864755726481748853753273721121814388567864127623587523864565666155178863345166132858243616238545621373564141351215826747437488632655618174275865457218653157131756323332315783414785636633445227421718646833234321553236237455367824578237527656663182475237761223376861473257882757115288142134462755884275664751627244757137234116582871544588358154288867486787154322433783535417727374728468872428533578882518347646725732431568587552442362863616387577721444353724125228126487684248177232567515625316378674158571478262184515273413186655766724438353232388426724633468643375435137421241288532812827753287311711323414473146284476832726544382438338777757177573866757278518627552216642455271234718684645266188825271482676715283722276461776645868568717177663125811547233856451426854632215464664775365551863164466738626831316742178532634812847377351844161315273633853143226642547317362418576558825226244878238538466363282854515187727865785428422145864235576785236124261477821772375457172666886455742488357845143586185232837564125832536827582552226641511434746316438827647811683463584336676173625274148718475677146161417615164352653611354723684466116846151546428348164523778386884348151764473376871313352276743777648433547742236236552336126362616645661444624346668883262857238761416226355651123678513667277632632144748414173141117344763542775676131637713124771675158178736482665434815286272318521178662166344453544238424554262241226831632146417571532854167388311611778854311168782654661488386134618665786451435212564361368673221253737144277764582125623386567383232115281136283154526552278865888766485157476648217558777441886573277684288564541883847442516252238664781356762567867612433215885552147163426334627478487368467131284167125748876632232138572844164147528151648477667432886282655768527283854568185748144661512147666485457715412885556688348541127626852718818214331858871512511332634512478156478252746856174727651267822877536242332124483462236824473631453674576644251284424262328248355321647128215324363648847552583175221527514733766217782227863377668327148387372882637541147843615644425845763132312732736332388733344835423325213385547867756646131584612841252287322725551835685624682885176883625713338128688751888284668457636823326835754746446452578475827225523813487538278582748384486375546587713255741668812547683472885622182474655433173214868374444515472588725464663671146664278586742861543178212171142775883448183756811765776181612558148181866852512288766133763837513218352556767887432242425464335242747888343732572466274672272316546343846236154387872341237335671361362844651775344445257656325828655826372131522865252637326728644835231438252455841718342888434824147657674526171662655754467456736368647155464536368552657111653171622436648783271243314215246315877786461126135755655263456177372631144245458641275418615421755887612273638258877135166218742841671588737314318718475652646446275835477818445183831414637348136526732233633343632448718281263582834153826821341255682222315224814478447141742826476614584226324638331145638526235513668277471548262243722371163373346324238783476312571774456775226745857714742563436162516851438723865725811723636148256553665514517641316885367638252813346584844675476142344717484572572232282631867542772332771785153333252181677218873266154114415715677577653433137442644734762412176832384517811425671263555656531371528846714556132744758433685771712463714358538613248778624353318245283537257124118154536122843834254463887417864741818511462465556564531466734317867835842245486724863871658157554316717783318181154453275256812313688235465832646247256643188331366878433686766157861614514513588877786256438745647677816356376262622147442433553432372873217582764874725537774724513361657227484487546288636125263116742561168175841558228581774255546461467476136658572437223618223555588313566833886217628856737674341331687886853663483187647226311341166733538552862777322143464164277831358215413257878148183111427877613584782223671252251236248647415451721537863577712524318838348473534284141865746665182645675333576612163768321657736617235767783228833366865111774251841284163845544867635835121183286722278244315768312585183763158436652533664757747187264552563166737552878162745315733374112414647513762467527228487636283143427845382145583375825667857227566431858758368617286633237548413625466158146174411244156877585563621422133781347122484673412655826835745282383184744368275146546811242651851228318316872486716466482334376368885883377586274832341261567314711166314121417467517322347735875677375457588145562361564154522671528261581252624852167261582761588162231746675271843426576638477345555318674258723265531283136537271362845457341327761556436758567565465112742861433575277553526843276647487355314358747311527822736467826743843465426743715664527865653487387442843387675822443235457766213144737234188552482472187564854227517137587534461578457212586675246628546868116134561157777253763415156623523883145122568175358665742421743682813572437436538483147885136816766734164477742456632226788258736575678286676422785664358364814533757436615416682758262784385424611244721422647531226383422531152762251368113566257853782625731617884527487751165536816278668736386425225516674813681828543483227435847215744884351457873737726558221847533523625657526485376688612463382344512743585212748278226161818131257432757848121518271747744424436238162865734884412543887435748427133375438774335286575885545484864252714653776862521726161578163454332466742287157648413462135342561624154844745516246583363567324453458843873514225732767225843157361752116366475538722281671146573654435238836486868257233314532563113335275585378755375263526763741634827566262757445668131664625778771644122263617862745572643272766486565352628216387445675614547284841245417377674434162638783527878683313637515525882852781148823773168143551718367158318861762716673654818586471352373748783174358324663337546548737128688866152584122821762126166447814811563532884682448427674388788276814256126255466317165312241765426817521842277778285573684772131372213787613581425664511178757886666126487443442667237213755554872551818344647725385776753424518435422422586444634372634666783633344486342842122211438763242271465424715116827235735482762871126265326723472852112246124327881324545783717683764588357658225813867414554321353328225851573661163474885883628147835282818773775214253657128671441158751434678388325386255723537581273723352852888174711841313758547836728824671688738831531573447286578462828844437187251818358648186111787753213672483274775721326837674456443662772216341522224873442453113261335115636485517665661423783717711322552386524387755563858331177678412381848178732878871861634468128345181184546612388853626133842865462167437767164661138313386154552455267122587162134831231532857611384253322725874177266721176754473858256118516112474263371625631683264865432283847135338487632381327715854231282815248155877727826386558678757158378752328787358175442375252135558245443138764538671517284153578511615614557662645616272287555262213361535868234762171318632845235138178375365713517515238423533646622246773124472847432364474655426317155464522313725157286362771227124331748645637733328846781522481781534467131471522473732851715844517122575331373237572667444118256534773163262182718143487754461638224572788615485151366623268738527835625343757164757538415485147712471612857764846668611826537178874852726561662414875164786364758324113461116244642725252578535467537872882373623511286112865277832426675414443688477278342461363472241457557717743361752618615628631335182832466368442323253385354384561633566783514683118148244361727751763521866346627387213348177768746788753587235554445646345727768158111351748314427152443535463374845147682637776352253562117123264648577327782483328565344222235511425837414523845468683175885422234634264286557612572555642253476625688227561111224176527744757176655337751761578687328251543152684327683775584468817524637141718317676822242357315263216666654344118467587434835418638185337757838563388288358488338284434868738372677384288235767354463756448347215112432411847471476768423424732112821652726331368123134133225386457531478627723384656666157674831451187666517416763216712338487211278643358681443334862765322732818568465442143475543671877267328833878178871334774722721233134827775653357372325784146665168226882236232125857244647872574116763556365147314727348736883188743787182666586574168823377384764221828785412666731682631421714875847823134866551538758511657126627261574831656325362278852453785517363626442671313172646448725146578742546424442726671385874548813877612441484342866665861485172436713617654684852527122231335148475746318344738552151343133543142636824757317263875166368384668737181455845437733138633658676266176682852215847856576442476114477644448651322116425166825682781654615676318576735133331415645662742476227632174574474534715363156864643125374418656161246644146618274153651762333646361842113374357764111744867842545335416741776658228713267852772125326811175326238778285857626877226466272663453341856223151348736464787835831865836354631461144787233686858653725557671633734878663143338314376517376128188456423784136623727165863535132173425452731218281114582514725583832277352332847127463284373732735848672775666437845865368353445616671734887542483585773625856236784543833784514758447768165644381445715771212384214882554638237848278664445575556632777856741311828785136551776146884486147748732776876347475787486833316671638477775475824514348617818664317312276684176416887458358873323634842577875285872687231728117371631588153663837256576537248874827643547572734326865385128613661445466221364482255475857574757852285773571586728427171445826673518744283252548542151781353182122683113385255771673437554833741611872821413686732674531823813164133822638514257435775454414726886747617235651258414858316455611485862455821613344716413248671625878224673444445725535545463112665677613124457616721171574585737486833245556127786784823178363278762746862678155612754663685824756642338166667218355427687846372152742627172568464616543446135816287331215158113534884287852243557452142353364576573112567772714546422557841868434315467856783857681722276343876313421322652846413185328824862661628616833684145442648641137861532568223283514645718741843346415328812827837318886842885836343535435236886727473146886455776188548258457716315625115331568277848522134524245364842471417185575184386645831164527465575344568274322176345353665427643847114583121285528115438546122362772337248335876586611555333166344244835528177636186728113126617288672341744686113654352351132426445245231686183837133365334276787412682731186385268112345721118726673723522758136843274426236274523782124865568261257566288574135172254221777752564132617362775341553535628255818412243876251454216461682614712728534513284281671384354282348421461831745332388177471718633542575664455847266775684641311364238662217367145431885131631434757381561814728152126376356181535862128728261663834363684381114316515444362147482487423853561161426152455365162322634186148126157721546161664863646645341858621263826381437581824585781583432547746363875432423543228867771132476161364514725776115568456255484766764832364542328776332154611646424473311355257285735511667612311437755772413773433883626176874836413157764743755212448747536188426728265626617828633613533713754283125247527368247228248538562841828543882788371758478487145246818438425564263258613613517788558112651277384671226576714374218266142261566131622141786235342838681523531711873146736525711618368387641482456367616137578316231738511328255567335137552573713856724755447884727827774688675832623265428277626228653138583256434311548466715586153162836823555653616341516225782684843634655222152773418732461225216241312873658514742781687628816626344518765425566326476824525346677138572281617146682854422846364774718627658251785182133383681774225276557231228674584724251834456842284616688234674233247812344687774312641558686171862752552827415413366883758566368414238132748151376162857772114115188717588551387552754512728276485835482154143518771242478866573246485257563538567388116882328331548762587547455881757253355875581573347253568154781523814463128646666452715321786527725332231165787543484882647381747432221337574385611768631538321224343472836866413558228273712583587785174747187423135128166223162752166542321758757831534345553415612433534366218712454755476337865614634652153888142524732532377454876121235121634553835784573334483212274456486547832427543773323318484548355518453312635128327218725278772417344342225323325633375881544675276672488632121281437624367713327546655635536343355624257187885756423653272863818577551421728184713765681757257762384336878875835863538274116451378768467352425122132851157663617374322124322433636888585433468216385414586615775134151213241156546154211752135545612632642324168445763717616331487552433665643677234175852545371223825357737283666174238151355376548764357143416172265277814437282668862365576871217485245575162315382428646142138764458574771872416628251752664657758673162756613335851113778811683322517472117442614364558251385527447883164515535868185817636265568165842118552755425125476768386783484585421353814163627885574261266532734536476871828725833126134354514656384653752438883884564111252533233388341474448637284665477236521548261215348273167235338143764485412238751765642551154134177136576468145788363435512875143843566874848127155364821777853844367165426838431864136161633836821773835678332475744152734174445224474158877776432514643727853574673684648437736674127161863276325272625365617473554452124133721448561713364678834136847851382333851681174252125485171572562462333183682116875224788843761874776275442658156265655316681357735153666587481124658876253257837248175435332841476342753177447252738368763164618313275544154747631357312277657255563174181335117142533651282617265241628448148524674128637818483823554415176148123575455812842818254362878543152468571777148736428555711332313441178754624364826767115744844758863448462864425763241722276652327638373145587735158787175627826478167842586376558117816177548354258523478773535415886511132656778312358333243683843281864215784431525245541775761756558561228367331542265721116153417462483171528374256417425781732248454758461465476277638218258468824156584316755231183671315718761333188138471811666814632822765567737446474242218568188277134681143784287668856418128187712837548587524487143684682267828762283153525531385631656564432828718221447686716838114738733771661243853733573766473523465654776812764744152128353325533117253511456842324185122358518876362338365126725334433337785741444673311577361463713135521665325783172648543378537747156224655811318274714143165456362841873574372386467878855467781655654772211816654217181217884126288663554344876886513581185157446321232653752127467683457131765263286128184765618177424384372887873375252347517423852872478545143467554774535166367263312723336331285261683251583175466258557882861254233228235238766488842436584576661677361571457263624754574618462148873631743556587171547678223436182351135357677273243662384533882634634836684113384432536571536768748332867445672725834388443288761661563117545433583822833717755473545843667716762251121187863272113684121467124816117677562581316633134777551646417842688514244877277335277757555841275746367325241673852614228771768153775327888833827255276765813824768486783746148534153615886878136863637813564226387337737573275441713568483772211133522146362576224267677845153736744148642561382666542185267551732386832287723651171241367288778118712572861313112133268548536414144388186787785514877742451161262662346873463538126767813676484627442716213465863628278256716847678461172478573824733445285588167121187833772641281232622872577845124814358238217832154357463766168231222134122712586128735178456368182862331572341148587756712415862757852878728434458245573473176253628427168128124814263412475257431168775473375443565573321886745721467522826227445888331121452111147415364673576746645424251427188811143467433167448871166115584474255463312578821878585863428863177584772188687645272467715362666522668738485266574631172624572718165528568652411838817775314151127678282767874564535171571672753277717152446813464567586352433422288584418165168135885227127351271286316711426385682773674576611381872368166366842188154272718844613785413131781518512531777372447417844827554625233183761567728258121512157585778187162134566487166186858374853737332511856363766442737725827262562622774262254458547371537352277346282328181543114517552184762663172261678431611761673857335163366244223723761846515761651357254876164856743884555717563665477546244638121171432872338362561432215245714812552711541576443156364554245385522783456562273587722263344763435562414857175181572365681667176343151246552722735667384367646446622786257336171346263366132372123863575174682683176313173726127114433537114233241777745136785383712752357642855618271788148378238372516377244324831168141875555184322128788837137134686751116523841622312351164763843588386857828872277111276254524543263734322816785586374886824167482434535636426133351426127233832142285665476676673622188817262846752337433166735686466423218113648542471386138565873221512527853426325452752774173815153325161323622256843187556856163351434563585377172176813558732734577811821457352137427741334216355122724768352534344787881471723825266558252812215585381387178467555377883151861436622652535248185334171883871788122383216486166685664458623463874178156416128758185537461766761847551282511455164224836173331121535625863577644763262731731542681363426642426588516756446416366451617443584713761113454111684141676221436527451261412822152563211737867586843128667838711627837571474818681862535335875143433762516816543548788133581181144481347815261231171171838614625734557115382825823686681222681243368766316587756626473564412585523186733458734566222447878114355252712747737274553416282767251476536777256842157387674756343346566824635481265883762824547748286785355755577777132228571134154533135622835611228132885814478731718346138661352362152627766416484177687652756683715637422762277575452234361618145618522364582848252431766514418646655473412612387431474734245615442841281857256886112474565643356412186783575864541655713374215526685161188572133758446634752411148353122878748235665388572478471172384542286178642752716514428234333674861377713184832282514223645571176664552521864288825437618827882658721838636713664314741633433358846118878351586634265234544571161631485331888357445865181544242372122555342874727871588214625523725846262856315713828548512153112386173875615752714754425537517744127115644828211253684714234575186516137521187678147235548617363528313721726265135545166614117451356337166484863527682353763515211784311116213422881786268175665622758561746257854848323232655886273785771452847147166355222622316685731475646242845571788157858524767723487113866182777754256215382264461347212821255532623314738123161252572633425668831867442313625387453386244722372167767865316584448635858447262365758625242662163536783433221857438162553428673626383333614318723626542781438786133335653188661618361558562212522721846223281852554516433324262843117431725722666224734666171872353715784445218577661214873867114872531845233151734551117165536622735535718175735772758655314546621778156625814473234115383646178664648322518853746326846377645518143644582453746538778574344562475648865626187421885524514152368541287765232873648387355731134677414741461527582577821414273642458531273235554413212357375616822465571811136564484336161632183348554242354572882172684424338528235356448516783511448757771713736332643684174311142677536627556856721281584582652531441677533835514673348715841211714572482472812431462127563358316451681535683546648541364388788412242382561732565227324441486117232152224367421688481532636116731183711316625771681453286716545325283873254488438562751247463684278267471586148683748653466335358846472511211741231755162685887582246853641735415472657533773348223775728852518127243513877877481655836733651652443463638226833167252842817861772237262171474651276146337682446555143717523554672872372722856378743781242417745611835217861684254234245456846466266644147164251368651212585288675146256131515243618485522717735146722222242723751611867648282683344253373262447177741572482352555676665648751568148717826148765118766137873816417474745527412667622822761731167872156367185753681888136168773531743466845487456122185667246466246151622321633441548765586843524838611783552486421184654155377741316156168327836646268565678554254856264182555325638653731743267634426436657351421455448523716265376828352256285816442161141634757546273357644735576643344476562423141443816481547378374687345174364168368165138524453572316872824482334832412421565723621165366413315715645455412571523636223461782847463717325271283155747754738681546524112525615872153737877556577738336178625264176336735577815684376172553776344847626745612771217576712786527672421211432515333267547484643472384811124735465447283638261527646714515855168313188161886845375125463638236724784482451711845546754224716485535872284775565181775854332641311418377753816525251445865111781741448322278731126267452532672733567486324264876554166235484346581116644752811363348552267212537538268622563581421476268171818658642373431746488433151127768642375411453237876781262271627357476683645867653182678863542137872212565137564571447815335148534624537612555573524415615818567816128588612868287518745846788355837873724617637555188584831465158717256336161522187156116154435823388883688427677578851662664363618387364875744268724477655757177875418786162154645784536718674253683548323138551241363621278564534457486788412585228441555422532877483148671818227232247756111815615178154714436248434728571367715164566127556267762858573676226634777488214786674476332668342671155412373463117542342475871747721161268113123763654762466142881183778688587542516881784514454131418345812655723267327677274287835731877253412335237652571666165317316678688428812767672325822518116665341278771837483334883644614442665651648487744263522583164467335417542152843335557414616624527765621535476378814442773152574351787527755161851155313324262567354765517724876888288276614836758735456815153628644323883176727618811312713245676117466362614541132227315678846554161764832145255366267482476718212758822123647242835364568746734128517671142535777871437173455733771327488552616584313172324516742571421333218725755254352722266122238253161123584776773121334546428412415473438876664566656227468165716452611658185258434213826523284586634711668771631226527236255663435773448134277781527417138315516254568268546433182583863881221743358765436141125832337527241381326281433214775475368187527526345664664782261474112676437885688263348425612446524372885371821516587545665566335351448674745515822635818256558172283657213758141274534256712476316542452684365458513577335574871544676625648254262438853577565621755476657541636778642686444173655851633246716574227374185263145232261242533347655284361547548168852566735158485171214357713675362437722886835148731363154888526636374463634815788573855154873324842155424565152521776378466768234846277612267426114688643178162135741221437845623752673577554467813631444744473627556824641773343273333427552784556317472126417335664116458348664485818717148773125576728448376483643321732478376815354785781585451452482538264552156146325344856888687852434771855666858278345684564125765324328553314733753828146445632354352374214644688687588811444366317515582136586222672578624627158725172354661173312135114146842481684788363366357162547157348557224611213516833735561162863787326446263584256586743426614551153664482446732242833864612664468643242873336247881384324251513244525411313527427113421736483726837445475714243514855135375533836761175352673614768138657287476731538725181337624226158537376636758732816636457776282245648128655235115465171855344265336814861181681734342414117222452652227734551344675782858762573645534126537563646785742625443424646157417835265851285134568576822336744534122573613275618254826156436581158227555743173185175761571335842861426867835814528183721744314281248413266666724484675425425832643351276723252212545754815555486633741487464682522667264471831668511528164448582455242675347112533554252582517421844668364262184341462387525866131214641224833127662857678263835526176168257536884756574211551772141636348687457538286574338464378412633313127578484223522258686287137365377785642261183225241731341136361111345527324545126261881864386416211633254525787474141217544272513635628746326731815125448834781161333316815347438817253115185267366584754458888558362668874167785511156287747613345263156568357775542836712542535143155362364827178272853773186562566671577561478463628514814532445628766631344741273281381311524683638468281572618688624452463548773488118163784758387488546517453713623281545577527327878645252537566852515234182484883433125738682346484677243358744654655235664567374348758752632767233323888345743844421483526481273412761452615188517344565823886144281886166333844775218466666137426566843375671735342887632134842518884828246835131326256356422542237276717481618747223755487322412821281816673534446487847465576347354152386348781181881484128344756328257753487516263862444465441247121515725333156151864866427282163131627822233585582558317174871854572473563822237383878377642737276131446614527823811818678862456166161482728322513363747715116471173283141132278276266144225863577764767731655664856352661826242637162554386861836652535574367247515637754546318875684853356761637762226637368823183258252748867422613133831423738744431511267125746741243775134625257728733384745531522586118277751388747277353873684754132655582227113881723771741232315471138758538727566725515288425863633314236728366128265784443815347365688447362643261721852228323241426451354437422553355434162356414621323736674431535145248475173212343325873383442656841875158161265487843843757781474267648653466115766236473852866384735761214422165378184376268868127381372431686282781285478473845462465627774163348128666311662215358887432548833445362617462342873543352526461721817674282336271512447688815656647273618447124734147774664836361288125666548888113451884187622417871244817457334371438814436363231255322254683281741311714147167151373157234514344472523533136812815218637247378326538488768456226447377212581537872887564466787448846624574213167226673181666227162711355345348242818874622338646586677213444327414118431358283458726514545877385712654346366373252872433677427887738354186421346111811368171746321826822631452162668756652315114185454376328583465442764815572687383622124143375886763251477544478628821885831288765787433857382861723872232246684268678861461364353216131712561554232775833528141832634315532384616542244483166256478526745164212866256364571865371743426181311154741233557624743823735521517624664676643574167826311527368111176525886244326715416237653528336855251442533311522211675844837331412522675673735526681854427816554466642878352471148212348611263221851648661577588271362318185423465248113132876562518416375426721845843825171446563211737878332335876278344357124432174878818647313676227554135235441547135116486625143868377581235385615865671853224422118765888175652725373164256584485343887513745536734117223448876271241867348467257627146187155661475243844582323245625835716174282714167427258231662365445241265415428321123633468665726117621832468117178328226271332682434223431136845543465741741621428542745857318758763426262388842883757811741383871378115784785655186577532361564653254611765441611368732554677714236264351761587585264836164855867685676763438357545814522663236662231577536433273463781167872554737555314626835848337482786627287854252623473546465815751432347141555373327343845213678732656436548677616231182623151113865527832711277767576355522677675283686837553118733557626855431821385848462672322676225562112783438883537665887632443151862117456355316143288668418475268861665456684857847824564578185887662267513818713562524632512716233457265165842865233516436223835847624232483386766787437645118388132211451445733467722653223758632553657368847785673517431462412556871473367123657827436474374545814542835647661437361875173447837158842173851581387452851381651235121838371446175772646443414287765565151254868224878683511626463626382477545156552182317171637166382581124638142851652558638215431657368688363555531473422888148265587567185416568314526416326283458375782883656344715413141431733652111886332566144382665715547771177676461383617613868225366725821657252751277857212783135417165117583767573847735565534272548726275533147447827264384768133565381723787532181714844376251224711583832352251837177124718531877836876172316166465374632372835635174682778555788334466584387837435782671385645574677413748342175342518325771814168811255258134567685326481251564552347751453771318781246863688225446782834378868528331124183164225764657742748411131718214562658216662226167864574554242564731721444326123471744266372147586667323725474423263656454265824657275536774383221575272214466417733456181321517652731627121332221155635754474316486255667711572684836278534725434756381166785132435844763345458882336381178373485675133134566255858675653677587136336338756168634288464788555437757482144427341441376453877481266173753284635638764268454713885281245431581764716383885876363558563673712885843537837583826733781735225162266528178817258543788462181354466285184141433474433871745572885311771342884318313677453676445163156742847844562718642821264732143427263833181872813754471534314642555437737432378535141683783764121533123562686648721558838823375815226168318631377334886875261362748233228773722642141484667364436148367815377127788887122858462663365166652133527467876273678553845553774847815723262858227648844255244685185564551645535818861482113133612855821145314452157753131341561423824124325737843435388138153115366468817142543742172172557834462275632216457312576755127461574482832258552488247888181814862427371213237164185544451242618557385413685267274788814185256777216754182267163442138437621857778261635428335641448158736583462884134375215748554151618367615552534652848483415571242277625832251325126155163581325531162261156175386168333562383724581317428737333138528745163424773521152112444713462355628862815836138341174132167361532525425828678373177252467312355224623322851777783618725346548756238531622651245463324515838712534144772127737445446787171167876382776877362263316856365147436233861535158745163738433536446658126138632225738272724644487661667142565484774662521185184666314267485642121453312311876311646134543614862577827125711512563345381366654878467258438455613817243731513561574311841755226473753236884752561166767753332576532855614286124631166748742666328521252367831361167728361536268731716648238836531172525548336215854384867836276375216667381522873318685257573267778225525674462753638814452745681568232318745682532528664525275382215415356625444316261337725345263661865237742868253372634367451437482113446342263152334627264323753163877317484711543672218231574446445876785333884833243263881845678277453746146548731646816116565258515876552773435216886267522117665821546431643753521286555423281378344674627614723442167366655371322646177454516746621257783132151272441853423164446532311614575551712486715773234773673411467171631766227755744733256217254628383146767224458817231511486557584717452868122513172143252514438476822775677514818721245883415443112876522873134826687784214315675564225171474742172562877828546764253467113256452517366264625453545552368574126245142365443648514221156872141754138222632783621232236582315487887476328585836856141456386733388183435142535876557363883343647527861262171268832638685526782643115722871114614736415167324244455634828621276541876258682115222781753722416131278514578358567326417646476256275785811735483384531452616183626356446586113312454566747546784526832346157357481523316627167585274818314715623365662181816426812468385476617812175885152484141756653156634275183288354588564556882286536145514531156276234355555741213714332454266772262567738311176154556463575231157311683388357161182737773866172718467713618276285147823811527357212648626544833136584872888635223177846566658538387453548572763737273716268733628265286141386366785745423413445457876257357672366711453418643746511326642276328161715723773757477571252861667544622263227481818763447322178738262155166773474157368711117657542446851387643745572438246562135237533233166857423436341683715188748258136782341678373148476682373868877536467532448441158428623816484827361171384315161828441482246615138747874374872631574681415735415471764363337287222351111551681348823425455232824121726862118713382513744457521682374637814472411532425528856626851834374482538383482624328877343883337447212246253384676342165164154768655441252186535851136241643785332565347426276733733253777734336281422234547382235427763345647154655777838627847588865268438382367722314276667476441857516586731262317475758684437281857674133141776685871741851761533361663147632451855848632667322525683656226163257327377424823775421686178672664415311648241285447573271625783318531362283872536871255887573563273211385584713287273773217232541567564788878255844178866481512264622161854876241615362827137225374471246311822688876275575466885111135455527484343666875438285486515747156862866748587741331868285436233725172633653547346831521153776625281421486726221811863644578341446258287566284845117168536137242756643211426827187565475275818745276556365854634281487126573224442284822574616183733311534546181826365478556225418485457723528371614228764556263623324216225153771213756318525557588116678871268255141437388822371877525114787668874886423464388456715475564112116465613621746682168577215316213721187458214778183857737838351512327121512688584556816761785522428272343417124248736223258312528537467368237552282718285223864687431354837688568656635814867346748572865411427888638781384187433856221361261866588555272656251153764567372344884526731865672353686753277173573611384481625451781435721528564411438835616248227337818632355685647312868373212645283132857176527157814718781632846728162478232614412542586338431222885133623774781152772515225343182612834828364136324442654254564332584582187582878888163187514144761828235652441141126332288353618717482854765775487186865887835726325287665241485264832227671338562771646837663256328287835658525363144614162154652667522254123518511141454235211467836212228531588253385477817123472183871634448362367715362771187363562685736461586434568713523348663712155387324627771332671822548586312587481463817841778577613653858128557562458221368824684526713424376781516438235177456517855817182478418258637246652878462153538466324838488383855723428632644582878332877826878466728488353478266266165854322758281145637175818376678242333578158638883786144842317387437745346878878735238681521826638211312881845887422151111862514322347444445615414628486143213332226667178648888327363566556556638382661612581238525748582344527514477447567346318584213414463874427738673273723448758756113312318753737645187432877531342237165842881661361161838388378113565266156128245828863417113873841433235434428516564572472478761473415155457825348786615548273282238611846417148587364478183462372223227758331271663221621134853165153718347323181367446118152468561522225124323121821621616441154213321573171883174153773233735313242351538327583667623832822513583725747461886323174144842163123862545358144366545656621834783288841446121454278321872671631148681645113658236137733116278741418541641123546211681856641635663687628532772268247714575617772721652212185218771661784355711882527747644834728855811246673772641484828318681376546657886362212246647268215818554826723146726142472365743333357445776187741514348245628553857388837643477288634517176647183488472226534141861882466146826853762151368464537576634388141413776552377232374183762857738548574218347231854434476363223676335646376158752762318644626854384557383564516488586252521275324677263136246486415236885873212345723732426162318533287453773574225418641823754663583184368337628366781557733751725724227257528213787513483748436615737328167688875716242273685456616237245821575165451368548742522715526777513178621317837723532712841525165364382483872733776824727878542775272382378422451623211867773657276472268277434186813111558572418623831528152437738735482846256125125266647551333763422223737211728382565422511587746667127844676573745474585325115648251511178446672235353774841574468231248271818187328514118134561253173581552137851521877881824818813268384266868572371146635725373211235513865884723573725184582812582228413662113832273478544685554445443616474766551517152587624764168346654137351422873248612687285785427577474532371381822186416672884753252671468215356456264418665611633781514435656168376673321781554711561171315812846275523553625263738844865233126612863235266343633276648768171422615588222526571717133676552614534281678881657384714778535662784261817754876326454847557112377464455841436167324374231611787644741842655428226255665613488328414284366877786573646766123115842857282748385143373661448611854151566722741452355622423453428582355847728521655384243458466126222473251173225323434658252851342488412576857288411432457321315234762626363188788743545364862474561433656135511255215313318524841878852525646467548278226667252825767186321664527545257731515484152736468235684417181561582737283842677567634275654616432262681854778616576854121267867284851125281631445646226848486262663662857831635216588288238756523857243832665856526242162116665666451312568264476787615762518763574325148823161426377432652338356745158142325163662224351488182465841442534731267885172636636448134264386646451725424584137677372665152485716887546866368784638452537374564334744541744474723358573817362751335358438847835132875876473365458881511565167567435881337335777443184221673218848214217137375628135416575566557275512162768136846256872237454868135383276148411135573616523616525725131414345334543413234152378856541276617811334572552657783788518236564322124152817241526763473363126128372786644457276831267262531847735674145452876331344756171632472158124636534864557641415147876147151183723715762643471554148324286713744185373223427174575174483731175551678681112526532148155488416627656333814255575646552217625177858348548122368544361546178574135151874886784644771582318756356738727374858184448384432424746478461885357366322847446577558217221811216838332222866672216734513654472734664576678824134426534851114277354768243284567178448815865188872837747257522171635622278455344513187861417516671718134668261372677135262183736474186138756742628438513413356664261878554715876576513854875252378333345433636455613664251462616318311814773588635118271234461182627775751275648825731848386452332715852175621223365456353668562648344118661747674876673156813743376454331163741848617571337213516842372177338123651225217528748234138243645624571682277631675364467857338581155181877657476573186582884851552132725651216534444151358414566731578225332875135441433474536376834846541485587218843257361585387458164718368248731122725662266613678656683274724483344827182738157681465451733843277375242834886636368865825318237862246345482125458445514135125527413713148322553464635245326845756636646638472484857438866662313545226848454314785548113746677882271775487827884228236271844644553617746515152471163677772312467684575885287345358386162253185835853543158554186875472564474137631675557573878344783616251331751825147585852476732762184783847636311751413557217144851888351228721815643515485256652652343465427124348615212434158882115418611128543111682532847514374884562673286514641783154424743712865288118438851818815123257118112577484847518561537718122533281447754325666638743588562631641652234635213463126176883232886867772314881747151555224237134387245163223317721763854434834463753161473711273235137547611114186413441427443335535458235846156786112848351573243358762433287764251812846882365361254163373736852857243417513738544642146338822726687515435625548621575225777836383724354535256738846255611263417771773245457137683465545523561144683817211121858755425644552553127474715524568125353583128871758567128667722633865235386281366888781436215348643332457643736235172125432166616686732312655368876154317422757226751688854572146422818456512434271848441885761577668322842242528364724814588246171818613883625343634272311722585383251128452582822818281778187323515324221176367438145638688487414135557332858768333713768377738283455777148623525566721655288175321565841578732147431262777685273811281758612573186628517343737884524686534447757121671462335724363417662666547421174872171353746656524457122531537623582633564231888834613555375254464336583176763625755177315737344464781267542764815274825264667712386863777532523211618785358715682384633285315535353313445385855781334558777316843331275771176223855427112713513583621758823215512728575435383317636677366657818641565718114835784133866682278114736414374767827122374614727788763261567122764273171441438368825781553125312486684315227122118358374386724638184582113525323818716833325454351478651167266457147718146273375388334887724551165516476263416536468567326743745186331646856366621644275428611868268341615138712735821552288283661511631731772662838545752636614631754516655477362285467517264617651612444653246865213861654775321387247568884571717761786874573322683558515531316288848544653871751265183356387663657677724672664472651873572145421258686164311447561364633414142724383186486537185178528568533713232247786211625881722747481767652762527847816286275438868613575338271844742222516125622558467661585581641851622873552463421757516662415587258354361216445282542825265471213714312377683318264353548674612577177723682683616718153621251325284662817276216773788157744562257285185771281445784766242315576366475638448481178225841677283888614746777487483475646621216485133476755664121325581232217547726125716831447251715774565131517321452752863357434573111528361168274866121155465828886554547355264336115722134576265886122853431461741428222648863223532626136744427536125848546835887626488768327731117613627816565144354332738668476343575833658858484775664212745436684255581146153217461752632835611783322185387577881136885755823153151258475814613775172627325582584568277668141888213132533258114422836761462431821831273268635247847624657567538383367671524237532851186548313832737583625187527713778134132821283658181266627455444124536328118162836648472824535536658347855767532813817618227747513244631263685573534311882763383663733728755428673724713656872328388537324726751732728275571772326371268557883863755731855831262465573184751747288378164534327154627584668631141175688113544348377216531213364148514425345636661247761586574858868377522782527318186713556153518517835222834561445726743515463474877565338373433172755613346554611123656684534842187365558272343145821641661754833456872568711162561312147124574528774132677355523223324225533153536116765661327348346758872354327577332518217118543875774778266532165373811462882886145571166731644837287882151846651868845324157147837424688481132288644773344758657161136173155832585541565821473341154637148313458623666267172326378423873813226647125318227345641383571537526282151381768564738864778883454168232751814861821416852442676748433525676738737835281134268444184125271534513166582585163623788281425268586583747116371228387277885213637876336144478511586412761347576474617178433458118716583334172686823331371575553233753275281438622151245761485615181878417427878782773458415136586671331737636613481483418573337566616378228578585232533581481343174378811734448568722637673317663711387336431187835718337664512477524126666766236723456731342286127421783536851533544336867774455387873886552612565658222886432637172472616544667841552727127886715111771242377262783632544148775156145735158443683666477587463167448582754717237461728567812374275144726384724232313326274322586161558858386726553582278576436134756717347178315661775433172455846227147423444621458888766123376857437368674112224661657136324571833726785863245522684487776232885363112288514133312726381571778866364564122235432261565624662368883128487571678563521248575428175176883611475183441435481512566162461711555254115228334482347515658788552634732324846382575343577556568687672873865261477628876437255672558413411833862711485135811178282743278272275325455835426281721885711687612311743116525834172262317874754642435683454527825218816482846817141376683244513834784241334622415231711722372365311635427886146351446128223416644773825625125452162771467778114482441173281783518684416844855811745824231311531216514317453841632223383381324131462757684858637725742141232312347284151126655433617877661582683212664343617227555844666426355273416542428312756427751518885223224475337337218451816133172251263326828457738771577746712637655874546278132566432775553372144218364548422475278353574712676117831182813747435857812343526887487154324315128271667763781581385112284631388726771566526563363748158127217158434467728542468323825583414275728755544257462813211458661244475367588512417585783835512375621327776343544863528712332251438531867518551856827565667584684556614265687654423775353717847368681724351736237175677168533865515373477557246845274856511463133661617551841645231335872838812337185552515676765885254423811134544785526744231785311312383463784263331115127614381431366374551846845146245722222222855673635686481864385864746125821574847474724786872544638882583546888326485474241364736313452462228631465128233231571821225167341773726478118328146137127221125683642448841577478288651448512677622756422466874761442456176822683534776688384442273485613415234584143313847443267467135345465524885275176871817721324828562171271765168637737271218386721187226758323386635243831761553522141483375374553264267311133855755781688227373356648446241282677824181873466388664577313872226817877142877377244617488484615866732285471318633211626255573275558644383121651631617334573516258684224282257322152874818768552521618138854443258414415487113232313375267463484384341451351674772728412718148247668721426542688777325565276682235167228534663347645253771247466834355868816837617384542363168758852527218717265164228453338375367138811756671856465872222216414314714551375367612318287327155255533687473871457675685186868174684551868336362746363767235738868422477421714188322678568642545246355683444518547675338353223634131265571541552418632537546576876814327373185245268138443281585255554177447567245747683568385717133447242617578263687552581248512823646774333228277141865146817688121618718181618218856551216576558686366245263788745187178744168617381615882267242657535166248128418565665848661513452625341813853477644815542612543722425416367463247215658471545523754865612218438741363822845287541644262173585565261262336513863187114373532755143155857218262532348463386248741613267675313256857585822345775853248667864276572317481281678862285738326714128326656646421167254446365815124126757273432548164115438886214675337246558371286464814513281668868651315811138333633741251883541415413814163616875851143782145283434382688638484176152131215482734863118572526882357467247586636133188854772541676281824431254733633385663886631241217341326611641871446413675786776617441776747512523854788475163434244828268826747118588436611148233525212264755256875488758751773211622887143635324563157631677815144211674656355418324274823418878161147171572123112236527535131136787312851247248857276618277357636437631314285682516773761355125737366164544123831227562686355715332187243522564583146372617357876756367585443818874568448242688461787223756714782725656641718423557871362648175867541374132664881754446327386884728413875248217771384135854351687248514727737323322784146268218638358642532131352117213738726671625386415217214212833722458277226342648361187268437315152166547742126141728513245636212125636222188761752473653374564443876615415452414447371667635271547765426822732843667615275463123861117666551444372228636768277234235863625421457366211554467247667334253755417842657314626242827717831366424217341267511334283543432128636657558246156656266436336548173745266282757228536745568388886878115774826338858533786683343116813272643843737747784133354364535841161162151585332714741343613856631746817654857148578271526713246226467841436716455178182442653344187477586777578774758884768154238567186472811755817866351832315348644187278831121724518217415631261566452825624462783423334584516334146214373631511728742867875625621481785264882844435672178641327824664347736181441567743623415163441565325171734457833261577675188645874442581635238442561447527483677282311144664278445446317627682467367468545864464625323254621737554182123315423771122344415454821486367584216154256146574788887833528176556767843224868128517467678487618883776718353352327734563268538538723281283227316776218286141163512537216588176452148167638315336456864634232767138836466363886312518167456633216266511236583774641244888638648135775765271465488411511148811823152314822635264775843513414453465516155827415871471432742857714434781378728327135265348545882134474112674572154367788418518713221387453576773865445353313251147766577413746144645761217271284877385742126786732328188517584152472652834664454555465183542827762834234282384658763172483355632582172586486723466771571875445315178288834313351888853542752443626546218646663753625176768164433666374325182874813471163576676853357671356151212456223277542344368114788571282413785721572465788616786611431247426615633861226757143364417488741517151114686433743271677236172738541627184487378683632542218172643374251688136816348558641548461617733463463768163628553314747788638555588743441713337365316282722346813556782848733365766543432656423668427323866218455661628772274527438867752132836211872435614126451413884167732218283313873155417125121586178881826827273258358662348417772477236827432647674227148846485633245714246477743834335238838167373531845354245188538122662578266438271676616826435347274432328668374423258526251752248388281753657715677638422115888738324116833723172812544421811858482852352583867628861812111255761556777617884436881872787871126278725685242384881158745388382175167586272817463147137224754822285142425326131135717376752724638884643332631711357786438371351316371664444221325115414833664682435263227336335815146348216343555242468858283753834555273514731841757424348375674711827845377848135563564583631216766551775671353726763288463248835251345461586545723742754175135351342587644167645531415778173677413548171186527261717163162845543586464561822618771356524424868375637255244325358841613614767363835746132238325326444675752288553684463376825126627155547434176823138334623224576853273135241787182631262441585282278188328168778648625561226713582587238236171652683841667425464384214777156137267568283744357773851437744223111436126386438816313313683115473225737136466367654575855333441658882664827624158224465555718731621556525446722441476138575438267221572726265168124434373585522111127886624377878173476343852767761366614612566465424227214356181637165543488143341653264355865114512235262742165247534556651231482274486541657348182214876561665583838374425328738726261837515221524228557248738371114156824136274265227813583431487713254637843438627418464773588348562184554784725663276355664267132811855112571224532837452777386546348521335453766138465523157718238241774125318612517731643223243137725824524271332772526717728683241737258366267325263723352336242382276624486237422481735535356242331687627346748185664887238714613468332632126685758358167125176133123256438657741763346717473282111482184661151286287777286565473488518632347434243837454161365522537112346648234274528122728146267164264548222341662261418114431234521162654874841764564535577587626781865153524351624234682226675835832543454881558648174266542234684554861458172646244637182262642653246272655581724857653561711676652336268738476862447362458273728652436175533386282538731355616268178676316332826271621452882315383267557786184463111243312241738142567853322755165745273156635311464728751843115681374271824245857311272845856423521835687612864615384548734573581651236884781321528844434553818675654424711818651355468824372248472874165123858681347736824214757116528777144121711254743834815776137626587688335452435675276434115563382626521765115371765114574637134283525612718134671386614777556646817438576446524553884168785258855688324837671116115418157574238415316611335415613721736651144682288838558781327311371546621785674677313377871611745461148785433517387582178156787445215252665123753272476158448278416173328582736651768231145863561365567226381562325734837482427215668541736558677861451366425386568184267583567355157774283673315325618154171873457733343321547748811463872666872465466387118871771534722685343455552377657346482155514468861872547433368111741122263266268766177531457134125677561787162827336146782285653887642476874155575866545461543532462371835816565722443571381354266482174375118247182415415412527826683221432826722868266776545484753145274145324572285734284681176441665238467872666751336316472125658832465231186778573728527676852725668382882636244432251828362554731635831754575688524563288422482464134718264482423745163614853766338421113248351234711157548533236734744755652772753834358828217877133224781537621661215684371775648551135658126653631816384168533587257773382156111187687262732146833677526678285215642238118224864712654838847234368582253171267527473773647227655511686664647165514858728382156324351576127435675242738458232451873541823726382865624356368224371512688577817262343745277216682342461138786614414458873481228341457557146674774831774734713414148552333661148237876466424654134686771756822412881383814346358777536527861721176113864467118677217731326415213464461576157123433375824624232555583556152424634632824375465621246118762111173425667613321557332142685766741773425783275241144345261624157233172631145536231231424555552475388523234746166781537843518413848582421764262726566362377328374788812677262343611313237636352317387463848244211717782651183223823755626681171757646478475666138872251728786548161417323866366734615684248563231367716253485167288334645672615438221585712474884586167585436666557213554682286555827745457685326746783228835356858481846663864524884862735162653353343671864885482447682384161152356574347337873187554454857533755474577422715775317753245167151567136437675861111775766474748815465125443611617765843657132688833282645666644421722756536412184371444612342451138364537764161267228358171383112838443736211327715681315485612862566751246245525285882237365522668822536346818485644524456868783684857278836472625764211864543773864658213727871367755417753712785351247228827122456817441731826118783515214176722278824663422122117325833111477683252527528637534336786216742671883621573125574127466174468583553832845727472554386765217754128167738422825271276723114441757432822831623236822618661625657266158312871261563418466444577164646347442268382238262473517315476111524737326246158364634435568256864424246431743746228328543237725853447652533767585287147352713816211676436673188618173875126114631458118344653672255343822233363428135836812346132653645735753114614856524654837788124364751736254346587134223568561565156688472716433135414351224371542222758115357527225252278376332253435815246188571185774727221133166533256523441241738726618422626876367821834145225764215146828214742611483567186638241424215786776624624667146676667318726366652128547512425674127727486784135843587428552286284635562352334424771622363442647711427518413451817866261215445232831452482313413886573581785814767811156846356323861381165636724311363827348641144744527157738755858222653336486777838444287141282184258477287846346372781354874273514221638381531357413185583517434826686226275317625635344282812114744553771427351723144234434642786248126235621663674186116247136416328117241224142227785521838566355723646425535447386524213266552744177786156687177435756241566647253613474744518458185475438613185433331711762623573672885856863465417478226185428757156648833241776682374878231123878348318234267814132181114772278161662672617265537444412581664372417566313275448351387526571674725348561858218784731352666644285726644418821585648661537312687868611641612352873451521827756551272223248475334646465256642484428331555568678744251643126323341361383411477338412173374666511684783144748648378154457872348118258533624247266772784682876754775338361675568714673258314688637337224388512183437423351775455278811886527323543474386134568244611417228557572881425188452166517354166882441535367844458363174475873648573216731372686321625663336351215515774578757251228382672127788348584852884418487133852138818431876857747755464273235117868563367838711285613736121422274212134586437424145424216744633141221635477886811213388863113114115135573137785523542415515773283456822782441888213354562628134141488245371265183487442274784387134157356361541775376515684181781363684187142786385622372486146233113512422517316477616412225838818237868786573881657117236775766458243788147446268878358644376882513783687117425368875546862621577526783351113386284457115847882754288235382282711323723867363527535457544763521322588576124335885437753216254255322846547677836466823844226632831124345228613321172163474744817676122388256465133848257338785354635454477784317612384187646348318745851648766513447727272572522563738713446617812783518436685512874422733288851235254166483843787346286425427182624181438731121522332843271881637116751434413254357447335472121532376421566743368671578787511621558357811654647226345871347178215681287238654575876164215821881141758578414863227434842218258358334858781853835675736856762487437574431225565748823614351216645584616625733363865242337354617354484253346644111221444747327724863475375846316135236372118842837743361832333843535268176132222615818113386386551643646411232468561536736155767447773484514441313336166677835466222251272223324353631365237462753865783812113485557381763366552528184152357667883327482488111853448751673227816837444673554646671245814385675345778244268244868143631638384484663653231751746642672345832871324578868614788261387232625811112266731662241153158472658816867772261736822624588534366156611285362452724872817867164661147226651555746812788555467715515337661433176463218263475336447656223265433736127712145547358624333341858818312153854427813572175416168668686562726265635678757115362247114631512375424658645112548438346478136835274548278681421164154462463165373614222256717862144471474657283223542637414867672188737254878387217171577545411576555842415182772686444317545314826226327576663882216684245445484112744283535732112477553163323633864154327516777682445352383663156463562878336156811213342368332544586655285562332148141276771515152487623276368244747733216267433368681125628638671254434737562565545343474124183764277367734857162383512121288165554157737883711836854225242655176152845611641311582874288331538212462612465563233331455358118188713133271487711611655847854434114327616425753831652754618128226627254415687651323518836547436188472582737683721247611152864231745864256873862142572574447857648236627176878141387223666168731424153851355238368742275582242378354511332732757448327843663587534852682564726366268153836375285281368476568283718372341868558765767776233627685531364437843831126754274155822244246386182144642187266577236847132452136231312561877342625426721663462252258416265518777178667484347552746654362782468276721658744316447773215154767752244765741846272828816418585432322688844534353222612128864277118245738853384363443242215583181671264758675727123144251678558323318472151237111311373427173662163626773412813518617828734251354322861816717654682483432717514832285856633185255361621552472472367754183488625843571643741648772324634643622816861882362136871773326682668735128267864264738817281566688342743736534641784471261834253254148172731262821155248817334328688387447264433548654642541562211237842755868273755725838183824643417341886574551117612362621181182775872281646356784137861545652741184374447641236286843617863123138536547127781526272212888718262682446724614453236857244884717646577731386412373177718357415738374263788511437616484171476161667674121147182657363442276751726681713564853625518853662426115431476484788761328324587488765815123633777755553484521825563258751781177831186415553622868284136716875645754464636654842756838621118343775332464611212856626387355888867467362682478562813538135684377771226854252775165135818177263822638131426314462662338746351622482465226714857132854725247821235433542133177787154115586355147582525625584271843421676173547463535764833147748641675374247682825257221232515446514213284651852434345135273436177264274558642451543225313543317634748262783515651837168183424243334811258471842615572486338421628221782448411367725525325854882878558413413136824246375831836175111646857867226631165537327182568334185548361632437847476775743663133376283156256621465123387351634868257551836287842514718332815458441763856546146254314237234346871167351672372667187587112515781654455233357525832641556466623678135617611551718874616348612641651787357271251155226526554428451246843756463544233471216345751861235261814764347373113317873646765373863425751358655885451325682286481482174718673848271373848767173233416587222472816144818875684664872531148757148628728714148116554627377864645376867845846856378717246633164563851715116658183864654837812467721517677441828363317717317521163221887388381377278166414335132424163817517383812774232524284185113318731665556312721678257227437725417135686136278853735657486848581164238713576272255436736536543258238228177755677821511721562853476367362127282843611353376438773421847226812266234768757171858366352638138216885378854363434856683533235753412616583625837184738648152243541421136314557366425871786616632668478175532835346742786424757881538513136886221514681418874343463878358557248388465462866466314362387251874573226634526233831856253648613761778422771283556253844818448725584416351361673817752353213245661777113215841231623855743267411248855736121214863324518782282313265457156146231133548528645666843474856632152121175886537262455771866611422281358454777655717145288558267186227163257183268571751623431248457322344113181655631718648633665564687264264748373128681561814151486863456737635644374142188111121414348138463684272655525423285736361741783123447673884586426186684467443725626454444851312612441574185447611322435582523651484523627222878678732172331365312433484226272228168866665652288433468866272381356711473648835548873438253473474655468741711364727762446652668142348823161156144871622187251731835737781766476545677574866841111571136713427778416732328121781755524215514173881663512573252244463878211525564217167375587483585774762488543634441365575431378734862611232584844641288313386841413264884724718343458145345648358673738271652282284188583124658673136854686773682217136115471815377541615453633518318668273871418868838242514462162536254527337232682625833145243115388446231644524655815778454632861562385336684726877462427456641317234354888272766323121565381836726748227783845367575682822821363114882761635367623352544413246446483561644736615841252357678173623656627762447643364461837716775711573831632585537145245685378561575574227474537188363743837584323566885433853667385646646482484441141571576428348564217514753784867633347675578543831471436423778318343167536256226321364672835836756764383528341863165131833585731574813864715562735127117336521367635123268425285667565477738563843515488431656334652265618352353571638668642432516381832456541714847512542452518388877131554212665122746677735735484213728348466644827373143623252243532135778123512131814373555676618478653655176276877165827552287736617144512786481256455267183833584365425215721843378762567821366363762187641411735322575337132654112722653384446867783133735861447331582517842515152452644717813745552312283121335532656743644184316446353535364836183457327384724468782722347617174428842671232335222888184532348747632466288428587657633883133667417654164672647471854844224572827644227276126865121222588644412376685283784257668486526277578726253662628734562216834653577458842325246136553373646217236848583681813265782731261472112382222251847262721688375484282386528484288823664734668117234333152852176138812355427384214233588685588353751155284133214533853487544537573584274644155174131478811151728764252623177373655451851654615378711632821415672877178751232658285365226756182286585266351122818212623188417377113576312821767357535782448374644613181857512446886446487372655783182644214425712125454273325514761642133234424523257643632282368111371614725864286651684821724434233358732128514247816468226566158185145744354775543351778535347817472853488543117814187522712683211463313734284685661522683437748545773763253328785714661683237173337371556575434672155174187763753281326862524642543117526181346365184652578513457365286553556371588832676536838363872244588377317881764484757655623434883887778245837337418245676631171168527438822422368871427256835813464824776528623617628242834284432588133482134352183614753863173242712251438425234264526814223113844155768662251574635432421731184286661313138256286486647677353463746564763758274774544163517724715557812357862828361447684243533775545736284185688633217683825888221314188587667217428844216465377124481115778368126561157684882611715716161886764422337154544472152613316485642281173885141445557427445252336522631675876611236147588111311552471428614361453667423121211232161268148264371343654163144664841157537242548264515613864142485217522445611383318861763344474681453266714433451457141135543518622585875387211313624736342367886645341431326127471738268356225786477531321632441283616648832521834646748718624633684135137256745321162622673123178182582167658377154223882863837736153336652386152244411663553443617617364268765176233761776126457837622137121376566843881218815685137711378467131625574312382527287577626323623654372428227366756622543762714175263171882736272848154147388353571778577736145315872853772364622466331771271671365261417213534467667745731885687262317787152265143823266832486374125864736553233475468157817683762867111663655161327783658285473666176221256451542337261271787752465246868611325255148256816758512276578411548761444336624861831145414422172865178568216614753564612644858125338373764511546564132213264246368363246666482155257348565646373861884527867774386276714164613158655767661527553237578545172357821417261283614684558414527744385343756845776845167867831721221452637188263734132537382171763575625224137171554613248126788747328731711618464415786617144627426151647777622757817674145527138633416275116878778244327866448122353676247516444135467322666537761735426366872184317211163436773853464187443327657237212141637681816122723654586118821782765644684183245226535846715575763813448544735843366752112636214152815528168558872333244166743758826537234656522445765263547588487112524156678521616388511158814475544618454816143377888164631265335766367765441444344241364477626253581174674437752843676175444231488214248672264158133682213325332812836751667271778145836755157245237474552875523587747134535138641545681455126466822624774483124667215341753256827151238334315668286471433455146523615285386523248777587744125743171365584216227266523473472556834536272313132428737242571313882125634831881747332115821551726627257322471152884265454218352581482224827634888472524842537484483674673552622628847848263117117465511763734865521821836714624157678462742218426428268855176488836841722112551367775446842367357623485513334451218444215447834753182358552584675226386787681666163354778135413621351611435212715182276251666535621387811522468145761575222731113788586627462136221235626561566843418132557727248258611123661134342342414855348862718511844546171862288542775372537255248518864632546562646244114578161586581134758422643346413452437186743852387745676866327651563872323514414258436181733355817363114432568155615874134821227145822435373255772345428821518168252481175811485371832771511116133378846534643767737616427438718133587147428463355273532331822431751654263128121638588683744883678611277486157227774613854148427844163577274663447815761272221674187125541516856317782828217266343144357825276867456524585162615566187581114462214565182285432588815721432835656261448565168835872434564436888376321244721421118812365667434453671465826137134625828285548142126261653125485834583413664345446621652654811184523438715731341173647823868178187142827267282356532128375871558354423348165867581488886272237861373367842117864163538343246838154151742822414812834755248432114518251452217657457533116656864172617318136863477236117471236335462888588285233513321767757247384554214288468431628755317722657273511575223162681546736525472355213831558433313433626447153778466426243285422335316146522566471723436642854757374655317565873852215846247324728274772315483487675248528327488873431532166126752835874875685378628742525327668762831325854253135116868462737715164716318725285365158883155533731312617686713418621326583155135133784323611822473562321583783365525627875666871847161788636158577741518663331424377833816318836717727382525333757352322618512743532151878223465366185353771154176268857541474871381573861543842337321734471734863587841885858287676338767551824363664734421815764417452716815183448527836526261476723878366773786345217436224752511767452226483723384746538521777524166347653832332373633554347156261485222222412348218535555132714851243164265811527141383813754326346644727127236541646185461563766582643442332173756436841154146713566572414568422264564341624181324142778883844132184524365362413864752727113573488422814546457322784536347362677535386312143574654277728355571383832353434473855334623514833862832754766315366581838886378543545327681187224861634221728741151273828677115568332611782365166155857873384821548771436233436133635281421477241278777211444754787363325861771864413224335471766384583788774436874864364513288875345225761211564662267225412481872214476164282664456865575774548766712528885728264567183641785433121368737411384447756181266711773716451286886437221588623451218556283778577887478445173488128562851787653527456116574821522254348338712733635882238377446222645648385577517757171677478111372526456561181763247816745325444365166434541387627417648377588535783446557346615423854572317356883316638454732461366622522454751242525151243346871548462276357333544656467768266287134253544477483564312657531848328511465863373246634515837128652672624367316371828166538147671747678676513242811866531111877828384362677518465453263774537881535858686254282713281464577447416658587321736826385848264817325671641452233781581782614164865442213727737177683468516811167377455444224872357684325163145478885436514863765514633246141658344784425872858468533753534358274361673241142658213254576813881334188384165231127331787158815717224858155574256671635581287648132424428844168614473888678514226365667432435115118418446157176463825357252668741646672154522238171612584351814575314126435347755786615117784852543621834455337773214425862466687558357313583377618727322455774216632538888874451183724635264684364227773662173272131514732251256575153386465458663773253134751175657676381436468746738683265871425771568378135575827884872166274662685334284357811415751663346624548777257388286784451124448276212788675115621416723884835711582366345555624462221118467658467665186522771823285763628252114632847568317415773838217278388428518433361716145815722311218747418442344372185275734835842586386787638137236421681153344463153443712474217421275352683188165176334263658212788432357566271478172415341357446148875787423526222337563614428781484634542464275375232267616252217661685833357555248155573218186724588253154721181686822132547381356362647185765742243343263883638353583163541782573463451751121623842347368315233446773564543515588671216214627632476638283221636614685223355175783535112428283721381567788167226438646588217551275318658653264577222767785511236726457433346761572468244465577736173882823218336264754351728253567756848265755478554876127714666543217682867472447412221652637448728387152711114554442214346777631628235372453465868776376562344413823251163421576555744572672773772154762163131753114252188337222174557434644481661783887572118724346171524651686363238187855544544343365436556851373758544755728353655715521276864258771225487338255532151247435557535226523345837577353467321543383771233434636453277532851115112378361523676182371731685413864688385324687487385135115343381366786435464361218463648364364386873286741766754451334327354471137427767742283638338752386731711353718581421741773635565215853188146162711774723753418686283218713476656612281146376856343553231264711261145158654221441756646664221787513225776365815177323855133223563754813386787453255251624113856317717847583338324736565535432163828411358358272331644366526683652312387828717517672265527254288326415754445316641554266878117885543788331536717533846215212562232271771733278833733554135383172286764824837722761223385475788618853144136885638412631875134152157352433727151882122721133535411283143824626475387548347362713528883271358867213526247172853721676154756624441763277552744623451233618872182235144865721288415227444117727631232388731555465544175455336116736855517551763136432647361647381882248665327532841214887658458225486154585425228341486263274686215817834246654555385877756336656713616221476817517682257756128481766458164762272817733377186836671482888342461337211237613386631368528154361883671661231546868112124636158646524651342382157858721374656577348372213343414316757873845563184832748141872477653522573148145528751334488517471637556427138676323353783423821881422154736784133168325364526373821223666326425432131353664112364173421147451868773717775372578584585516118116684844427643867483542158761661146411553474666275431613358383184644456385738543753424618618815148474721361874258517145615265666675734461425542217663211626381625268312124575413366546528827671866414316432877814538356228656624151157781555453823447726683131286217647414848286211881368347456647518458414184612472425141585331677688311611742188716462436628457224244874834734421234866645341167258547616281288372365115231314128671112726846432365542255852334817828182752165882423548711834121822577638515182884335765568847535474223263448545637372437472712345467641685256726222361768146751457788537751238751873161532223325765687273283677433718458546548173323612686862714145687528368747746217876343421885254565468451834322176722661628242385512423273212421757832864554373511643621142251836735883827423464514466137854826586255253864812327464247631133758445657121272821746851732514776687731388327126251553383443527854616782483212876612132333654146423768817385254721783523758864372555555152666625664623168862156222747128776525252324686253158646827388373682276315465156263644136732365385513713426583318238643872775324832222321568865448378334513141133222143166858561217212653526676668771657851874154574616564883651234868362355432875116361461633423418436338762535286524566386517757762184837782111458475212733614151355428357135267216434376515621613841833413628487716734352723453354114124473188748538551682614145153265561576427146688638668131345358573641853736283133888661614836482626477637844847226774711812356538734586156447238574124725816666248665862373215168232621722547267735388227434617632488277382778657767778588151773588523823257184566324831512641516234536418377342163533273427245755377535553856151171318346762346742374735272856655652646123255546634623342186737184234536613253786755255365527474466838686568857311726428561828135635354877874364423754772538133662784853746744886237622432435483248344625116282475843256461666581284333531248484176452168683352447561524545244647344527177321234147711251664745531652531368852326216728556186226382515317313515872361275442764513722852777287386228287442685155214318174854458276783224174558741231214211626284571882466838573513274611443162281286183453311321518176181313573367577878718842663337843644167385748517475145863866756232285631312232636216714111343123813472268452522848671777578852257153378225144887866622466853637541865583163553158427234881251624767834311525537536355444131218243645133755424747431672184715486651861346448883346111278335475121724818341318211417533255661372168436162157648351178382538556431471144826672626685381554426728553537675351487727156113521713755774253775781673174752624464345784815384434463477824252217348887888575175232146888872687228277663337416136831586474321143831757787538212485244758371482454248675435112221342437333168764385823133331443246485877282778364723785128663657814583477365858146376845728754345712626523615618443617381242646724155317374725456787523317533322674824353434165322173411833725581148454484557788864812864846562363227334671236133271346647355283412882366141658637763236133347355155382653638288645857327213638321845762141651532176565466331767828486661733452356874226721517356315833663527451228236878635132662322258522453232154728373876258847264272884116223352368256538113875812761262841773868855315225264431514636472466768355452131227357175414152868212244388553574166761872353546233154488445468466758817643663846342657688286721182153776151444245122577167318425536715276312676354418272623255614162571316245472587476647633761266425223817553323231752324217384633855356167485375161853178718242544765143858246651745743721325568653324276281733573154483234647318382428185755614615125134268886586645325561246217786188512262727258351727487225162376384221168845761557115776154277577188183656234888485841626615268168645821611158515785867318483486132228346323843133686223622167631458141742615125151362644417861823487463611862173266417458846684844486433471284522322136627384457484743242361688521783252851153863853334127757626712784158752147811888412277656313572856533334284884784678551772285451114443733828367346258346263667477878832271726622116847221457312756741635626174775235157213611776521274623181574687261681551615857173222431245314782727848671866442761573386784364253827855553887141167884373776713252827578465845812462716754542524615231644334835763828315738571127386361464726114865883446862663483286333622132125322622828152482477662618813711318167358832232375113773778726826431236726131734415384637316168667782244754536846273216644416374731815851411161475666146477162242248614441227363718213747324248851781342154776737447683572665367827622724862641275821848116381182553615663533647221812872377384245566643513865753551628546233543261432782755117368317837542483718453618485665488835727542482738671622657724133883534885782835561647464353363332544748325188316367224316343563336467166675315548337427243265485713521247438681238142862747164645863554487127646652414655253626874248555167418234172226733115384775411614154146212428183461516541271318621635155854861876836252365164835155237434421565267554377874843518278123461287612266381158458476165164377166886121646418322861646241235142637438161422421573216632755858778688686344243211382151783384843712737137253441268832611616711156781313125128112665746867244358818686614776683538213466782373843518245523858322218246832221425463453825317336157177347556317422656124325255532336761383828451383862114585247842385831387731521874284541132586483885671463582571658171751821225424547682651875647522657315137536851586657613863682836467866421176735216135338687757184876688367857277557172526452862356173628125811425381157464651483661133612887811218715628175682137186167754622632378741725882182462244631687726645588332536786848634266742583324544474346873367817334574641643286215585754257845734873453426313128368552576147581178381388838812715452575881745723428547517288148572421828551218257173581428831558781547171752743511567568268331265821435521364632447212727447434126736347172244455865126567471758212716311482586141253876621463373233468565684488222471728425754144871844564671588486444886568633237827345713432367172271836761778532463813855783566774844371165127832282577754721567658656464863462551468851338145727484136481413537675262161565724658768278281543477612767535723248683611288341358626763323451742626584623317184133318637664357571845476774678682183823386627543647772538554531788752676455871241635757474543583467213748436157288461878481448642163314754221115648446345186526721752213635315866712216412663425487577417148316854265573345656883421861732652854147255486633338631334117844716211123222872782424157535138115735534723777556658261833585113686816857245187362358357367578814585782673842475562264811458448865552685851765133818316112853616852187653316525775573784658878662577314312864558267146428876514768668761166277152463762668431873411383158334711154411574176744272721273726317178471287516871415556372351152465474553824328126542845177254887212627626624623334224688574641162881452188267262571628644618772577524484176884127186652688367582324421538328371786227386784241442544384276674431148837624744457668718234718847137822458738264617548262227628572331245175678248664657738316362265376755323313776342685683125242466127551447733434383532731151387688521355714156256511453164261516228222482863387115611524117757548131266131455226483255632124768442235838561253413734856265517253865535173265315285657161582466361533117385526742366631756861316326336236677168852383377632652351683326152524121346545117331136183134616558166762522687231884511513653365872637546623215282323361332338833662226545855244473378368212152137321162254778873717715332587617288263175438177165716335255173412885354413462864452252366832743147334672587775787868213585646621441827644527766264171186562833147135511137564277385384627821272655323372737326153258437776514776477376556158732753653541812175683586813315857138115435473377753777248576272551567616825843685544468177362426243821622716233756713762215117632181728185628152412745566764513472454354882454684548763146456415611613763575115255113414621466184735262138638842523431417442716258465548267158877821561472533327852212678565158727862526638631125833187124271763628877527241357427424385724567431135753567262173782821457574127627258376718866726814126744843722217235562468841212321654727166273666721136677758586528617514783235423523281536253425145812357362723262251371655813127564488336265458561368835472781226656555848572118212714823288771543875268784152677837121415884815863486142447273162564271736836221538841745363646881824667437746761451512135868557321783535111686748558663238151678357677375451712657372214778747771345148272332564412538517552886127283227421367664583441865763432341267111783536673684781163376412237185671614472657286711287815127585653784247178885345362733412851473633743222777413611888738832531863724246434262213788778732882658811122334417537524287142847264164743872123472818325721122538512556554625561451473662633543118325576848265221855838168374281273641482327511613882787683722711174271372143768165325752138311127183232112178882578655767565537444456563467833742723861723476876373616648543877666161613126312111162615356615177484452634131331344274426647726662624854866181281565716447338683734888383187717532118423753472661231758137865338416318345681466275362262668388215512546666773117632515777467354525766213757757332458846783375716841552516478878125686362461817312435255851458432181614841611137331755111156165765715855883685485132538442628383448135372622831534354887238125168847376445537272376673286765433136822365778514617136422715118377661856245763231124336563671578442217822117177246548786254372283411853738344767422317681224114121116141672157566413733454822873181485238332177485767121127376373383515215871738816415126814338635546234422484152712328561611268734426428665767527715338186121181282541474637488735167667345414471335441463327761437861682817426546651667686578678165715512413724456584163676322325766133241222627147451488731828565765255763115511823152632783358543227312678881187154334164118651848476321221878785777375652337482815686477573422618585656786385152582836475733668678752517286383328172731168346864516633418747736643832638638386454626146837472746115365885735231518764533436217578762352812281317884854366557412878772178767588488872874681146382778144881456482846744814514314187183553387886282832132288378784661675822371666826685822518155528647715634316668338886147723871725315735866538568438211542746888225717185354377271712425316165887235632263352148226867218576232655228382627783412265652228513767385884153512458633218327377525151318475743685328645374167881262213257787733355778413776376484322213158732264353351318843642771581765645532863855875448724657617454535175842234383847526577425722374558243136263426867233662353457563484557761273741323386482443361376732225333673315312852712215333615717137165463684586343234763132372772547774711266452774857336461515661215376368125213385178732843476254683386887475412171568421738252521528214643381158122664715386458266657237154258137811147576388715532854735247722228384147446474647488863254142761458464324623683248786123173336372225324646625635675873886386834253641175357587125221576816556647613772474733341538356646168644571855263526427332266587384865323425887321637252144684184571618157216115247868764213517636614665586817478745728818836681166584123468814857415316858537381856435362168455266463257687227873322728122167251817771628237875714186885767578346724852442238416876233425241875554646851643681145637678863157563534276851881852235863555827374614728475561236446848812464287337716745163775281442432247535167828261766122331465575481121524373811574845245873416623425544632827642134647816724586845458488377153356687247831888388582111138841743168884747414113658761831571364677664625525835882444237256378457872428562231676531521415642356122823776686435145616727148261442331578824554728386634238613757677413364725357783536115576823347687824163658145464735388142473743612727741435837112641355458741672721382444817715541662774638783675325425525864427552435818457723152264722175434845678375282668661487435444553617236761348263711745355566527857667145155663148784826533282176521425516744144671278542432616157266384167148226215126366286718372621784215127514625428638375274123212322731352638331881735424435623714684721588472362122521661818258328786455361284486325177177553575263774277283413182211164431757242125233833361331426224564321784813473462484484435227242561348386544557616255655846651574517217428772512836358743275314652237561124275455771622641341322282858162486687265344428213712621726488214864351882318876337411258584421874811665865551254161686316655713861843548752874851125653384445438484355311285571378522721352584511636266843267383824215717167288322515816833331682618358223687681522178667782731817818487667583245323755635817564125564416835356747631313751374476811157351873337287327361168214465532363232461241848435538228653326428738565656321234784625377371887537481623354247273652846674433756563332634227535567728456586542818317267551871246574431756412317818726337886821377737718221327227156381271747565145583415214125782281265728376847214422533832576315173562218562172578443336255772181114334876682418424624138277483454856812376524565586881825351366728178324635178617184756357472733637338683857527384768214648722785574258225864364721631755643577646157661333368717446523654672545327282781724664225847871354417616276832121254662255641335473328887382563378625817238238464385355255118117878266588273128425142337445446211774448426335866542432862176383442753754286671111853217425652152847273567834614618726227383255425734256621172427258777373688731421582351137776658313231551141287827751753317878818778845851646588371153173547417186147613373633231342256567325734245666814267182772814332234774715462128216122756157281371457715352231247426382167773512623514115877688441166841437755526834341888465475258554586142581874174174587235727763238533453121525183223532773626618668862373182567678513487651422174642735745867683644673527536311765518248345272523857711331851613251635666852174336724726418548452535263455623626315647185818552772457411568846337518327475417356553151124517317658546181611213857754826374671546167344424214485877131664718851227152481471586774684331471363455261166125744438584824632465612887852364524656513112134372758645212315666732578546651157883564171212347136352716548551311366332422356656458641184816634766281313535817343274878448618282767587722167788726771784465841287144885683242131378457861132751352611346557457256113555337421452683326648572317867883123554676745744267183388176542524771317557737745621541425765126181187553883473615768771133584814178582762118476551514216233621734741536617313165775273585867526152721587187362741167337572841425217323138556711513316752623652377671653625355113414686428782871644321657844252553687341878234717316432723318151376776874557544442644536827581638874642753514627787327628268787383626582828882441347178613272627158318512557388121785725248177474122647564384713582141225283637745878733838328364247356745718251747482375263716221646381738424185811744862848637458787847451766836177544445364121686146853548312618433864161248324525372542562488843386313415136558786856761118664864212522122446873377132138665163274812272835321555327237185667676674862122253825426335212635281735772152876267476625316231756738477353447762371852552265711451165782216581678364588463651465263748131775423446465823854881527762672325563867315813715355114751624426178436854115452654755211878132385345637148351126558141744613443173246846447546813477457528833287527818554178668623438286671171532373315723351728258147773882542746676227544232754668216583353184762484118132264641352677571581833777345745642165267136554511363652272634287462657561723343361513477651646453528442231455458275424256326533854858772875481118357648131681675242626562771477123754627486552732161487275324282263515822333423671676414643723885853521344385621358178241522472643864188234654386364275214128274551656366417747131428645126845151683426756517122133684283856258827331673148712624678774138452321721577787448517533511174625727758527456211757572718413745123868531333623485824782612156265558112712244184685661812766178515272458334641116351141773277215323235258324382676686344658241733655346268265134618113245165248124327132527237265265241356837718831481551243155548223755415385858685451434446181568554265661323882484247352127775646724186788154254377261173726852341711176182474712388383342817748778487786512873277777778168723652661546816112171855313216287451387323121481665457877367876481528127131166713347133821725235784456355468648834443715544136313657484687668633664154367771278454851135858482665141564823731642614423668525352862675146126647588886854573117764188613172756262262736874753645745613611852278453345611275121684222488545768474665335121522577661515536661624271674875817733368836551834865471414868231624842545266861326561217365357328471532655427211436544447864466125235817528331473784318253581812125673431434277254354761281781618836276871164846862425535281351741238534236371874736346565552313483845154653746381681343568416645111213677527326173173448171622273811234586438713112822828157745785715335635315573475374345681368526211473811535773116487163751427718446746551114872326681135674251115645157734882781461531764786854487511154528687715555282677463773311112454188878185621588312388376386518518513423642787387523222551361282628152482332137876368421217384265772576716178764557111287834321485251847516253628486115585884814235226646333382811521766153433412131614114134224843681183842883163183218523112255432232282177471681677648515682842232811728534583332163523753623812683762384711211816235227581471656711545176756854246465874138761142212478765227612125513863541632418557231428276147287255477246876818682433827577485811528818514182831741733581147585654214731231331114274484215864585873156246848546662211387784821267541852645611866154271121228283646742813538333617722884162582756216114336756686275462847217851671877467124488117325418376643366461814675672688471837522353271786544118347414823672141835351345681767682283552528383386572263718472832217263382222226845768618224424534317346535457243375856877128448551481243757373572263521133647581218381636461487272534683656223214638683116125533673122444755233316373244755415441352265657842238526747883148543645427753213133845336186386822852414246236246542762561261823727125145738523234121264351858212663774224135128426244546332322458443822332513152733786586688615245147847187311273568877536286667843447344744768783672214521856752212536877151638164784353847334412332178784754422412814717637748872151685747271237877368738674263344113576165174878476366214327522528844542728814858555745364676848438854133634725646836224687443852557527856885238737521585486453367736523828433362784451116422648228842838767665845452457256131658614466441376577173734321878624672187448537745653513111615577626883733646137683521522357723684843273557832657671648534323657743261283175847416251611713267648833642625861677488236226214665534715646331117714426145735788853418844364364725764248677837838736731726221353745365711564123586245386618445385578228343354611384484222162381855737433654272827456448622552544777636563642848672183125361211275815332516481125735214482177286454886227723525265355682518387634131712554412185222651422141711878551776734683315547388181747715767416185234455671465872655415678281465187542715413611763373557266274383214141582453531737751563352476467763888144164127581556552481247883842753868446716738354581322776672524727452217457478418237465748888141783663525824864483381442146842116864885587842186476181711512762568567223577683182362457128253166834413667113412345141827513421271221254864372163574343154112731857161433521437452553738841731725378382614453768622114857646685883787828455712371276543174623212271143155285181115761734215586312176847167347328812555163687888784158863783535183847212536435172186673868373567763544614116565441728672676633516461587864327433512178346675636848185482521464421588421747117363843577441253382442858884482338233257162184123324428468827717681122728684115134473388847325284756117634114316642841814446823414674244544845325276277377678576145265576172278787562861734483154366582381114153776664614253135258518714422787775243571165144531277137236485368781725423523146662444864523746385434875734215873624771388668315527862252343881768356346811717335723115841236873715218581567161658636321818516554234273716371346225817565285547867346384622756245682225684848432233562831276486633541171174837712164854133348612833632736385636531585185878756628183832322552874841125524215836842282184746834128131647667262553438547682384763375121773361185335856636432868214362856373383583778527762627245333437733738684143652537661281621134717772626232283116864558332432577366188477364674137154176886144836316752348616226632135482112265853645861412788452322867138842234567123768527564486348258624734371757642683528667888812773736225887737817326873472438574826547744577174866252466411334626147537846451817331544274777825321168531273331764474863157411148713466541541576632277288881815543745261822178418537143138288311275762751627558577882852876577313778631783325861635582448284834272722762784847127343477167556831728165814818477717226123745288876748331487445732648157183562266442472236841181832833413666553884112722572351343213451477118315673532678474525545557683184681358572416354473833257677586125757366124618727276562131785264448333541828851378185885642757318782253821426524121328853745565255141388346167161188652135658735445135148645528335816261412375486116261711163162538313153847286763471567372577717318571562372834843661488524152788453266881254655672627278355134546823523615636385134757753354677166327348582327482777658141478885584475144836675858382216325321848885555147373565514485137335478174281611518453863428173425823576186664484145313342341557725744211744381381881335126778521765876132156183772772183667286363537732614378654513317632256754713653523851883413341771856647788262123475261562563546623143833415627632258363238454132186376684335685522525437473553752556275577724175736376284246187211587726367766156751448551756346365246543426633368473115757478125316652154733735364331715644523128482667627181683636724345417676685557331685735617446472127442171333265212474822435763562826721844766146372443555233241347631672765448264874338728734534357183176521114283633671224564676586484116876383355281312338614323167144333632154673661511276585757352754637841164142763777244688482367787352358768646182526845584386776562664341375575713167624724287522458771878214344352178252347288435821177865388434213288823787612888886451871778316326825765642782487783772431131768257644714144288838824766441524211834421522811864563845388417427572578342533688743637236267576134258773133863614864786161738287273262162447418786343146715625434721634748378235558434114632372324453886431324565427885867253482413483112744287716365858445354451711766151446234531223126258365455133714448238582261443265782344444324735448364587342238765188418547182543245684285424881456167637134887212648764865162277555374786272668511144542254338781878335643575245351412584687543342341725734457651487614163584737533671754856782432383366326766638556247331868778178812244721248112485825128687662223447485211177326528676656278467413218428587376637573848234241186864826766362685523514134427226571863626821271382358652663571848133165636644334265182768734587567764837667762744454617247616423866156788365241382627543813522517371828755136763885428716734582478432127387174344572433765331438443542877645275282441387426555261421377158346823137153515737444143762344367631183475735877677753641874377742827855447683462326287343441833684576281656854642161852816155835378165731273257464121227573743842824156165486731818636442425421562677354554843813463276435167182856652764365225563882382865332534266153246668836822742137337271367863346824523275165735368154281673877345454642747122625336616471735235762215385764515147465171754144537428824582853233676355347343465217661226178182866652253154386527885663847747121473567563553372746314315256557666638446768714877575623717551386555561847484778617266253868164686323115424818531324638833481531832387441516456557887576885655617447858518352574363787576748371221573544266134537516335616344323152466471258268126628281521121175737546258275674415314153724423512425717685858381881463444753721168641428522227817521852416477585428237255366734585342442786645754776357552334748174288867617781344571432334665661755623171831124278277861444671336887812861833146832738538164717486784847147122622764684381762561856122772574423515644161223871172378227343485622843456438733481235244648684232126837341771228848233584258548717461285873882543556522837857435333322571775111466625875641181624843712456157761143631755834115256434278542324488337121624674888318687358447557471858126455552573427843754521135121688335776182814715741368867541318248486783854411585628223147665356265442717228867136825325657371886517488266753263465853537465422743272718442758212367672474186366355542275437855277856765344637464525713116718824725462685738335685365366626225584111336515438167252754173484858336158616326284626482861216262764466143735424555212154742467324631142375587658741626186244162114267463533154148616376116171877474872341516166644373548327323756225155276551824328673362664846638741337648637268113136384455788361113876521334311324121235675627628673334164265384363376555683525578588863148664712285752826878584241113326854431246482652858565171657856647752533377511315368546518115376232372371737737352315533284638842745844623486838226458665717618571244225525724783487865553883847528846258646723223686343517453824725531152418672651342362117118257666473571528784588425583188624487733781823768727451571781467576466653414771631573332376834757282526766842175111833137787843633472727227426573573655542383635573665277875341615832273173415864811225523217864537653651817452552371747638426541162844134546763187637511228848526421881441736213562318127673644383172686748256174321873751771876282436661453151157156118646415731833361415377474856553287747427476414112348156243564471335764577878346572453736751814137261285173627432346636112662262877617273151514635158666533725811442755232277327824456726687355358121434513112763378826683274671552681728626713786458184413761583422214165323312847856367321878322438513235155326278526817113634774431611223425733741442812262325358126115416576852665725648532167666446187422117242483654674781254768535866274668717761834374186273784181415762423765558153133647136486233721138875536133412476355665888337187885117727638744248715112584482771487848718454777625825244351445172865523458886435833227343457153258712723763116616687428454736157115876333244562381148645737518476865264544612832612676755316215568182256526771527475636354645713362573742586228653236838153513516325616522213765254414118466476125346885776151645256256781587868511751437612645356842327867632342434144515678862265457342674725628681241675633455112413532678342821812668313245725653873151853722472647344258717163362534686577635786372714475272275138568286665252888741277663581161683562848431328368877322642355324342533145264651645544417318747862272182615671753166425245286688877686823481243416744135325574543817666613686614377452873532655544461237176746232674862882754117422485713554844222565534416717328525215262255644512621852517838542133615437162278856143768658324526447187565778465136123175116134748345762346354564265173541851114645372223727734227723754511327677776185146826127556818338157776564361774233742356144576357136783836812185465612873437653236716765533742885225371571453735126411823866153561768736748273681131278166772115783635126684548622481417173853447772181356711748677777373348358236183234872635588347743163657367677857843215365865751763188823672266537558153358884867346848276361684246627853543116482273617411246357531485456433163887855456547831681781133345628677261673814686453418113343564442825174874323638165876876244384475151415744727485888647858157283464575766328158254777371275682135253736557123617186522648825775312641385214265141383524273652857773723118523777774736321552356235414371848377766216437253454766164168268717241732142566562155422538416484215857163276544748341281712241231623285524777228228848888111731882776418883425387377747457582256445275662823212816481213632557857446611572788648485475447383185818341384243225754862413833817457878175118482866158861231476883787356864773845347335855664468628554717385551252145347524557571212383177641426572773531682521537456652285384853631551635577311143465685821366315867881555142653168285473571717111861532783867232751318657485815888628887382775552687338748331535417357773821576323143677672634344746532884847331311675454273674768428667638233261817518537863451167885465358273243664637284536548188342737752743168218527732173153576756217482365375817771685851815571817714141344832661416682473817615275545376435563313548774742518733855578823448476641385638586438435858847773636367183536282715757123616482431734543863577767828672648857257842385358266128511565336232624567614846734235285818413233161527355425158473657245285214121738562773488413665451546224532665387475634362387714467171448673223651311436526486543827662516577754674674345642853854737657326267335451754135882384466248661353286432564646316112548838713588874284147578868278481383861281755864848653358374824828813883637272575122444432421727778774144553621233133166375866724488868325373463345358157552818145518511735148174326872413558234481342422885581187373423445427566587431586723722356568578122774214143658412651885328767766521131132414114271238466143786548228328235536144134677353447153671278182654335445563475378182126132841773776486851857586262161641785578837264838182511787681734471615517181481158276832787431575646863673777778416611745656324556244227456712747575238752481626887816722183244118682347554525875466144321345422372565122451817255766757858481685512212853524435567251646363412853733837256388726442573228426672555855471266128361525586245773518284318185767414423863353732282667265165322252351526443782866741226731322133335847688565433213335627726536828521141817526447737316745517868887883651173723363261554162757417374246354232268555216623555476764885571864787613831567624828515652328163458886881123842134852236325838342732586284548312767576818262155245885361782323268837385267164357524141788132348817433521434738677653748742643213643115624216735511555486356247413471857337178215351466253576384232883686251772373236718656152472336615182266314374832816228136258535285112718333486586375774468138357735616216545812388764872782483346527717133623543186575334571864272152562713724731475875138183511673631777738818626862445411632468738576321877745283443554687534173131668726287777128444528333442742574256743321238244285284238371287511284536525236523742363766776647466876315835287432658545321854367753454114528862287127356818445827333318432327244526312618521763663518512411222678378216664722648515536666454588483114441738154524764417653723633141475234211552645656483771723674637221382414347818648583364343663461281431735222276783631251234141261768543631854384566248837338425187628583674274337623625555156366135154337416886667581112327144354731321761457674513374415311343785827554366132452478588271821711857774716521332578245223775562254612773414414652333445783125848328584434544176861221666677843761688118254332127636454128813856825885517841713332177286184348547216454854885835683212517812563844541515162224784622868435347338654672887271351437582481684524586635722648342875441546625763872644883124157856116132458882381122262571845747114726568428324133358164765425736316668272228287273286274773466263716631548137846333646235438613173725836748341833287876278751265414164618348483428276564251334542544185886835764358813284777332183567766126361716464773767552437675237846578331146171166838742376481382521558224782515868843741586226444115627166834586287233872561815372854457727247723536581627415814768712541434276246755636464135177155221233321532326576881361467874553575576431238774244231777672617163586831144187472585241625756358374877187154863727113771466662386774251125578557338627421183832617738727145187832558312872374242682273176686245387884153252343262486785531742147433818331134357217774116157228658121541641746633477474785377241722576347387567566825411135421467675821318733651358585555213721575236764457738434874545623164632212488812371283687717161367646527764655851578825385283835666127815841286251722846563462617321266432241465424328135878226557331674788543754273156441333657477252382752237323537238337383647428658541424246266651553478741263234257381421614168125133164681122416836634415722771351336413512623322645276664448244747584552773671855463718821735326636257346262366471726417587778458734555848175481232763688537241624776142815254237422451473753835321884675367477281843842736271428564113316745532325576635254712736786737518132261437662373661613883672188683578577452275522248244468377324662236732848557443156264118431767686338581213157824632712752517864666386414768232662453687817412737254551814527484616865333238822414756826478225385848278468356217351853651343467668646354245563357458625328266641572316487114846742474113588363832637464235335161827178348342645477322414814467556124858573713852758586143285822221675318551542487126337516264183137557571242446248578311634783185527136121262855771671448778655113713165288842581337137866547617155163347347556251858426262848421537758358262886553414277878572542187828516655462422511164128341156715465242457557474172281174778436874484315222558134743827156681485411731113335837178447244514248681748856848418817827632153164641322376577528228567417663578641378466732351247715645468336367882725554481474234485512532224524463885334168453518658818787325452341841156863273255616253174281131775877541568441122314668187617755141815828561638568836713371165371137388823876714754244543528753833652314518288635126536758432434656577547563183284514258253885332671441866766752378715372677371148751717282476675622856684528683365436243887335564665344483323346788261466261433481181485474618155548553848572887583318847425172242266151625824443464335233642436313125177645148173225618138248578577252836217216524782352346211728545714231822231316543643864153576767271142865163327548515617835628116117884287288511562638433681581871746822631382348223733612757753586877242367463152135362546188327523134827735747841264377654346684114156848421271867353787333668765242736464258225658118512467452843285438825843275145816728252155344884852143431815283744438612712781845226438586723166126646826762853262524233711177478158317854711724842355333416245657355151511378474675715716581723257361486285788736473661378132846471285764854817222277313365261575581747341481722841446731457262682766657386438318144634448252181374628455268665661611154636746665113144257734461442523676331185362336758537865675587852355135237351886548413841211153875447562413562223751724741516582116568328663554711778861177434515862811537778868626621438268688255123235521526478227851774624336817732178137543134826665134264825467542542366666738552665157526651424337532885547281334548151623634164587476847436568878872523853836365114415257512488855174268468266473834525163268764873355818885333583641716131667162117365254754764614675155232518765682874325763248674877461626211436224626764284732386134663478133741373651646725624424461418378251354371151388562164121256755467113412114284246824332854318516413454531641135623626877377788416442765536386537816551387767378633875118448187578714881744378248116675328785621211681434768441326654273738311437163716351784885557676128556658263541842537176343176478111646351572565735384875853586286336653626541783328474568485212515867281841838837435783442628548233823664433882735875385164637327678513145142385781176551631562836484767168285444242864816151711256533115632266686441841313384361831881261354673437287278224522271836641676154154464852771888776541212361842117551856712587433176717542515426768834372146771258781352472621187187275385674756616432648722827383762161634116646186352328167866844141613771525735227148835773164238715254773135546158817255262573453138274486522323874688822776188168674123672878746264755618417825848852326272252848382462168536622626525733115886786611417451238467126616666354118438476238148655456687331136584437176661332286618475727881346451324651371118771387745315145757488725551562215212655286466843647631883125733124378765212863847711466744126435761424835282172858566841358653815843423582416687624325817543734135176483243518362468131782745815428728143154187214714553646834435417378674781571667173456658253711217743838556528134341122637675665211288154376871474252122555272618478481887383882416325461158885834441588127827725413656622371541875812868362158361683365558314468568723646537251321253678316623678227283725531338444777628182426147757716338168113272121575737488871731133148516871778747181888484536531811556355484345654714451513866836588374882885567618722762154417263667754823275116684731546154531717388682126274553833184368723563813867748134578478754351388256516461342854313827483885675311831374367561586758518587133553325151457864131625343757262584786157264861143672815287122862116623511554637616717183761156755583423276618276763332527631163588842825586212754287816776554813763635252563325734635178634182475415831244175565515711673758663814416277575718155643671663518886313632156346328778216841811766557581682832523267248738526263785644371273412727512155114726776316415423751518458634715854582332662224266236138612278365412584457336458138713678557252482527853486138712678826848464313254856862675252481387643558648155227714648254163168688822775452561322472364341356873565624326178771825628244855314657381323886865624355776867287264153682686488552847282744551477551488368867881784211855412526148177111567166113221225736585358264632777572857361858533288375787221115852626518314357243731826748548282838571527611284447236576531116811855673221238374663421134744212364482711784437414716571152272875325265315655512157425172366251683226447673241123724438356148217285746514585286577537551834742231764182541136474344166666217381367447518372637228286458175515518124744473643124813528186644812773236362385514182324883664652818223821616866433332331354736826815356837531841273475512581343848535738348843867365573642466636646886521474477821138453216576322677336445554822134831827375163737661462526628777872671577672635418215464783662236111128856231446864516676521634811118864357187785822646887137438146183537844781842213813462812472182112856142115823278126324562441642844224835227542244743265411245185477871587822243384622238851458166762477376561588627821412224121464313641363128682448156867356163584767464763738541325811425137146481833128453824125316324486387616311527224223584222511858348761467538127236285374484556282765472312813686412641155562386134278411251436647878684827213816884812827637417866715814724762462432624154465358818218546124226168317411747141842727448241333816616444285858141788633524214264534345364731411271111137555843183574727862577686364176838488477733272167732687185481781411344787273351713873443658614755456842451653633186112174855411542815147761114421282858422822573764344732843872656752481353511774878332222576353115852876217852341273112821655526217863678474678353331232754426684281135171417411414423618116443738543246884382432461717315126188124317684283486341171417871676377378224284548843512658556271775323381421431474445527231457513144834865675724357576868822438713283556734316688217714462625385372514376673118836413458686726444264688164144537345277256835245333487455765838323847623823213645682417671278722762584553463417133773327413371227344788116144717783184834238722525881551862413778257346326314135382457251352316782323622342722142353665761657846267131231178384175457685456222834417237815742828534484536357157568478868421622532631154646552125823516528276118263375418135843415453165584215288286334346836837563741186224313282435835285878333674454163411736676731458827557473727835242274447232236287528157341738821287548457272857378385676756457434857764388572471365544226537162426364483846255753417486128822251556555751233477375622484885768731476637427755278752662157385734848227161712131673848712211484578586164121274857317246166222338776558621715711311282788126311885351273854412232321256167468167351148332448362151775558482865411214617522445351318564561637377857435776637254352727335168783288618277856638765154846254631126584212864346381585546327387151478711156286875512153452286168117184666845312552736663757264242517671445675742874327513486411631115258626816165216564563271324125546128466243454176241238827428544352888623125131424234735537587684481367338813121214684226643211558553183158832152287578811832554521576482475357266882652615561638356883741166841341472623731518285851742855311812145266226276813458233385772472646238552276533868748774832271415687341564877361725781781174125354788412811684775135212278657873432863761718354864252148172761278173166127641716878674682738524232535216637624163142466321843352272612135513116312224826667683772147712152138736545116343118486357738832644376837418738748655151731471251378547488838813845127761767571525171875578446487616473128845686261838474184384722458667332787274277723787337716823475888664488516455445344624373382871454563531346586172421524814688412758718813258523332183451586287378836777768482725572834653463267231515353882241487657134167352644781433383276223158722825322285545345675683862336885277376515726322445612567712281765311837215886147278446874261846245337624314676561414788766737212382751372456613728855518247668518745571475152111682822746368335761337873255455172364124752644337422728741343851244256532766768677531415548412576112762645883561421531652318537737665815262525363386137865877667242317534756371685168562621576862617262646142726481823174738486336254885281168677438617277714433718267484487833465843422882312388275622726621854254512482683428416648731583244251366523472481312865825134824141267488733568618413654224376677462221654727647684831157576324652733517656522157551236181673254347315731483385111283487236222552148623667656264743783673885726122554486353545181476414761843612836875367238687413148286851232182778176785735343547523225818717842811265445638181413471161857328261756416171845175881187651252167754112776541615865162816533418342458316857535782418265825862556768688142511181311736186578735167817573641755853112411164126271142411472453657828136781267676652517645452773362744434441275556317238771527545726768372818131757672255274148322614683448157244562454172445144721358264776652125851134345521588622317476257831433232623844664533633562773345884377116416864876255573637652357756264564331625112555888362557138322765287866567384841573688212631826286188413342416154481361241212522386837367468762721827148238187787271614531114283871755334884773567635687485824718851154553647565338814321712858452534558621436636284636677561222144415164227842561111747312883114224732248681457234278665765742263643436116248568156824267442537558718275511464366638755585728345723712452214617342723178521254643824631546864767551525477251334672655368663211632484117534553582754386834852875731211653775244136133786877646836826158137227682462626315776548231515265584463361417118384847537544752127431756556337863136576311453662414481715218613872631137763118341656784125672571718473351361281833362663717155743771176618487457674522863445628864737114841455231657625858138885168746831176366342214351868737432875665341666357245561364723353521644274252586467884687678112334888474561635133433852435436368465164431551624166833742175668323521838642721274546521775458451618457833714788353612481582286364768637525164666136833862772275228183655222387867327364558466645624175265111554185833147852335857123341426263578732113568318854436437445153177857767235762337737261674256254651537326861218678463281326517174134536828588524161441447788563645167356326338632473184564187352868464683172845658628272277823866773857756117641323781177446731277173858338651683878647288743857455727341823873851721231774138462813444285481473431221287367222173183563722826736747864412281367266524712653436227675222831137454213254125168356274316565368121211286558162664472528732467836823637184566484718656311413816567512416451211351222723563758273143743585525246835276433475411665846815424625314822332366866113264751183235362624526751117474411756833815238367638162273581137718418418828526885563647686368246754684552263768435368735237718574828144852835534131521713683517661574648538247652774451681627274318378818724678434568618341165552276266128544186441421144726373251875543286616357465268222826248133287467245576874557275877362244558316782345811155461665413573647668114735385862568333768787152875485866463168882425618388152751355542858232622861217636638424421142834446627562572354684685613477561622351726862764748218441777512464566347514457733458814683123356374815433577422664325671568581388656885253185827447576383357444878378712261468811634164816742716734421517225223856454554284845224653463385773168472733818363584636864881448423151211482485624774272667482331343323163263614782376141758678371678885368211285184765541475124772646734745565272227668476154138853615286741124746671235532812514775854615617257586218758838776221676726174451278816448313886264313554358462185643456447344637255411513541325886212625456528811552563584323772478341555214664726673618637876234224278456534675451426351758448552648654174153585214881165671512463815413518435125124188326374272477177144883555163237161455873687456761856372575457332176232256813655458656511116541314184811366213744418136147457185564822648361621257762442746353861437583336357844727837113417781413833355547442581374752163427538832823177827246342334442458323265867373635521345244585331827335538123383544248323747367461851271173127331641372266768566368176155853752586522714171147432341113215252411668811328138863763764752346574327218336741413741734868113457578365255618646821661156627631484822524274718117734435217562561738851134475342235277755327242772744547183586611384741878461658583854753663418215371438172617356658111177835625343353852288525841727626475656277213515474345746587156665836454262533147262423132443178373824442562545858266138871257276134547462225427384866554678464777212617426164751727434588225581871717351563615773316356374713586647461284154638838565858311366181523632147167151174238268256555577516476784656464477471186628834374632377743456482818615436471775844772526537274131817126725451854433555864357752528331162327323453677865812744815787765183585716274637834618756315783168424565858177767314871272766731362585671278133531888123766518543453882626688643642211576217227534531612841815865756722517831751814841732882175322618731378264232382465231485537485344353366475224422531641261616247373666875583842762835622687173716744432677847684757428245143184677687553327187578871512273273517174831867647262161786114478441728268852786213375335142241641782375272421737633866546327183242136324433213655153363115762752655487581777144325642528765842624258665644325656277116573247825117864545864186475252511732383588485511263378823117328118314264268726414332888316217725616178216645445774573261871637387566544224658814867175161623248615138527584544646445628652163541123665231552523333584236333254836261471112854254573186686622715487286266458572838888328856734841668153618223472362881755238688635332567188437532422414833453422625532342842414516454723738147828563454327435556287348522283184526568887412156643466135842217266883558418512245242421615823416786723753371261675727885154354141422354662374443782276642644228256183528726267216331665816128512326375827312223722575745544115287535226857136177843426636244734583712264846245648856281814853363658566821642713467276744838336267225717537728156432675175678385226354127558552752831244372312488725286858571356521212638836766655341646551683825115875437215446632712124241443623767426217428173828237313424655633231722323211288167585737868418423565314584373351716451744755784717844364767254844371164421686664534852137824365483516627674156468865745647744381341123457558366861245765221328454222164736423266877532143775776718626265723731288818683167245833814271432712821472441424718187357636675556615428331162412417343713141683821262155167878671424451635451653666543155514463181283835472224557212184641657833153343551377733221488461513116162163327153783722532244364334847725144555515743163783385428521452566888545676654131828537576373445242752331615165234686521248283773528628676851264513861852836864333784748415428731786587742435557845188148556411278414378283655326726686212822136676272152834223815231752621774147526783682224462674336588244527161641616874132256385112532853461211862528138845271442565466771711716638388283467573436574327468125477177864311735668483732347348484317265212842424354317547138675712588125811153558158463843711377517275673785126523536521862815736315578728336175817656324271738151314356785561161583884318152864652687434871153773262368765137284368763237331577555342335717624727785728618666572623556216675236116555226188427358612882658368666382864241182876524613848545518714157563278446784235281152362752837745251661116581221833136778662552637384465224883872854343725832261516624235325571743866854527381422783773122241382557741887434535325663661782527643284281533883232767684564632186112582555521841776556161113317578744165284347132776141641842411171453663267861224578551224455168714277182758436845552273485562548627283465874648855671628362483454744747145476863221278616825237377333236441144355164112381523416241253756836832545615442513411284316253813316566685346583444561651473334661124484887214525838514413646673742276343633272335382633664342386172713165158253373523881381278487644517721785131183457176755712245313244721484511415371666827217338623782532152718487161463758653274534474555432432745848834786714727253377732142833587541685366755247565828773875241884664266742132755446385373764531183128661564725357156275237672352658586658741466242736858477623444414636371424784647313347625821161281738536616246866857335887862182744687455638332675524111616775838885482565164188541827655331523177627471556156517366232332471388227562637113361786476328523542231877726526741538244445184328287273864675136188678134338637346662834453563332818568867511834667561113838352517163128761561186754452641276184561762425563248574685736822231657342558763784652727361133222877477231727787238122455528521414723383472252842813857476337135526746672714567635121467177871188773212388653236638443841615424358671578215484227752143771832436182628616755347624585833532645142814441225721557516766131864548336371418146662231516276248684386835663646373583358867382337334626382222551576722775262165584656452234476235773632358135352627338243351131278552343356477521828842766846655577727221458277848814177442714163724385417333286656222536624777138568716316575356668588756235118525215836552777422171133756324245363855361445884117161442771264761132255861156553831675721833868173854557233745745813254724612375332454266222413161343584562715486342655477335218233158225352562285167573113573163174883577415335437356353562578773378516117346786672823331177663857775286676155781643863172524817755841628431666731637813755353185258337737885345375775822143328445164836324544153646238131422863466838337378754624116876635887233482375223158237615114663832712152256467641351721436451758181383178623267253343845687678677474378852274661682845115473417756352844732287833174655881212683187272552472764742326514584333332621642741834168816356662665618576242425475572448161484662742385128837276682545422257575766612371263177426567218131755133311237322388631177865464551221251778572671328137822157278862857632356581232744316478364256422752687114286477814222648732441376552823338667235644575158818847258422425488762136454168556516833842773378865235472544265726576461327626228733177787214473211724446267586531514373163227435266616881456268786724782723632228546843857332822568155843266154178363635258157774776441354861437142112587418887333546378642342746853218528214515568213636567743425482444832188543228153725387618727158223337858247254112642468852723335365722646457568718555557381684836518431646518176812354651431788245748714131735485387754413242133616384467247677826768228281114434731866646525824551547267244687637434665477875442253841464881331268245774548748654125667756486261182375418384325427854736243568548666327823825554421551732177642675114416717131237774837243526455153561826728518484477858287534716763765213734768277141125875836521553763756738724237711455155383328683634814855834625437583138131585825326667852484813663645328364456157381286133184436667888876838615135224574873886333232776478115525786842311365888878656362862511248531637464631678244741645855538588338133215338244218338525145614314324384734715835535474658231326427847386537137471885432451153784275675438827356452885716772151345721131872616128375455134226811258352145376677675727132528778512516317816342716157757678556223133761332665823524111437354542555588628485646555853165812833257414166812445787881267554423638248646334144384288873634265535121171374688787713711643226766178647772217686264121284226751525478864644574787311185216788517156618154518658446152663127678552228784722676381513748657535141858888871155485212486157767142744384283864271681511772435241371721715288324351462126868471275326816223742346371153748354132534872514655778274388338232342254243371445881517516236721814736342248771448485823642423174564284178667663278462642844823168455833586333342788531772273256188353378122115252711458364355635557585163261455383147145166688722267444467473823334684866586547763676724533582774858446113737321547386448387546542546826761588651578821851662332246715272811475511118181737867778435524625751172677556331283537266687666813826672517846833885318148815216164748881355624114241714715823338463438464613264284875323521421456486818138326435878282448252216413714664615845414123223838626336313366717388711727116466437137467462248638676357765522322784581134727677345842474643534611238883375628441114723374534765774741735817528526667165285562616756881486848577254821241683534816666315166622436588323157477567211737115564677344265177575338748888715138487772215773247471332732478172137476613842866611714684432481358614344638522783833888317547241712212365784168453427358161554682472615884382283215836511535685713641838335222232381142712331417433526135317436563436213313153813225535155568282132458471683678162321833551438243487133163847555687477783545436465865243284855185548386211728455628818828372751112636316878882238738677312266866185336132687417472126727631326676826386225136861748472851853377746475214467132765771535536535311825282335247172258323543285733484674724387783625626666586735142128287586844325757221841223727186815632136525762241384826815414163312572134576482482784171637742143867167486713842786715835716661667562477157827264844216644121274531435247638526866887333334142462225785565276444211633856337275313443155544374464434776478886483347623777363725835374832777584838451444732611364782881268684257153713376254242231135721378712577527523234618788518241265752171582841863311851726412185571755565461453454546385636745161255662715551853817314867527725786364324466222488728323664543682485426821243172161682664675844783832683377643428478223681252336536363411235146172664848634757277824222812415721676642561626141833124714842584527877615766476566438528722861172776657885344167672318371444148883637227648722545376311115175862314723257735541247845845143326546675866451122113586151332553874543716442218878345821548715761231161622583282123374848826254263241877237544333622222111485713284283623536736264876154163651666256135355645852445727234268843628833555688281342824416771774743745757326313146314644883146137417543472773673318541838814626453377373152386334377347814365677165564775675324317618518813377642887873541747765346354725728574474378211241686827321762843867113116823817643442771856737284682812364632186442388373152731868126843125225835655688652742488117663164383755132216733863728638463448768615817684464461628688316541276224312761827352184128616336342623154212888781616667638838653785757357147684764487857521473738125821425284567666168882546888782153182277314167472131384851515412477585436511125237834171146677425342442767461851443552353881748131742877434271732256173377138583543782545654343438783632581456411758164516546856445715664678126188185116667123334825277625327676573181433282535536121878266535271266818335448118371145653426512677867717428876822185257565235851625212523421768837554816576778822137388517341234146247563246217322246764287377483164536522338126812644163552367242381842742454141275377681536856176247132363344432566386458612425711311213537131387834338311427185636623666531338687122548351156685836314524326775657523114126445128716737868524258616517875686285745488373814488158426213442767312857555745352757488276271363254156772863254448285678184181176277426328512156633717417873652835477716737588333224831325456551765245575345848356321158684416143567233426821546845841775826582555837276847658151514358846265171574818363136612362584477162661487854477557237835771228633768525871438875654457885117677825577265224217341775555723481243766244463451374433657746273816751545148884188448765258844282573586762667766721654741731821134354141716584832664257817181681126481547763256133555455324873582317852444731414556187678644111881485535174624241445871854131181135255453832415126514366335434217331865264162568381483635366446378363455553476372122864587243836524736457316684813658628418458211351866766133574746727335861787721866344126462426165588776532428476717878283415172317273436334342538324841381767158573886581825765363427443436813557743253851184531563124433783645485472663773212855766376625685212458335371651553118434786336547753383836853514875535824626347771628678334352457817465546847425554227122247178741554267538161383614576467363326857435887762581767885332135327623426663225365127767187786188726668113824457838773342638484346124572773335188546837717627222873847275267644317652447361152341311178383736254821741666378268758733358642154426481234552465342884331352456815322134541486638577122744551826427637252767536455856787243812653273817751521335786266887384158467634421277266756434724228622358737841554142723236578586238335725615632843124134452477687682863441674464646756368263848417582515261377657131466343317255622732125743524187232525726337756818772853872481871138371511476163642517813743536511537655684867388228861251214562575147676671576487455147267322446127755231847257154367241678431188745134125842426421835153662442325538816516317151748822748173272432332658485862543211482881875738538715412117738651758625673856726363564642272756718366515787246773237352261342588486243638218786776578485126863822286535156113482728654835623872787422633484348431183455624673768371158458481313478434612246123827128555552582511118275388617668462483558675513514232737484262774824145524771212221451216688467865345887842167776573268817545838263768234136712531554424368863585738452555323235377738866738678338241116514437136416451133167567452563873133815353887167865482217434383313553248415362166373513813843878242225163651534263478441712688368487614136156531847888548725443852737837643456452717462318544741883482333338861732564462426557525564664686554634456553782244666274321686442572524341376217634358342121635873642273761481851486181288332476752645823167734838237854777186667412654557411864546147433882564174341413251813857662275464586115338871862663165782128333353163353721513676673238126648174357248431277526272262663446112243837571555424712575743154454335587442217326753621262546558178547142227158685154776111456861774385426378828182468745542214858187536852514123236711465246332337751243384365675135168353556486243827254657876478683575542347662154446577336665212266731532364261371518442265485528257826624136732882743528265477868721282213575662613865557753558587377584457182353516737224535254172417524428512533373184224631715142713812568623116876485737418611756227861848811318817257118536613881487457315435885417314266787684783245145648745286827331176553832826487733426835674123782556726125365117448147366675162724255536161541442122548267441328644387111632435637877865376428358475755834777327713366582231635664256428784385633858327417572747231762426515178842863773317472762725663374578558646672618456313182527855121835866315165177677673742214413216458181284487335611742863464781136632622668582747578773181238717577711676213457825811275755645514344878616113765152648832466173274372342628166268414183346521788333224385182615622622622161231151862367863711833212843856868632734862724662755143717788553236318713542677861432622217223415736473614562167112841136828238418253484442627235376888641234175666113426285817215712663756832487765167483153464621854818382417884567826328532614368656375186783848642161883724751483127637173367318212767221215845224683481784385723786575315856148214424351688842827342763435718631743268714765554387242545633655735618585632387684224438517764124672216671878418421821771636744763854638683334243842881521861447741763713732223174363882877138468555516476368676161868267637545287747183726344157654637211525242573187346641646517142732571665524721531284358526477621447575236215235344646314528341882758132447131232363851122826675767637563342155377643612558826261834651572587613433464631528835185436255412763173138253772672881131755156831217227231117346133812857563763754366645656257567727124536461722318571226512365227635675483571762336415736658242664748187813181883681763445138386347326717174268138276481118635161752548156134844853283763743441126841713525578131841837377583312885643654222772846636234154871146321676764648814546851325411525224852245526266587873574732741333428281757545815653622712853155183123185811261636655535636812222533417168173725288653883653565678635548124465672523472623161645267727311616862288417378675426844473223854357163174772326865328324622617683111415744673835457156437685125432177533656821563868677216628728136556483274387352288116434126181416155171466318487854264673447488664862528315714267384653154561446814762753133256875427384747787478532617877884687881338464221135578756224174428318387145453426662526245648741677377172383614168231424675568634437245861317761371382451823583885776173711556372372437281145412671355333357673872232516327727643767367363247215125242561457283566163711771351468653716748337552868325861686448114152616536482688271446273483383784835287834754678481714654184838483877747324458888646212227327236233176777374748713484213634436245428716582676533533121871433624855832558724146415677673485656758348262114425764112441686822614384827238347871377233867561711841842722352626745535532385445135286168754633414137271421824233742425312464622272818617666678631868265313441325473144477143675543458156182721437633641423781344356862337116241128371213478274366858773583867575374381388313331185841266564887525525654572522577772865282371148481565684742651545432822648721321473148288155778327261841588632365345235737362318736482241123817147622711337435417123837818361672523614484346544125318211784832683138175478231233768456233576455765461874567287131172415754116648856812437726331817225787814546417688817358177745366712262673833768328151634218632868285121323356288661784874743116632834133125684367114412453434186355455466816211517817721263548744271684182667324275564671612555664713717635467876248577345581264222262182518154377386716853146265372487328275573168358142125742346152871718336281236617726486271786184262611181211547828565874131348433361378185611513235771754884517734737434115152845421275535645435477826374576742841157576742142558146744218748144116465855121863477228338874885856663765166731165776776365721126654611224583311855584236478472147278717736267223648733566415376684642121714325358212558366485762316115255674716786612335842227425632223472767416276126377486887436347673435876262548863713488712583436661725412365238518425816726128753532143776151817828576765467113156232528224873661688145558831233855166555643626453326533235754246613137618161772124447321513123684617275148776185115737547451776247632833722577687346152814678471843716174818677172756627183881852832581587423331115464843242316586423272184876643281375516413733142455634628884373117355663145858262634766663161142544117168361877222684157331135275362168815158871611212515625711436541216613356137715155284744744265775422457166544126346771762348427841742355176578278557211481343613487531717525144615183633737215541361151773144412671151834424835838135718721322286252352353746118173351242341158642534661652433142864654748721454317445526431681566537163654661167522631471221233585413365412578836281814176666185683636276184886273361735112661811361878578634352358888558733584531375248713315211116622652622144663354242238745423775122878143226213383276137675651228826887225813733252432268442551437726515755245551481577232844656434745431844251366172761525187341735334488522214523688452826421481673283641532883867411662118725754738711724623866423441347336772825883144412468111455286678363265752136274187517611785224722147681553876373148571335844326186565572578814274117632182421181754473381277352633362162321181745258177763285138335238352136112283762644631731733126843722523312678421878863113374665826134154383834578543541447713154436741848888157162123167824227337172663567573846148453724813645514461314757243527438627278228738264861145836774287255143535517282255358417786322184268227448755141276784663854234551178824516177212471724221283358133131172355262326168576566888462631715542727656433876631186884766817137328782414388138217866841317612513278328425438816463257784565673611517221628321856348728832261436556148171113764268226621547381123726384412345768642471112747548587326433357842573777588743584153755267514154728163577453428722273781356323481364322234265154778227248842787585134726334538624542436171766635785256571811567588782481274514283675138121143583562677466724783232341343823372288134861212682662715781788274113513168176823776863523357746744265567246587466238557744634174412627488727362675636172122538145714621582134283423286118737482168211231831458357547345887646521432214816828545416812482832644656577165766382588275882174825452115523756585412338825284282737518236528734165217766443863223561181712362768385778274571858765572528455538137623542665426311868787631874873422743518752248346772654658754786846354715121112388432563455832285827367676644741474542853446563735238686457512551112866317535877181165672533458556313631581677287382838757711623853886853132547833286632318331533823374556417367673832723713565724218534872377614663854785247436717631725824451826272352773325866318487675731788266183847245633163672127317143161476632245785158184886683187482135768551738382361456185155812665858715574471376328117514761137331376432441548867747315442552172166475626741337773628754175871253411171624724363582273277746467715868847181434483262376132367224718754333376682674713473618181247171213417733511177285453133754668371686241467543153685167154176122647432264888212467134781864663747241164554174287857417282537768384881416421836432243558677535252521367878663313524546125847552673416384836767776317828223835163173768753545131351228236181664872338312336786538651331811667635825553545285555436221221244826578732155542786836657338154555873553657872237832563186818834228165117563775235152357628577688663774632875216717511437856733611754725623818571136141835218245781368736736744444225217785416572378363142486547658345674872341558572453363133417338867165387143586418645527865717664146666432487135161638225662284217842655482711476116837251361752355572287844173461668275378422257713677473557754536442548277313744678576748381443184325733661822178847388777823837135528843541718458785663235128537288744774852457443876381888452337118176547471734287534321232165563177682286378368287526618573188313248868587331721647378133313841325373248638726472285287228518217785678543181738125584123631551331865521435575246666274147268887654216726461584362645221833783624745233741585182253765435662614277316647387883778723325583631118545861686182431117411866885166521773743228432131761536836411123716157461173876838173476773885765577482458457646622856644584262436335442273544325527747317775524716121348381727138421326184313684113216782431314243744528656873881376525768588171855177148315661658327564238216868267137665212337736581623518316823383731447341684124172313338587833316127748577176174325515165837825526861727376881128341853116585127611458857246358284756254571172428231186722214788842534572556464377176634552517512355721543278373187452514365285186235871268716272887745848124223546242735466742111782245124516867248332845221322167772151521364288688473161163366652537688423782631575572557542324136785444671554277733858421618622462663612753777321683334461813245163841783246878624847852147158536537213577872714364768641543566785526832325566563656371412428617335528721437654635464272824881383842783536363343846134333378477468527537854385341853145471878432854723218314848882816514518242346475675313616353454664284615845372758146416718214571651731184628461865673863841467531523322441386181628525516553166185123334131745866728166682684413672614276756414253656385265672628776854316157433365812588624575338635753437837764162371253372722774856361621566871267281278861145217541373331835113518627674485813643761783553151121847616752828253518288245527235286657118266253413488111233542762414214736512758767738452626881737227367825267254887548477743423235623221647421575846874735166456628516667271738481785837414656178848372266255764741313144225824475111876563645286236512688257355753827364245625444762517578425667828643753485516671841368326773641325567717134613454482824667643661886374774224251666568613436461255584868151573221576443753188722462434181145137186417743128561724534133715125824252813365333111131243584652254336233431628876581671636753844447757111768724143221871552526837413271864413727785551273435787585624366677565352516582542181526274322651124528476716156263785561187831632181517875551834373436513455127383143747153123542482122324533322633173578882323427338437571778643821368734623855784417223861832783821468832824468866358625425515853611663452765753488321528246613668613645883174431837651365815778416477146842454414878163324517228456237633744855348826318455346788273143883377873772472134528814882813782236175168274177516487854714158878546611484818328138482778384848713241271366218163622416385786676662756471116524845685325562245572626155135783247423155372483156877574754834335676558177886862556465557642132518831848614151823628144718613738483473821436237466461552288263217126124254744271883155734742638536718332465754721773365651584144725624757131573367585736552656135263328738853356613886252473176361578253655141627514335143427745513478452156788655145328552483641187644818574221321512564323384351281572116287836177281383627721731845726245134382687724746537327378731142322622586467823363761385247248162213867362133126813188613484287378242668847811316625243253568163886131684172222541751166884881256538555664752615347452222217133656322875831186322733144741641615816751453438257842843386451487887361116428882785576775487217863481517718618545111477514424822227874625682223721737385636284426812343518782761743362742231647135268235264857587735676486121824111621217358228862231435247811317176163467476343323835521416237513225533167662161354825526816756675817312145742847185654354611345543131784458623428675277345445666568545182623634618777318423171613367533662635752618241182466116338758736165242323333388235715545272262734448376216526436626847136848682213282528246851238878488173528445735576412756776344871748711353835484214876435138537273161715184311686785534287727236213251335466245781141535116736447424456661471568374186613175636248272855654777722272542826286771485367734728586765586478254542652847637778634477647372867138752156585864814842762376234633228472611384344745583486211363652381131266261625242281812814861166761744167218483527665435828685468124427847774615578122671658853864176767452783146558784451125313727265566425621173632164145376334157274826285763233816361818232313121273758843855255553511171821878166843584786123364375381457146123473433878681523157257281115313212255243118762733558144212347638754848846833613637348651851624665738631174322682225787443272518787431535637453545221831848261655565327582384358736531372287731176568434324756311658377564126125478182534661361333337771253854218118327445477177171455542734814571528424558133742573217157448466535236558468723677617413224767277612154661627555136563551616522453225588327273655128862143571725147287188814878546244455313445155562841582875531322457855388482614718568454174715857423812557378768486838346674376227467371128112612885735264667375788634616263444541781126154758138157487622153176732738242586216663573154736115677527543663178756771646635342576448253286414156632765135368224837721786117511848185468813832174733573383721715475132577847146281457454435563122371448844758467181585835283461688383384645248157267437856768585432457732425337722355116453413525632472623823364516174628126375547665484773721266531563472778331754463517778563723561574638337111426737575288272445281348268141187447215485418221316341834838518144731176524533263863836425476147127725444853276263543275788151533312552814323146151845471186128826772642171442117612321386685556211165878621771227141745222647838185374223287871785546257177846426142233458224261434615213864326172715717481776776253461467815664421617456145433127125267565287211872626187646654266351224383774862711228144316738254343647736788668387352483642664768118542232258785687716777112288155121811136615732523861442656238742582561247472614517623478212153718656746655875143575731316272133115675426575851214356174612825875151388126212888434283561437576783778382112812541821844156525382261668566733574346146413764453246213766115434557238578733834757265128735147481864738472365726231743672375782878827535457838253313542436815161638472127867581781712845243728777783512358715754532786311558144574844146627261233417148755465731381481753241254262145672735174163623785218882825128257436534112471465843533681383724327847147853858223463348445324756221133424771382315341371723265576355214642467618243867126113527723438764611532555527376186148736241126283246162271128477158538323882311622384312871828381324825714811643742868267226755857818286284357622515288171633877478354674126544762371255827276621235654665436464512686285624373115342625824662128858648327323621744673244676548532566188781728711865255334157617825331271752418185672871375723315737512564412377545613437668185548116333441537388438478256223473371668113626553565218184376321525372248222543786467476575816834253347836781145443247585752124536532122616471624818435517775217867661716544313461813231817525172727765178515458455778748357752644276685323565416154814531376246552887535548181665765375128433255123462186812678755154362212274545781568238483445642677587473736276238653362665346475842448631427781763188836266872145771451262821884864826331685758117651764525372665736226286467378221786225453686261553347575418382467781343368153617612458116686743328811817713141716652328188348631637637215168621482384251181834687231826124186683532146613765212825674485562312551335613178686868233543785685542644722178755417127442377526267813251338811127876781685546231637113635323132888575214628127777657537721731826531252584265651475217186731537382467333311862566286663325345242147776777731687314667566811482585441227561316117542818586633758163172515335815428516165785162547723668218758112658365515168823465348365212762843436183251228256677571211844717248554776557271545373358154544128842125642238271377661376316725478247728513271327755871322668264757686656875666258426545367852846726258526151475336647742647542281573432646655854625168211651871637847223874171218672663447586556851467433782528474622552462687881114546833674378627461577356253723276538714338851684623554248277482145632121123643222144534243873754136815123357331241553664133877387678846372175785727785365254658537528313522686858745132627681643111832341176772432832283663687584353157253716548743637184351676213527881271542573756623755733514553333826166835367531872434442814886255732532757377865275336476873355717131223621514783125631187121512365154432258587515738747445483381713742636554414874867363827227758141313668165264527124373761356237837312775462572373472457471273866463352767623822228152866854827555856614275464555162855521612154526876485618155637424142762874112481236416367432371351437335415645335165358763667683715215755475625282424367634461357867424638881418327655178476127822634786682418431855563172481243125452687537477573186114818124822227456711355168445742212214382521326664715112822486677764712758852237575773645852376633274855841631287643814266885567856848514377384754725238588152516867828126423515147337286688828316255763164332836656435812713438125288586138782223744434511411412181547227266878153482523663361546317238813311766223134857884158458268728116284472775876376757483126815573282646882176772167564863238477687538224178737141487554446472351614212617681151161783846375477518588731586368463152425741185745763455172717345527761115211682848272658836427671563234445461652245371344673451264586612744876112245338384615733288731512718565688738768886561746538558636248778557411181743587226168688374342887417274855212184456333362662762277185277664844878623646574756874341838383757755787758416558343447531236528315851333351665566812452175783424875618111764431182834117256588183334284867422276346346242582167482771847746662465116671536744678437232776458256726552325118144157762658852876225541663741744328783537281347666281354347388672367571116142565254356777313342145884664345188575616844745236141236683784863836154728318473746766483472875737541883578283464742462476361724335381228737245636538376111682222322418183864186457482258734613714622621664274588834126865435673744875643227533133212717412641882858538417822231552617528471438534143154443536687435357882815525836113147372617252786543733175655453427852123515371144887383537241472764643583132782381686651241348233556823386163358188464465588263435176175678672552285312736744753332635371845161378516351135276261844532535138737375127281365172176488227482465711177784581165861571212127855243247823363148633357344216113324237886381251281236836427787125185581378812682714154665444823522677763433618775872857468551778654232464431378834735343315853527147275385431881863563463837876772365552184751754771127171575333156423588664426764843347866418772273417345574751824345113451314233444365583578337438141146144556581584228574217851521525785212557373685323631275244855515135857676125247476412622124345725161735416122531746178877477868236326763142865825523177525368382574857248132273712728661867413632724217221338625767682478735265144434345145564221658414156248741284584758173415241687258573457534558115623121214861685611153575537518676145765353888235347255725533211722464651156541241855184357547336543118762285268232432534378727242448176783478162872134533422835745711286485167355467582818718388531651458553347851421371756753716442274718134781818637323157485641564844514681451321158434831212254325475842556685711611763781673211644885252881461217745781767685736323848185138728511771836783842664834584164842563546338675861114266376388753661881531387752838325644171822858645668755347517418641745713687663815472813438238114774344612547434662538468453433422745176217521887217754751188112783157467221225613457531585265352356113822523171135475412137633465263135873351168514255835765712488667756253865523115218755336232768655332377536846554418612875268284384488753543865313243137234241248378234585772468643553345455446164884123587414838751254366566274341742267514184675762884222846171754842417877843578345727672376358421357215516852785147816711113144746657228514751235625363173354437264153823166278648832231232572167561422434142613516785415334246654683445815276414748488883113667717657248736246227226783688134864345237271562374113442426426764815434318365254531575677435263251418531436143165228457286464456467477287888262481346732545678482748368625243448278752675351851114686365755661687541515716783768848663317775524344185663353315318343234128231262541214446347868553775744456271345423534227171536771132467773513225464586354474632444651218466777882441733742225336482413818373248351134124813245744682552187468164164243634844428454616522868745357432715255354218331153345731335778156242464754754858751434434662343126761222317458445544684167762264527218445772782826173245883266288118518284443332815721416484273673341231361351421113721456864218238323841676634715776538273263276177433187366726855614583771785563113173711457753871416454243758656154112624486485515226531566218774872753867524141362685748131177264328326774257255121262274742365667655831426817121147223367181566883553354855756536155842652414761686823424561281585146272828486535837736381165132336124826853373573165462468147277858151643647113318552465838657413475226282162358721156551583131148636346148875764836382826876682321125331234761221741627416153875874276216373165226257656432788854362158484781328112876281368854167244773253854752128447141633741634117433328762538471874657142624182834855513653361338712573344438673175335367682684362238534573542528148243618448845765477712166874875578516452853216442372258457713336877674575766226315522153714716411378314871568888447321562653351458875364276166676218236117884118584186265748417725718216815173632217835278286575223744412628157768328836515868252442553681255627341211521164881712153373168636562272211317466526327636633515828144834832677336538482652872261142534827275665337834711885272785117516884522722615275872451246426834638752648721185353285871537881154115761727534138354843562361136144681343283512517688826228873384633664673613834388377568556743316273627648132137653128831425313186138583463336218427871678876286855715727752538246812666565371576234476268478383753826643767885214643865774371355523346331228346771664328357371713214537626257785567661662581346537687428641481555437484624345168437336381111252314121547543215157577766874651487885621471451135441337683127766536185611446555781888358637514227683744878231761555581131771368788173242161147611857631724527484168473358124552356126757318735248243447426663717276753351838423834348251874764347584828572571573824518257612633582641617526562533888572112775111865612254777681886614774668845118561772738588654872131514284785628483546213744833216764843478522457573718183283564757247256715622566427133418465527818631172551467115728726623862452335341265212518256748421464516716147124214462357112648456577367838787227352556326287181747365734624112883157356663272233156331658765855326723585721643124746878425127526388227786736748288577488187458155846573234817786441281758611313573832845313152486572266714835773142346464678585713831321768845258453781734674265535256213887471333668352786868483825315582131738286637876364364232353577656611685157523248463455377216178421441146567753485617315226581432573555812656583268868272587342565587185251876264661655575316134674188512661147422277415636388437533481626737341535375544844546181446578837662425823444544868668471135878755684343257317615547286265764325552176463881466582417185277616842646453328853612828478813631124288512783485663534563153483455872848787214342681126827354311815765344235368185213585487438176638251343566145353618825624333562584587842356578716317766361336272541112883247278778263861553867182818618188714343331283244217876864431818871422725431422812468253513363362171222342141211447321347564717615684485388326421823846612772658877183532264865837838368424375244644813238323576865818427855241215362654342681154224733528788821157821155372857345427746336378154543545133885628837723215713477518751333428852515383261752786326213213242284825411436412387828515535426633684215248586485274715154616136313783327864523787847444572872222452758653771256522433586442568425361783276258522664678434546588622412471165633766735744818637266414658326588866526611187821443744876818557222433111775647357613281452364772882818856426833683178724522186886244138447231116161148212477263457731465374855668464184388766127761517733218435373687777655137721842422412355771728384245448787853182833234473434851344545534176156246166564476568664737357455121415628435743216234213115716178238317217472468282328388746544137154474218146833231158683324486253317487118463682664383682741436724664471427443576825142225865627174287286142466168334453728372655264654454252834727838211715871253538661253353715285266353712527746424236233463588226412758512352664773565718238116457281242847221285542788763341685511335486717884555484467373347468588714585854475525628554547382142532846243546715146658113518714833737448454611222586214565113215444857462533624471216621732142353717354417641785862613673753657838755813646433528771724116462225767855338648581575227334137331416263463136873616388733333155115483688688884221851583486688268415444811866888142661118765658316542648785452423588318843588485746826456617421668666562886415671437244474333311863586345183531261144183275472168487222427671464468544753882267624415347673728733674238235313772232733311258737765288267418747637766787478463741435123468311674231816355357548353555457188233545316132566336823334771285218231751434241548347262611635313722817516182646441866133756173365523173778833334326588865261567288484441313335424173746361136723432533538728151135316113122451663422475336231843244715773828645854713315675645766317475454425672757187236417654375184318326775822387212428274367744764485241382237828656242378633776223417117827668315826724673652148456756227884821473661218432343245836558847146243215382815731752314128821434815236622822285846167478147286277757131282427562375684384213837763573212118536461118138556815373517784615657862167172514254471441286666788385258867774268627337457781538135652624153471428752664243753766417236642551668241476567543886217127352523371262871543187447767246873714138123312835231135413833377657767448676535158132648548646468346147675137581513446467832677568743677771311457458263556671217157125563614415847724746475185762341884834832522364445244653816742431871373134337447153487455238868157755165365121833733674366861746328536724423172465411786283336165677851188313526126716482735288666263768616628487768427367547414786764611473883661278625278886142628756852852777873425838535885167658415316485848881451863233645176177224821174868662735657677265531452541517615343436817466358523527477518447862872572384578537758214621364732171234833182111446133515313772858668133237815148728166687546432115174187487888631324841714224134512117546113846667768716727387457327148456621873436366855455386175551482234888282588851516682111353362552547433643247384534781723221142813352686561486525815657831515753677824671476238478852445165322586487433471754783457687712433243747381517671636843312788187473356255373712562335533472377785187418616847712831244482376132231842517313753812126263387681771844685433764635816323323677435528858218243526166768287133875434188671581722228766442255513123232288725866275742173367885767276313182545764324228553112587816313618434116227531572753617515845863722731242162676532713321711454416675616463517261421343331433543318535273234821553657687317662652522218478537388665184431367431357478183646446468875388172432527432842363516344737434843772811443683481352643733535625882752782232267213136315568717116283148852277565867268473131746535436432215663228612351354344156368877715443631312287231321683831875462175827115832621413542542316751657728636738167178183343174628642234764553426834734735188237173886171436445215648627314827682152455465726386727481776865712627423168347546888645481274435686145423114765155135245351663318618347227681313562285677755645616317138764662824241778655888426747326863438232645773645331843684136623136846726855836436277147557738788254732484687386515426242822567574564474813413161362856754672418763876366327581577444685251152614512245534173217522681373178741251172614718176448617416661542266342473553532273211657874818233557663828342266447518315765448682267267162874338676674761465812237645417265688354783275823173383753861756485837317285754637127881284868568768686125367331212882677172188672617326544363184351228633718366234135785233538634615265222228448853432122141814144567771188543518448327482588683726665332283513154186416632287561313486525446628285433186822748535875584145427186241546715186641337577658361761452223414163344366283557582365872251116474417745321546156278756633631447785578717822627814855634617648228643331728157558845177517148151685685377341115651264534137811636816431834885456244513113514347834274366734861674614172138423826835438762255284232338538141382182242628532126218348358753888768148277642751531562456433488462866845725617331474386816845842745516758475228824341641325715656377858457648317613764585643327616467172755475225568824288487354567475531768181614266683337134287116568643252178466742172855171841214247461335242526682856161224842335737752845284533688182674865187641223824111464783368243231716261848337448452717734425745425117713413347781141784833516654335272438761358321366461687151458667571454445144741554538185117164472534647858333458517576774556885727288644664675533882631675452834458484437586116412645313545647281786248158366876241342383867454431222736321828611444341637468573565644246245773423756825438156371552635826284436788146676583882813146315125465724337184458754522825325737842523552132473135476345737176472281253355211463177318583851667787718145353461447838774176754618271261663661621274753337623153868552687655484417874874646617615536466837167527873162412673541763521213821438883316146321645628661747716556416736147645761112875656234775286431241512258258127381511158374837617458572454235524672646275334211146662574886455578724517642628731556312662174348271382235116586318515748626141665714577754273411367553425288763418565341655616583455464878546873538121653383828822157444467652661663445675636287388241356188256384215773813232631522643448835652643226224433386127882383286327283122433743768441835235112743323534733677662513385767178238252412452721356163383846455337153761625884888286533486248648142487168655611337541786217742753552465181266356121881222665541716621271713288771836125273337125446524561586474574845554757666726168283343657775271733827452134417436428675463677332583135347748287531557661645468287217648574168832545172245758348858638654132121845143364515546133115537611428563777721842285765743416737875713757618461571844427427117483651835363328377837171722388188361124352558453826721417334384836148232383818386848545477477837547252856317244884458864427762373268161482272532673336674261488775358187823146871314572865121655851751347558356847412218466543134721542466888658181826834275254646656754351786763461723847453833258642747423751166257243855827844565645286538246723334388747248265336853366386148878364818431326551312648168748346244312344373847645868574127157448578661267557882545284563167528437812127431888724431554722378372647721661636625758422854687323554345118742263745363558537856362373841784822883488742462264457375646636785872882573778612124758174356635781881725164631588874843344524284851638215368128873464318456743817562468685514162168515127468651577481351576851756477645582254213627611457621616411875482316784135586518442577788556266314674256413763674782377383628328657633364556574544767567536554481853756828546182245862434176285347233825745325441516628784428113436785148667862838386875187867317556162617552454851645354611247864347124741642126248341712422377713211655636834328753881148867727145272344614113687673656641278874567462438818277513774224133887124767112568546187853442544742343426276444867334726131274338453562286582884426585267253682617521738457254356123338255131356725755762353678851871752162617475657315436765637425162347414723487325467211371173676471822461628217621232258834218517516344472883664743835538625666133637665852784767732371742478677151484646735273662488571687323134734218548236183248784533152431874362735748214237274334246475534132824455146555133463587282755737126268663184285512856366512782363871424473817437284836254181326572334678531171761858645754876612535853573671666468388544138458518765733152784437144887156188526584173175752362635185511376237884187153645768143323761587272646745627572238131162125135521642436654523435325128726481542623725242668618712213682482156884346527354321361477453653767533657818645743761577421645838442714513543627161135563217787443371741654183481558676186743574412543524673628334312117352311626672588137115848276143747145127445312375673856562362553457635556774172326622167782626168448664458836257586783348412675386763225174456315872825823781421113185568125315864733385364473188417632588131683763252385383662577142266241765753135834461636554435227882678222282644677626173272363233186678485621785537282221323685512338275417473616486214786233783525511642258425725145232524783155365446528267628831454515681153556787221687438438532553737841766513382357711723463688863433215456455687168221264431477386617221865285588512234366472811576167125331551477217612318186225722383533678486224671762477268447244283467166457523566675262113586113426733447886254888116775114465577256412811682747457242623231377183714861611842686126357362318674162237884558688462163581487356438327117261215253835355181483733635513138741132331826122731211244664846528232131773262345136241367362678668772551776877271712518832716743677541527872461457667267425181437773812386533555172565413163675268151286511862445313543516745852863658318866162367572538373775537683521527872628474387835268383258527338724886412731521714643635544476155221831621448171452581125553835243385163264273735674756878337453478676111477337763848343246152181855332331661226227623833614564566756141624715524385375322768882377843512683815411615737662657552345666443738841561228586438275416644874237727875516536368386484127224526387773318663465855312523133454151535566443445812243351351585562525247478623383214418285822248317472836765764772287727168374871375275722187176263154457155123242425867267572868334476278756737661266144568765688613127553346111123487842427154584585422342823622861432534816465722233357228277842671814184646885117411733747243372162167512882517128282543354652435343161858726537524467361716525241126173152421332764367347665386887666547686788533151852338824524272436363812564776533635526147153813211481657712452684826327784151461476228188811141482138818821637766284154541654664543534282255617174581822584831145314371565133632186744551828624221358375655528424665222223252541362278415166565638852641655868563756787151686851723576558223768655411216345188671145762343526257618735221538114617341475314138861423112154621287533646243543588641546723885112764734127478748368131778667275337467471384368766765544527115614111558287672368626277315125243623478314843776645831422838323575833431874857238782534614685641211243882854767753623654173344431122161766321653181455438461461547654447668742121123364376131145721331614345516378323616411572153752538153571368711737567285357214463865333121816671414828555146153351848752842276826315237432146142733727568456248576761518678184833212665572815831313364818875338346478147234786424727727613315736475455265615154583374851247427263667281422834151387341121863375613488237181583582132614651687368367787516326636415665242317712417784651488753118675866757515745384468564151456871547221541172628755668771876272385724447256484365513186242538665814357161478713431445751824547247561447282748253283775443587328733847363544538448483817366255645188486417821762467468215587667366273523815157365228681728582478766185173258786164814682347555138417176483147642713762163827437465863378573154881874681873485818453771318621671767244332246434368527358377356484814316187736731753684328131368427754264824664748678717671424356788822828345781768445864622123453344443446176738368824875153115415556851338512445483587664844152626168283758661775232184258364512718787631313151648715831734871267117546344548313851418583571663271815638641677568671338553686621671824585553175814834586526277323414463585883284254213825548832343675645311376662687171284287182336587634753175255133628215514416756286632546253433414375815422757573216131653655513137287436623137428122154171246521811741227287831787664167788521311852661578168128872858715726427278446251154866421623361818231647652364141513715574871537452523385272283243584658246866622574468857776267426553164432161377432426212527336653666665573521161263588447347674146324838882684677546546477845111647712687536582425166474345546517155832644418541724458453116324686288361612633474826437715237283823428576321638776437377551876335576482231863442782575312185428863373163256261155271721588232685174181123681785874132776716576255265363618657856128284542388172287322358274178372867332537186222641475484853586441271184814333456512746213257583621686786375532857683473485224442222566255714656435464411882115384146762828445784412518515466682716441442352717247168635233418655361112734174765362311574432363868561351657744377265384433238526543247271164268145575874817866576512428483515461734883471743567337436175313528557644658743751573476751156327734615176527883556863247844632225556731583842214562783643776185222584511715185543338564812677888155266253628843373716717642432113581712244735231411756537666567586274464544226734726261114637276512528178552845186711427881365133275781715868537828137423551723212476464631644243716254476537418554851421255335576787343855416137421223215637355642566733848342251378218748364717152385386337214212238713686146548755172361272562451137456741283647312445551376228332134764571725243186642445267187766821465527743152383234711371637488513234618162816785273317876485325315772378136725138136732461668881567662374565735645124232864831877622541853336511127517412784883321542547832278881427257417753782823646586625561323144545887847785266425254622423484845141745335747481616744885835178271335457518427565746342511778484477834482844466152356523651586615468515618726427623862813633483541557684646884426771531813718761535355488185243576611452442328338862271741361635152286837738463136244318333162277463153746483482714744334517425258535586282242478468768331663355775334624845641683341348813817483633155248321458754447348641148428382766414416152586132852566267613881516647324278448315467755533528638361713276732753868742465633684381376565854211486177325757773223217534131551266564413544333311637182463277761537837288678628448355287426864824776356884853887573118747234582878475674736273831811885615134388833551644423623663567135217314314551431433414642184767155885826348878132338418365722236672873664562472365723746328112445543516834737165227287786387232656624416581463154438315144755686468728245782153216717318452681437376861458332623458781713542673467724838468331346332868333267472253616321254284574771611726534646667166173267525663711477781832685162776651278645683311276871711373257573512233767617436121217715277846853176124872734133721686815755152438736775824185476122728385866618358137216416825234425412568336822722222858512632143341564186775837758622362512372326438745224774331817145352281338663526285264687355258354261363736157474161537123645231654746631313746253873685625245871322684684846322626852174315753452622757822544413167363464845852223867458314342627212557518265344311245762216344255371738715846367352535746247524727516477648476277181672455274265625431315218523823156783171464833265862453111388665451357182554777175381216313366462513128235361775864881327321837675153846241227625771873611753337834884517337718174243471566558453412833763244258664572635351283248133168484466413452382427214287167475371437645142746677165472857682881111562135726545158357454831276856873673134655821756367367446132388364664618312884621553857527756481554885822621148761255827364678731731172221314772786455878356781841845737727315172483677561328121762355134834288114478233335716574725838377364865163883383464183261731327752328423478717252232225287371763852513742678462372413588427181153213284128535454561526457834641831826827742474541213725378648412483742632441885873762368244271186162815126265421417644635611528283378581277431431812134665323313241255373673733488612635864354567381784833713622647772174418836453427861817278141587666214667411427271862656357313248521884314452241346272514312683345182433574767768176844131368381511711757242177683853166264781456287361684868314511816378438441756544328674314664732166126551316852881837357782865642413135755417214263614544686861272254436637224512567178127722585622721481713338286155836425565213855181742142867334487735458568765842123787152744883673777715478571458744211484471424762548747412424187575525631677155875561317221625264773853172554122377468881827285574545724666148373121678337247762826467532846764143712714335113362828433523265346624564687265582653363232528623452717334151576712738757165847853731624626744484345731687368124813845316877184588167617284656154157588854751368746676186263534841765362643641581827387521461832617214175126175733653274837827785376744145631711773261353722617232576852274732821783788762187487646332121264322882371364144783626426335842173278177112215682533835354728634612628485323848662665787346818466235744472733311536623226824532342736842784232745224443712354185345511785368151367678528745722312863517215617641567281242421251424465283431211334754537371312121527744243734833314634253788116738518584866851857131546732412274682521814466163462536775882766833284882188612858268444613588258478544644621873518221277184621625578121173232557135251161247316752433547562373786472575268185742882825677576762221435852557213168262416854212428133587421231584576376168458687567434375865622248867662276744361221215412641854827372261552875654472888763558822426633485654836461531577731482541761821442441174717855718457677365424128368444735387537174542444685187582533172261834712762826472687227476344537337677455633132817781534355478317166588732142818777446573177617572711474284474338734477466234158818643663777866841488845265641586162445483771572572263388738548353164673562278417582736471134126134458625741447716558357366738538545414654358216862514347671512235473714241232728675776542662484538765886168857775161621747853122668264532533417614633724361342515412555627634512144873471414353763525756226333416512741857173336254681127742758278461135731721415875583234421388843825265844854152377586185784675646238424711883727266576123252623115846184743634442266577564612613267833117476527414632575525472617252458866628455837753374438661272384772518153612254473532554262467855613627545761365234171587414286337666232624711333717557385464717542754682673773724368665268356262853473657612144467144332263551643682124481585188763783671145171155827866133588435422771452138144633138488654367766722766631541661148688231653211878632455225858833482472453473437816223782386341385284346541543441662112226512237426547262236232265473254572781213863641831241137542564582667745142163725546641262127173346782465377551725246834185511812571683821643772113686165333323242226515345634531866274476674187776543246465735573211545814874552272116711183642837688346344661548455716712773666212136667115735442682368227542752162738316486182851754776282866241471811326826172757382672475788816864686875553444841277125512257524141648262123226214113331126865168144536318526847124414525773476151118746678161777838477635861565366857575188647531244616361373566857776173126776467547831548816588143647611855313123576642387557557818731836453462788253843615257124857616323366415436472453545443517368162184315414223158813124461354757134154615183457855834171765328172584664731245617282555343834413368685675688858745662313552613586556684331336877545365582727747481238562662158761417634576461826831754626788476584137476683772235271358617653867461275454488613781582163834837632458162527445434241456326375258861577635141671782817636834216214867611872146726813733185223584586423521385163364614573215564638362371421677821142411486551673675621637786354457568377841824853121283847361613235154527276332641338681226346568741258673326247271725716238755438225271427783578331472282743383714182131878814787545432316642883187367856526155476631851572741648535387645322561311385121264315854254825226448271266477412482686218262681415128146642257317567844562436446158631364241156711351776527367131618685721425262284362638126826583523611622835724717677658822366535582534486135476852686657572834551721766238745436315841485585611642434157682815533286836452838664813475724112565751241756528472548747836437341735516652323832776631231743367427868614512782665127737727644553826446587774827428883341223337538264533367321268735168777111753636746148572358247714478258831361545821877111684562576562154242813464458838167272845553667243131373475447814423323878225638518316552255626165184457838188621647861276415722387483276782764535132126356735634474468158813436535634138618868424551133628832242724226754452168472281258248163224313655161863422316433444321337765631216854813144743657145778622282872634735735266542846584125345118863422685368883754573875376786481418667752621615653628843383688438313647776857281258124448418853878724313154573515177288131132885547877881818335544858758428375841318784775677888884845875823573263258314572132836881288447662685111182445315118767553287564713328175886177584542883312765815216722176775542162732258112583164423237816557334576458368574472524844314827756772224711355713763833354423267523735265817485768652154183476847227485686545178122886113312185473283453163377351218515826173327626157335368255765483674858382668165567262246331531887181171723481154562346845615655231385476736587615446712172554776576122454771642782533731582666424782847173646513655618455688832377537136367627654734466115885734546326654483757212345542711471512714235574565455247318588614322517532255217423734565422147541357127284472333313755863764687471288175223326344271673126575184721674213585785314848352871248326355763278367885451173241832758355582766414261466572782585447363772636466453511757614833164711255137634871811652528662178435141511133532237214122188253755336456266538328748227424415477172684111631352312838647747383287127438257781122814748321258248847656363158137327461883165155521855672854436224657623586782311815563325467256323182121686584684217216358235756723534668885324742222856836472621878116182334664483647837335417212222472611647253427777621227645753662538618275524868636428358712277147564573711287132471875836724324247313543351231875863536728857432858223328838833481421782784216458877318753752667428465342627133637458115146221657514685737611663475183287878542488838422242815824233448317862217662518474342781824865752528786368486232265125213286672531278713422135328531142467715855661327556731453313176381761436611333285777574482681481564367647767653341755714144684427815678223584887631322476552561352785367634178548641475637644675551784324432456181634364148166388465567826223722582738788663813526164765574536656585275723211132448522646288742282676857365848283642725532276182868565458854733714853215171671863531233137172457523711117173146166278158563678236566274678154367553228662126535353671256228323174366844245415111465271568481368712185161527787712186243258885432647345174721361171782776663725176767172124151755715178413684867555123822387161656732462687185726188182322785437211343513178532341826145835167844865883886721641432123565278561637883878661332172778243422145124563852534324427313384546416525672747567188212838328448671418844234672581566468152585562378364356734878616318812267485288173428688754474722722685412621588811476432771858186853413362331281847542435271176443651677717783884517326735518841375143521311665623555288425121124528567568313564826113145526325777335257658815164375376717288644273658281172357652276526343876382637346442363617832654875343673722326527412373753127573116142188371548141278154152478646126835724575548557238335278724486275467582155178562552771458768256311251863542164871227851717683231816611821634232821625463213522562842531674184853884536556775113356221277354448647657424167365652343166553814534111718875428875175182744615767234772671877876184663544875227542786832828727174221262635247667547241338176775816621473164581145768462176724472748774751266362725663536825321212146532345843725457472764165175257561414165456858786668165341535383338442144448385553526257211446346886752283782454316637428221551211883113457284675854763384115226775253157876815566614818828582378752236524822248868351828878623668542211668578476368162156834861722688466472128423388211751853611761473682783742642352414185355418257476663626877123828135632238741688136484743522523573145838424554456753217258377386667232278332343178166788477226541364252771824388886645571113726551836612661768755578744841783215387655488475431675551622616137233685334278472546163742622174717743366451488311177832288464511875222534568281255557674322632727345287222217824478727345177861662882721111482786774278656351387583332412446336561188531822622446466673487286551625248347528333671815354273534563277717531428774574121218128575864322234843782346425483115831287335458614881772583248448618677222733383458444563543154131168571624628635345668631636115773636465737467582238657722188664546851441877617826453332242274535881142185836378132165275163576143246323863281661836452824863346527328315582365357651828425356628421847256474678252844756453124833683528334683328511672386355434683151143173411837885782424566113124278483481473348527336673154852138648884113186824416245217211424175541842357518156361542462461444887188871412367611665818712726875452456286484722887175623515261426227834648722811475627164272288727377712781857666237512176816754382133178661514874444643448682222182158533653747283627557536745521723476628684518742354627158521358654185861187148734315717635367884314867663547431837218168562162518552328641173245152535553365575147361814828881463385847244488663486286374264371521872385412367524213537825411248236153283486848338678271422545125787624153714447176614743656865114476857718841628175536783246457813257117618442346558214588745542764635262116816558441851442682847177584462653464468235778145211514133265447354767672835731826676155163524448573357241681453126433835356487116318121755881713242244738275842373352317757544837258388813167316387587364615258174663551867764114853356736353336358375478726384741173455156886682681814583822366344277774278717677637273465318113231865384242625557876381586586465561755771828445838335384128436688632828617622725755182454166433155254724656835272776188115425422644183557857265352621637378777657656863335747341222375668327778625313315476371412686764465841812413413657386136386548186677377586436558388158754128127343176635845387236748684765633267242765236326221581426813146468374537647441752721528216221734737842472286368111763751178733262666475384681582365227282764652834642278247363286318187371356226671565485283267885465751882664343155582771687484131316312538838735455633488718227818546466458143357487733574412283727164776757771231871335465652111474557313772861568352715167837173247135178735872825785168762346552131535427126875422628513486241843666225184452614733453382123114472618375472647682887837738616244871877536352287457711271221442811885427251868764525241353113263838562183176531672366188886373375383117163635411517364268867713183168772222758528313388356713128826482673525563164381336516567436273321373736233263363883346788514815634523336621643812246535553513266335534855521822613353574735827247761266788841727723641281373214172715154145786548424234368341425583687768318628361481483474126545572357355727755582346542151472831732557216652778118434616444613675517375651544415157275738788726467863137272382753362754381873676134443722857714232163518316542225228582454314636531457474784873214732874114443763874322767825243626471777883875233662514386517845258814684672262247185584842713387878454733621811425864166813318114641188137677738173256747768755721536538817456152376137562126685354114552416718113465323484854151556828738416126423642152216323835384366825573234285452548841331468856344763243268712525428218222127418786262487344213645332844222653618326433737154488587777881732283122435725221625264123818572457461528666385156574145143651816641368836632234758864444311456787534524747166523416426827554813752761855627246143481242814854336271872424847522557563768335436645633845886627668236171113315841228261468112448457726733231485414171134182842444335615188734345651533583486647141617866746341423535885741161775522317658844182815561642457513651857473876443244666437543181433284883386682825158413333311323333732127487556732668667188181133313274521365624587454231738732738116565568731888783875855815777675113331261265712758852118654283668688316488548635386314268547575244172672313372571311484354273384412656477473637638468561158378686532846474344273138673677673223865638364417426785453737565876741414111527166346758238653312582618676737384135417181152873727875853512212374432312867263144518181827238136176316411776187217674773684556864685832178385266644137454821276646226122146534785864671138757438711122223832172575113286163425353464253243451275673152737676272225311522433251435612844422141827455264326313342877163274454146557235234854785644527436832113335248622127513744255115367265487827751652478458875256673215325113857681518442116672826283734142314764824435313862663153432816783376645755375643476782632882368286837478874548556285465624547564836362328771385825268311735541533365257112232483866713855261831733448255138367362523777115754747772463175868463524563178225668454387566831766287324528241474138565482674367853475514234763276718817246361635143214573161455615613226824574158165484787414544775184652616272187684741576642785885137215883658288663687428687757462758814378715642616558485367172823424727415878711253117332716868377638278674325141327727615487836668643386628731632413773488378552586722554246268476362311115857773135357738155154481587385857332642776621233787734584181545478341485256766126518135235388713484233627182673341118533757315424747175573456451467381333231362743221448782437241846665147672526815151538473856152334888734885386552575238125786525115655144341882721838837176685316548143244231412161854737167655118871884474425372474724631266764767737862373512446585837152638673535827252213123668262664814472431533424632534582477323618724856126127577711756815436464346628181488714554631486618443747278147674364686155765432163426882765314337584211753886261418718855245645215572256526834142587578711145535754175416186256825741477553173657735365172457126666415352361585378575771172584231877273315852358726112671836126661588485152377856336284854525888615254721824417111435521843287768471733585633413123661435425817743886815465473475627647871176536885583718414743862425311874634823547524235566533674812888133432445714877542754232678545457757662258647267344434368324765617164355837321725358482473461617525517217118186323838136471241852221641411478227277671485276342264285843682264182556663252775668787453622835814756221415651327214118841181352346125666817636216574267744871112473126366746427272255541114773826387832426155543625376157535474264634872274635666882664273332717872336511674217514641658172233636551271345423761344328874767736253276877238426411527113451834558534383123131672383781246715867522127128877123822812183363551427278177573244446513717113168166551228653864415635613574786361636725481386787331517733728526376535165114741244885374363384578833545156217222672776321545564567472187364173822788587512765282831715242626877654324231117526476256667545383768316321136845283815348158358536234826835376816863583168184127446738288737275772787112177571831674381848757812777688583452422578685678535122211148518851762886455181824223141222173164647816358525677768661673881754335785286258683238286865232824314588718231668178858353545636637256235114771475347368531751583825684855333477512115137111126127564651274582428525277675457726633115734258181528216132346125758738318484384152848512443754386348876725222323266187842224451645338872168382568347748632736712883871786723541254635577656187856352317641812676246364118425882327414278845114385823484143532758361384248715845413423423745687624323744485145256587445681158776328368627778164373284463435824613238267652528853843475478871121811527878282684157886512411467237276672262136413318658766511373772415533733158471843888345341638475118848851755551426842566388743421164566623364876666581231724723581843374311765113652742488547786552771216851452384238375848687344578266562673523136532232187532556464286864323583856665845615531764354847176415382664335455177762854127523233563686725337513175241352112481446763155355216415185721687716747275556653278586655384151716351176388134823867531761833821225178625577175838473165728177116314333772255717646631818726387834157313237665541863551512247686118548827685311884821141864381162132624558241715214267322421237311167283117647135458342451563851636415773357151612213154177478413754112334746477385381715613624586817711342888435832628248261336883461564433443685733647334154623666681233234483645126421823855222581571584844877246787548742334171737887347346752216552216488717757646142832277185451677827568854675146716185581136761628175866112376663332586556313835848216714612877372436281871774435145783763157475384613667442555168515773755583733311243677831416154612584124456473276442832142424774631147154453746277177352488837167638441883246432236862777766234617548247528832255722158443222273614534143845226618564225186372252362673143225862527686216514426323187357371446688555245553612883812714348383152674265471717816264115535165377322338853634172467778483688214635865422771877235678574754441514166677563537446515434865111267241478332375178736348416814576461124127245621384185535882331534345743537618735715435522714564887577582837512157362731672747344658527411267141867626785878468845763211333736884465212368813856184122224564364376584781386648148157366384777725272622326141852537852556515386571448362846687821413534874571817652575445622574231254552166167534458811268176416273544422835647774644657566874513536645534118776812437751445562775245687215158641848334178632561185352247343377863865441868226833127238663151454746141647631828331721684555611642126272514213712841518632353424535313131147437678616368484313422823872186838453384122537134876244243342812557857826176446844267343574441583147446124467123515131884838154358711572525433444657326715627221716725674784238651487778157746523315443838352784583471843786455473836886828667237162266216427156325624376341633545438748286153654323451142224147452332747543777866817173362473827612885356614267468364462565864644814136466553411134566314887832473585748514524224232668127522735675836843482773163231718561343877271542771845842835815538534538127762827677242432582742614733644121868736556451511482523583863472247122433278885812154173876331414322135411388551663137135725466855257718485421183156735177531225647278625337313615148253665687837723482875475323524515863243643534438684788131888328876882262271234764843754858752325115787663782878871322313358256657813661651815718782631132546378161116278268426165338812262588463261574462171683373874651826533546582115773722726215547285858711536637225264826637743568254642651433712184573225611564541522486416474243317588251823337181236773227513748517281278272172655118427278134141568584472655522182134528482486513238244118622437687718655564732215738246268127454335767424484675835555233612526648336137544823275636316374415171661361784243231684874678621387852857634225447564638766445461833138588572132555577235465163655135872731518722878782845523455657825765723465551511461628831416814581748256618435432211654715163237372256584444646864188446624833632547867162436728285211867332661525872688518877416184676278325135638568225774621181434248141454583548137612664741473887463577537448427748123456252422855273613453185771457668175337221717667874388564528855631238642677255124158613734485654677617446358421483431613728144578841751145574614616674623686144115676741115446513877121378651731384535616122373637448444168742447512243741667532173883461142355113126366111864767634831131255366365568368423558187482252347842364437431348685282611836656522314457266181838225476548722331132564381886156674388613652572684542537384666344341311346152381441364181266757887885825332432462285264277531821728177611523626546151248512611647252178731763427778764631581222114272755832841425312441556348446534728878771722828258812515451761347813481437336323211461873638351712256761611337328323187321856844751546267867786688684586678843425145428823683132817456774648657822254652181384254565352486357728585667763883875342534773175753723141836273277672545873847433772785774563556324274348344157482272665788144743857483126427837146871568141575777673875384174557353368778887176414761158444781382525218268833374762474487747576435123138588837362215524368626136545817467452854145686784453656471877484885787282737576528882511264121178358275135843212782823648717775722386711454375522423644334668321246516218643865714248267312213837558268718285476756334265856346787474865842275467282364538263523852454648427161786884447142483655581132174477533383417812146183548622526564484623163753524333654585444116245577774135487886852471622182613852646628365634136335114273124116371528226755865355755744222333527641367814261783878531517732751531237125222852255768738671455175217676284451572758618436148326444368685242765157885787258182433538555748833284178538144121734153778354816835331341751828618175123154425614813537368431487352464436734115455485228252857454611644483884116342763455617444574645654113121455317341867323646712834414473477514445583332365652512852355684155268777777864135376278374544826531177556411524223536434575146366375711417551542482214358733131724811652567687547324457336318882153234377627538862216885286252127831235163426383218755171666547447157324534838748772875128473873454273315488373822176388814753215383581731754626582722768252142566585374136468727166843428583456176312711226115472663765635666144462512324182318542428188235541573714643127855468671376265421274422583462353411437233726155141383212454651816616228261563256243254461885562388571554327238823335448485552547412237558178842832265175246452788122846541414367475858274775165844637847184572128222238327871134514867467885654372465384657768375663528865241565763168144636565748167664744867122388813336758838885358414587411218186411245645684386846883618626336843637387467866257557774753246742724214147414781343781243567823781277388615254375255341516364344338124684315784325511566714284386268544662212648858873658657247854577622742863558546773654268132248611772147361872538564887557677315181252658646711427526478814444853145312746533345114428418744825771427263433756134545476127215654413728668525834458863365673328336615272231384745632138314386838586124814134124657822527147482347126166236545171542481364614814313175488221687657557341621772817775425346863717231655786564622211643843381547161236615158282417243133163786583673144516535435341251263222877845821361881113637421433755613554145748585215545176686148215422583746456174347716263566583115832275522726221117485653167475537455174853374181718472677273626158336638127134224257373782133415837677548153164458854211873824424347168161374486172462561557516812425838133442146888716768326176738487387512475641627165814513362711686146252485237834282528715685725526817147226121285156814563251468658521143621481886386754645578454423577758888855385531615251166224578124861535252324272664442631774676753776858187213146241311155521282248532527814375888686483854161241714123428826476145785656251845132284113161618871225481213256756633144111247643755314181416758127483468254737111317626534718322237274261543821142481643274123845658745586745626455535844823217431371836372743585644315566853383131783527612557138538153317317627366328176318122843517415345664411743416147816766674135626284311372322873473726182514735452472578617866222253568678663314458266743611187764226255622628721647838365331727347623352283262236685328823114585363255174851241428126865866383525812216518623462344612385884723463281556478733154184231371768676665621428112864344733562518273748367128571473527866324242168141847645673322373745447553638238884325783782638661221143815784771813457717166631333433621868124112153814377612714654183651668641713261384235126257257538265236774161266571742433846465372662346653448164145857348875572444648362322827337824444488657488523421242343746684615715766273135343424254518735815555638417427522724346763326714338517518346768851142384675166161136487488265637488634163346143653417716471651211131214547748271286147476228236811521845436322431214517831723513232335447746876556827526567475788687318773131683452711557112252277614558732582814284226574716675243514546486257633744468821588671136452287773345527635634753436486243357216137656231381642675431215141526818742454251234483582673274813211744186462484581541777763824844838435137347413565213686157242332864444868321633254288484375218883417582531263455544571678866766773531773716723363482526213788446416445482261167423535246222736443677336241243651814585774154367646438711432756754861258631757537831522352587851127733362447761634682827644438511871826266851623252421775885825614665178441218485336172572138366643812525612622741228373153171721777541111842123211637611125153142886564334143433465836634716276163676721231234441711131512838582531217887111122782712833672342554242131717511346283356534764571815275865372326646163683668774574662255384583823621645128667726371482631656857386862248265856342357522384851441213824831233526657561385751462472461734544786267185632366123357262851415552745614276814672667152246354416681232315615741817421615381427273865164535718516357125525353141434686221657227821422841172476185262743515386275234178686832612724168826553842131538417667537376774443788253165225132568128557283316643235432511773135817858348548864873485656441311811683587247614783148672172123213878317678548136147812271482673676563142886668363661857884267213736232187624342524368765778488643335232814485254341826572427443742165763362554857146485343157832218472675836133783313434631481326855181354656513833875315121258541721725277537787773873472267128252843156876462241234243436244131724786445782172652263516887411458534348725523487325653812647454326411443812827656877378154888387647353351443774573166842347844465312233347333346344144848718846237322325645148664678268718681113715636867462145523111676553552512162438733137355656334156473533417246781664488652181463761184131422252737247721526333561648627758142224618546664817362815537311874153231152688288623773436754822884817814248167686144186478431338736374317362112663772475435238717446563456566414677426625218745556213248763563517316675865746162648661347662622122656248421176857725856378417328274418416225766358521248751542566667525833171623634658332176318176488658854133356487387213834717524278644143345672472312552513432746321482785153287388241372375155654783842243538127841137865467113448314224534436886151443846456352357471883813512867628174325157854788448436756651273146477658514858814447188465548454162534155551511512127824445171554464778412532388281888113522664712288211353257167763763234167145264745546558435777255144247853445686751523122661575656777671585755537358567785551276464382441633846768385275636712434464675445648123823447671428232674122353786485777687565364787835846233128737113443886223618552122745754616264577574213273185817158381337144168527144358347584166816636417574533184531131558656353623368186241451761548585251582751754763576333875131658732771633727282428248134416468843181761753347488164674124431332548386467413222728884363415247488314541457468227776223224644371771212156461371157448452582876165755127454558535148682711618462824285647761784114171731866512464771424817154151535224371132247223232333737281823244567347532854847276128415517422545471383454525338182523233572746172172824145665545466745714855351227326381824447585861516863217271878224316722366451212868246664353244675836751466584747633888432726252341683641155181533732471223537348467642714174137116224136356186134764625723283683422572726282752318737828818268277886174483345565228861561454137537215351685218431374137743253115586128757847887535185771763148387156813316783522772466221424351723573513358221468663484482434276441652143565527285181111828434667611515833154561241846518248673124262635881154147238551272141452735117557361674556223836212743183213625123176513782771482375342668636317226844233812122225441664537335247532522827181727432265538137623443385484854612425343813712674684184218382653512145136874227253653143668535583763435631248564811874751722846221563716577442813511173761524243266317856416284454228253725346633153728125445856448452643844576778737348851455766318541844387633313116612324881237272263267117188466736667124616422346563141821553286838437888317542264277266783228562222567168823111425813652548116375448225614165776344221135842335746327888453532336324424574317857681276673843732163265583738285124738417382542757262381568585766241176823646432815142768484871352366638151718681861144551644471674343815876423561372316467525671774265731167185678828326178316482467117674571757728742256187386548111778814851432162876553357613664318816362812667853325511176414415482678875153515846464277725335471618383764775341544652442845288251776133377712536882216187526488477157175762881251441746584744752237885268334428254715524115472311261473873484176166625775331167244758254558866543812471671756577624345357354177145248827813337761251486228277657243245812832624311418727613274588818468228357774484433714773242738443434138564828433771358548421161373456111412452388331742774757843877278286187837431512786742636832411136613482344862252412635475626335686816737385476326586714833235782253412232748132457187587812257831341261311821756535171537621124718422228217854313872632563544672533441432384322668548683626774824264314213232368823778211488571653251241551486474438321158874651632756578634863423424226275557282167785358723631142251778181878183432164515578673568524221275244475357778436862827546555573764378421258718265364788452875852346884871837744177433837635387233578173765521524823376156356275284182148587358327646427651447824371285724515246877371752783354758875466424135484287831126453518553681417578228214687761463738344621327245154634118576333263166214843727418763733452172185368688788148548432762226885782388335811575438378253344634221126528111257317186828213376364363634514526123521277188183321724773248367131182178755454453142278411143824888786748152486417576286317385654641133537644451328837337154681225824273124161782652274686226315416732283666443527345422211432842331226253887726656885675785858753872567527418161666215472867824817635586387712844634873166437475355415215642743875363236846482834542632783147335527547812342411554626513773373485256656747887643772538574812242364135378255525513422471531615448518147133552722161364436457568421432712626717621627751563131543643523655342763812476588557523553712677872158158284424431883714255421277174575212641153747638221753741545614781162144128888521553516631887176148854435322861185856688474282584555817211384363568237766352217254744655452787214684276563653575656287334528881131445258234457621311214552226338141236145251128751866888712412415237718335244128773542528361461151531531644233767182813745788585625448421488466765855846285252383787735445442135222473283365484574354467823772463627586538248687181437835724832881726176181151428533123552654421282716165261228743754676548151661526234647431472654632472357175243535686511658572821135832636826268448256887846635717481264522215251775541385667247154741788121633326532661216637588563658361181337657722513865384347374276876576142871236434558681588566332678388187612421476423562135437583173757575437572373546416848464748621578728273372312113314211375356162643567863213163881472526622125271216684871376374373112763541255246523621315138137438573446228744262581331411428823531771263243236446468275286785648773418721743474781325814674854783713652435441721557148574865125486742172285266833713362335846556837783872565364215517341842656156433632848432848168818653786282412771534274348842418465454141872138158264667228451167521181775844551543566484111627475242278744856876844271652634147358447177264432226342416641654256712265153416685338246871542136413537783244468663584872836715246255845325333381325613764141635147342531163167681331314625757853656511223521185178728347783655532342861881185664253176536412162753621725472118234448253411363147376157286464876126183813638841447241636861437136785156136621632246875573575164644326688357281372561284248355786785454156765863236725831822217856562164351847836277667431356122665532867128477782665278211512465877272644257134262775365475338724312463577357665528653361553242543485741345178582253456217573446382843833241266888815232151185432372545868643112868482666733162881222325856357155161216551754121733654355141553658648112754765827281273757514746377157283576237523632676134467712516136471664425455588888425883624423732814823258777474385545823835317165566778437873477113251554772687714558112556711561583527683738518532548755132258774216662814755425338264774156844132687857111658353778854121722824151525126757644582383615753822126175644138864831151487834885184767133483478572643458222212421416316316242165881836727118212857345846357134624673864442353227148213885688767812268313545736337724214443886473561512425665184776353364364118366173285462866422147141577874567273583688883334485718826372748663877227713615142678372121784427673214643813273422148227814116474751822228136448348852657127363447587418378873527511672144871231141487475344683223246457543566637473271475822833326622563835268563887635887181172614537571264621175858515825828751873637424886662366876575643634378358212656324416715258421343777423448265884425262353852186872681134651726355437363667834238417461533371615725658572165557417212832851872261732656861226834425624868864771531465232241841372428816563157716744436357112116258226734615176757861552153264546524767237743285577314211534854276651543134823531336557316653771256262541548588282847634386642656862675445182821711264371841265533362522287348836621747418533245173712126852524282346684646527233123875567686712186345766127537718784452731217464117244756416287767273132643558556471535863687432856758181123877272342547714326568252732538786625526661227256511536376141138452123455537158321441767443455187865711424881828863646581413628462158762361128675851275123381717124567484466385586575776273253132287834136336772311757563787757846486788538277414278613847434285534214834742258367334688537627266384756237121856756723735666441676253742544516842438313565871158764625835156331534564527223274237318468135767537844183561568172768475188636275841146364421824267776385735544117728425426425718377874266777755633265427736476412868383662156681174522114628138826823258852637332744642771673332131315862734364418571457483426685623871131254375718742351313832261455235227545732676518538487324836215637458632866227137676464567877527861833726547327176481824328731536586565376778674874166464847166415258457285751228623131435818348862566886568352871354863253174847754554876818117683688112166541323447846287264544513471354877626132823218585115466472117566844317266474848521153461347651124242557263356777751784587151162276348235427716352146185588615781524213415385571352662127875164186213544148384181266165454837346664878151188555542758882454785257626323487141565426126223387521457781188451526135436227124573587463243757816375738412871338657262556432838226716754612742374887118643542464742186533417342487717748711623655734256554385284845436164232517187223838864451825267872354212172488743745887858473841142553736576351214751655361554537441473212733551115632354321748274332313173135215665562111641365667567574584161347852732566581234681225571557678145234481726531556677882156725781821436167727774427877278537276864676384766522631238524567885358726556848362282815836344731155114756126623538636278578863665736377578321661341835473446461653842715446263364836461782237261264342582316313385618657577485422513668556246573641676544343772683135671465621682651471715758615877443271428585667465513655325764375611443457832667885352771267585636676673236311768484248352177642375624136364341256372716172755651333613138551343871127436278452572412624336152425287612125561735843271324186288717337231754746146424545522341787332142777262543271635854177763585465524417353246376563847384541774412523145325624477637467588367377536536138382645467872611637133585225828448578273672722572155312783142183551238484346481386884148154224575358215385842647436412416737853477174214764648557288131671265172548138173557213832882555343526667562271415823272131783487645173831724832228417222316645176654654635688867878311436267443278642762441814452372832327268447412288481151585671871122685548456273227783848127775884624275276514783642133515353547821814288746835818667125326561137788217753423868543112233858668447135426437382245526686583528231831148742361482628348614835547617422366181716868463344737382238862767244822678523556886383376241133517811764776138485735223446426464334826455768465855267568871234537828635878573177612428116136548147677863781718635444145724148141514482642427442685181337442825173487333271175742426141572753157464866755721114226587543487711213681462534534622167882337277285432235387327755658458348156643756136562183444661675316372613687852574771682267215433137157324728547622752544435645647423812341314163828261363746367618686732528183484867682175668511276735677644843128478573226667752112675246512713447115474751313213341532372432473753488742562478764433622732865852367722847753636778142824177671764523423888332876687471545118253315653648543417266872643754745743368331281281874348213455415171476816583373441571452414624873581877617136831555652567816484353457324684177718375232682337433475864313427287686216145135748774346747178555334652836236771365481241827564266647531721487284741455526374452672532324431846181232351754288167882721233773583263164148535217886735725614628643821835548158725218771127581252514613854736428618353155774585316463438777235165181183541666216511741487216723878178118766453773564661151788284268668353855813835852164653343428353874841141381586753735268411116362456456256322557842455162738265367528315516768353165342222134632184175635172814777122734144574753266381585453412218483484558531726226863575725643643558661221367688183141583733157178856648636465164365481463648246218748618126531664713816371812328284731643355838425676875162884871853184188388236764253365535871563643142672581336423346815264232555756684454244855886556761381115357127523544836176712288224835451367171131281818658468151241655388766546666656587212214827851258712455778452771586774266667641331133322353431156712277452886878158181222555337617726637734127584583524736858625267831478442317657875158321358475235848874722577142654255341785175568237268434738851445531425824442161754386746348144317115687118712546175438761741771577214524562633432634326382175781572148286838368418431735131221277372367551274684587676341863887483388242868344414238834637677433352746881534171261734153722331553414114766742634673778167851673124482774265834112441824768546745855613285378755188657135678131682222547266627827588363836546212324345128381277517541484744562464754353888864714257367357772827113215582458738822627151888156536744158364724716547148218625464725732734816353627182113852154243783835436638181588486357534545884777486638517354881535445516165251685438468385771714128366553168745178832521665723724427168446387783352514347778767775383234534311546464587343826684384326468516637374348244132767376617835573843341761652754812738466331554718641724555747888268725225231378353815457818758363312833113742636186331286643675864636134124254863313878558877244524786285362657655841513552843181475262768532463657675837722122765148285745582754532785563745528784773857573368787663221565724664142314758155531114473518677214225125387264434534848388843424712121618132434854818715485737788186127637571636234774824564153528382734578353635174443588862331758848456168333686642187664456448448852667361331182267834171335835782164861684681576336634734834514677731881836874624154437581647676168265868534663267377136762616824881284216343528446757241861567155631152475416112484714882557138513675428638331265352618532344864382441413415188321557161315662782542358551765464588316134551416237453128163318637355654271876311116425472613375777341635423248726555654882826514118672278568252863448535684342412378114131845718253613842443574678276675641836813841234465433551445161615314762155648753382354458165716314471553776468657881116861241847183717153481333782888275286852756734611626658517457472687183245528655426142618254552732537522244625327178841762327456376145135183635233127652878485784115517277551138147574678478867145613181843625376144278124576481522731581728157638743325661471447387846735687131521812275374334763637116636418267867786485485877722332852563558343238467676335123845647852277162154817746268347683363758844752656226852364314164162443817378512233578423444827424224225828861158877578731887611127511113666638636275235822682361272853725288132656836288324557345482443168862714264773475717337747883366833711236572521162781675245277761647731555713571636711885413846827716528181215267425511222273774334156833543656514762842668844446647881225252527662866613614647178765854441388765838288238661267622317322427882251247656384166547735364266165887162714543551211684876414117313166857368384172157125756734331617181883783881263541286576861117514553823718583756736271577257817352623684248584334823562483783488567783724733853325373177367666328165454886748271765678523851378855267526862885643767488752786352865687452211762725564541385831874451755176731523175286235485573635677346571537715125785144553522758641887152717111671771315524485831838782642558576362817221656855157616762624543235136525582854456826364233574464174436553627633372127232255563177577231567342366547857271737615561354166761684328725688738511724558823318168567558677367288361323875272285743567286638457342141445563752333551176348344775151784446477322644353853887873247233244573465346638634578144868747738383381822254124273277572135568514534575462858367383217326574581141165513467315711772578844461531237785112817154733852626153663786543753511175564835787558536713437478746425862131628132142783713351282833186888127631532661152876166258135724433255815172747142418184614776375312752336522183334283338717113683774677116862214571578526837387242686266754872116754723425812333588875321675585732818237427521546434656484811583371881617531574814338565166785731886866728444834336881417146326325867226262522524814152525857256411237844663784345426568735656187671562615881475634452442576742528363284788717136473373481642813526832822567447752646683467535576241448282612447673447672241788464514181327267116811448663647355473587681124871532373215246143281246866644137752886827418264283314662332385267437225533428888775847632866254863472881212762658811774562176173477574664552383853112434333637543312435857674878375288327377143448288445813362866275624543114825811725413411256575153263272268735776124324346184266283567484364822321753776553676312337137221623714886245457425122352254576324585652365576338532333418564885122346441517316826251462124271772666412438825326183718527115688856353266734456235163685456632384836823282647126621678384567486456147137317621443227116534138664445746644212223145722262571227328511334643764264326241167285686656671825267345754168143458827684438121583427563166632576578424754452472424256524347412758787843875281438524373367677854581351358764574415581736585487446543377822476426165127764811622445463755161612825583131237261874537521776727626835388328786775834455541382733423623324713452622164324423516625846345425631588465715344361538184477826268828866223346774414423727281866565432724125481541877831726563226736664646385356322771858215284543311475162383185763535423538184174128336232487862884233455432536118517227166834181214426638872253613282117666765856867547516432312322488365858245883354274723521458617284655676766668153281253217637547673327555338784174288476858671245246813282772288378384571224218428278268344558253273311328621357373868513825441725143765726418334581541488643485668144282842532881112721652156523284511461524721587366442344863152418246365424443878684424777173881772514656166455124462521834821517325751267863463468687371748585384561643148446671358674737344543116672172815344846821851774745715471278345838138371176732363453152165516218768664478757845886213168231726451487415387152342857235745534345145786182766181753675836486481185364541626325162336581285744524247382334563738168378115558121282876261233125173672277611377187353668658852236164888736764641235487161826148456542475737363876575188177362314655564647544538257426882427325746383464785345836637136745677753558586673276666381761345773655671536215278853252245866454486854124412628562777678863578124421587144715438674222125363872121148428886248664255156254218417472123873553236222734526647575333282481426416238177288758677716286443172472161868477831857445265568773827735872486881856781124541227176835421321125611851168183212626378536668431857651757334645714113162618647314276328752275433744646827548371487286142251463656737228864567574884664746483435267176641684453858875436175425812371645315626627526758453665326454575723854536274738472724146358477855212364178432246874477721727521282135484113874372611378352278855155562678667113343167882675462874512468433331334531126364717662222368877317831353462155115862281484842477246772725176587752566375661465858644835111767313451187322135231285557757512332644341742545257344758315763553436837813763856471723743888252284854311357653386878251521212327461812843467464732754565553454212353124337734316557615826262683874843875635756477848112724158817412616868523756622327411415486214141434176348111838348486642138113245651855725576516225776655525448165766328566237848274415827562565648336784573834717858551366221451444131257246387171635632151762816171165556385784753883765553741425233778477554586885841585766777486342248612651326527576621115845378463381233355563487761447188223251265277461687684447172751373685377882418545164178774838166833261836274718365473857326883653876131454882785133185537324351557337863258318777777316735752723222175182688533117717242433565583451836685548521416382432757877821614373814465273812625757625214335661637172658856287474825512835268738346428172611214516736686863854744286761817128445775121417458714381566663445156382713714246237626371127138284724151412436215847373474846762754831636461757322718154117475667121778533218816787683113527271583637551537588277624834856431586451272815755641512861145478587241835233627878816711771125645256851261412856724211858167632827328835172767221611612678118311138682886241868688466684515143722641636342814774721476817278456631764485386664123767225643588828616622341174286148867443757421476128358127284414167727164513526888571273863821126815372738651456314423476347426763312251236868566175128734362548841165775532155654333265357228121776362884788342462357544153664718543682647343575326242343526616626176826452666864388474415173724588871632465123557463574773732241145764661878812427772231214328188532168757725856435654444433347882288772223778582624154587482357534112831218757686182227154858713271173761642212776687561856614883866844884215858688513368835482347143182578661641366684257756688453338246621782527243665222876472722345127663872613641257125661613747115572761616137651462615763744325768623384654426443368555746868425147473458717417445357828312323537833378865426357851452353574813416715483811346688745867833373638161516566661841871147847263215228241787551324313124577162373581414251515537135114462367453312158165223373752353665557164365567275754682544771623848746748466872434784625218746732762156163452661226257468328112345222734741567546332278626523427131778353116832224333764583814726461186313653775315253228578827364161662634827525732623661533425433555428727345735617665784686841785414176567127387251315745248235435511364746565182687373583185615866558813661836615543758165332577241142165257738458334811411628118278886418383787737336133185666555544852887776326755428535118435556142817672424716428168358357724484574153362613325728712336218215644245268415716185635768556274627747835562123778152585222735267517411624736275176826537617881622267331771257633124447365662413238667613337762241684172624755777641278422885776745821773337713644422361266324885256332532117432771617671322428842334577384287143118577376285685787813443837433314338754573147387287548483332238553244258431151771381335535757674684261121186161788478133674552677285764873258785444454372744112777135471715485536542166857824712615723881415655478353817681266114286243883435163685855485218778365585874234381335822531147633328477163252582532771833617267551415812324238152246218536154476286683572815711684322844611654373618156224611441842632263835433784686127155215358138335328732267216424336513148118647361851747527346435186486867543436227287551442174653351123474686168786652453537181186158113548846882263878343628728482812126817567771748668641628235333285783318154238283737786415115134574712476718475657114322883582118181715456382554462513662627877844634868565382734552837755554118437533548148728871133866527588248187313876535128238276715664275151857715265466156664355477513164238111383786263741332471811224686364153388116381171335386114544236633668341848647677873544164154487352373336862646111452438512141572616111486627837641853421585343471272781263533153158166173326262346276283252127288612471313635738544224215324733481617714663253726235256454783248266646614185136456848241631622317863341626381632432156278222142745745474273746858261745567338221684313421715467171744157771382337758167747152726581155731831764356233664268327863678828173721752541517522244827372373347621315428236687828821648443577316313544537716658356487133476874224575618286523457613463778536858164634548382516133171337342813518568834521636111115247533483653311378337162677458863783182834862658388165831745637624874744346413838816286741174522866152182783283273568221227248446713827767287172135116185528221817868456733512522678457526548585347881361211123271786645368725111888573513621588675118685244344311858776245374848438158343674774836524816484575584188181164122522844184641618824334881157461338388688731816488882187284612312831766428165722662541456783834623756467862528746861813358522688132364237888864231887321277844526651234831487512316688764365676458238377436274124784336751827321243762562888467513515342341778763256874141653561731135736715788671177158721147121788462253313267345757436411378157115877327315135372121761757334282678416734116642724786543472852688316686187458612152723656823773473143457384761136767141747773232435447337321133721282743622134744457247641358487276366688587848185575421145175418245465332786782821252236432672552218412551886287771113353521443561561435225812471457688817643565533373482152781515832888621577231264412376433248433572223276861853212338547553463682511424222876884173647581413373283243621424211277248555666611821881751862158173514558683153112717551546453826276641375576857635451422753245834314832476842662827625716272645263225441734862751228468274428682824137216364225234171684283632874176464281262482756582572851128226551841164723155372538432413371743737482878755853223122862866141184741635577274183364267125726826171241768346653556178872168738446256384787251272888754867812745237523812484413568244317217458532374341575676113184235852463326522555388754563542853214341641852225614686728163335243644778775683264383864847837258434513551686123118183256126533545663527356135135542864332155125548717324676776447211381466667881862668747523727614411554221778764516481718287526866622211874552877687474184553228787667453815164683437516853771738285647148525674675432287162224631812765334752836266385258176421316453673238887315811286182613431642728638384225625732211341241224462132531153222462588573317886413313436537441384411468366265566513542385215842153158883271737177142337425165362576243251244828331231662247772581871386476438467176124248683828624643151684336642414584461432461712716576516346277337742482387444535743411714188523354211841342781345282333342818315473463416573577614887738635626252218415222248178478768448167384471126616437836844587232637564827571822655455125242834615257316235336283415566277861411535463286788465422568846641758513755142721434835288684165216737111374453255658335314327515377744862124341512415583185452851612258166417558455125385546738478255763428331743142541754214112634321338727513813136668288266141448537171846234586861556263873684546825125615125428234747132182413715114544126334247232114811122318566832418713226111761852161861427277835515784554242317171137776265124272761273314184813165441736318626484572868878446413154134734466223247185181614342344424767311687122527683753887777221663464244122864613145145721618465773787885183533517217356883811548535385481321336714611116484217157356483234364554175755452563447261528833326777856438644417642235273863865511482715636776527446835327215433463628843632183434216388225368672524517542616646626456837565113321672232162613465726471884411433562372584454767346154754364124331238387331464317171465553551158163657287745253651764326278344322277164755371643488777416817488614127283681432661648556826365383414221251213175726368832357747755343158645643372125817213645531654128581264288362868348624236818162136144238266823854485585275783555336328343515787837476662321243436167667138274164478243344157487665242111888883421332635717527472613461538225466281431611432846216124146128652142642612455358135747747228142345221451356787482165421247222426614646443132562735877682478621172523256535688532231855711477453324516728454327236383541575482728778536563672114781644768368521115627435318418558688763478382187551461511527278117652816585482227751771513836714338236855482514156215823722462513582777186327621417681872284141361517313644576224843817773384187117518763381618161161428715824682512588487526283287715486855131281416155577286263824568855138244354521267573866757775737146552143415277513858535178363133784688615231676143163261214167156483154543327123378216383451252511813844365234438848244581563784572842365578672573214321377323477632868484128833351643771272521873246652721614115171124132844548531812174222372758567831733873743533616785824261726571368557518862713573741267846215733765585178338354238352746453643875114628657344666367448652622671382433885776353545486132284338458252257416117868574346163586217131826354854427342446258268486858147474736148444374668676382887513416781462115114471445642747367215852667745846352163236877624235687825788851386464444142721381461362417164211823354665513313451144884417727576527151572512846152417547386754163847152223117778626131831573688871445667147485164674737543422125131684188817212345675241447556768588815563174275454167118534276246714121325413855352728668784477724226327568522126865413478586877466288622364463651266474131637274551488675728282868526626751335687417372534158346765534825148375175574646747748135348646321844553272552833474356477858652353415723537487632226462834518315542174444873322514117212337357428687612686185225326214346732671321141825625817445153257747675723487281727828451636118481235413622232271662573643814451533671112234312176211232583144667133134223321538745868688163435818818882284316787452422384317517285171778861256112812611181857366542635573418176836784714551383547466112343316561348786842537853316616846247582583532723173838738481182475232852372551464727611326475331511615533358413855623454263465125156666612348534763175218415526737465635535458443712327738447731634217361873536864683443487761734814617415634172157483612478137425556454687285367116444352762374846643712587775253586888765163254788166875421846883352245422434873485151318361156382273635577866722484221727731425634616254811388217536618257281433881565666463353713448135722851356864547744771227168132223375161764275838124136588483322521236814123376287366826533851273763568642866355673442615512678666581564437158637533764331165118468422554131888723685778782113848557674777473422381865425632683647176522168162267731448522747177583824127672455248353322283561428371777326263783378672467621438367423824632826852771683432265168871277342184785843518512727835774567413618657212337288362821118236836254735556448365787851167671373665648361865552147813671444248212773611763835716657633364478366541817545514284821371573637555778866787348364426252276528462821514283874422821242151627325526264343617255817883717546475516888421482363534381372743176617813545681777186216232172385626126361836871451241431234423872683836676375176767611638732236162352188484583375156676636756223155234763728625376852335576358252744727785564112664753326143165318451715153458323467718471443861775526137144643871726432276431574636118774257253785547433173182532832821116477467883432485664484586475552861616212114224772882456713827174712437338756812711542388571355433275125567327488551675533438543767165288121561275721371374314282854244153775884235861885486512677763744728374766151156655323546883874456381637138115777868384173176478715547327838464262711765243581447688481183516184761457148888611566576352323877332467847814475248757273311317111824665235673254645424351457837626754376842837888512514658512178655264855124524471542873734517571787248327761714834723252278116772366815642488452841753671641835233528184881846611753181722522184142821116261447573753484343123434376154746881615651561112114323457654747483234781544224382424335712272637621186712231338437536116882751522687348237731361683461251115164331232611553377356318475475657287862147854378121312356552727617552342737756655756687823182868375168352246578132451752737672578283188878644327421215455824147667834532515184445452664225331183556821766443776188362654847624178442225535783288183837483754738768657717376363368532841223315758775552186624626561464253253445473515725584825658463757161124333384835282541775772166541522654171143358271268614571782744175241255551565558278547326277576661773345152673552276515883746174758758362288522781157246286855842476418585216456427843557124564323631385776223732336658556564163835131617136861218732353126184384586627227825585278372573382381745224133782842265654782277826662871443788873186668757636485762165161148514871224115568728362265433586254313385665828766464351718125481827826458647285813337175686233885774181122542132132531185425775158448516661541353213272431118522262673425231265283572424423441223472381813676862221158267472484718637335363851748842458363223358283633258222815756618345653585565447731443544788466182524548253617281334575634661445264328315543152652728353776476613215782826328475333257216445222218447648346252675662542883162187883654387174327775511415328475364341465343364218431467115614212583636851253344876181556227535455628162184187583812626435868111648216176483813288152665827438581572278587778165167811483845712458544288674381767354464657785146562651528125762284511133528671443567686387844751286851823757787255684382775837146713481775232114561111247441842578538374584755222378864617488424344873437564152371736874781433537835244682756142135423762861721323723857634447317421364522314333374238113223641473225537625758143466146357327143352521453835548743446748647242434683637177348223535726741534464743172551474113425564244766862322538654463768677834825217585627736468816758477276378885741873333675636327836642475845576572574452122321213447572243351625433874773811872832656542746565628663246414563353475715858313872428731237684676185275777417763824564577453531286775158451384355427446378237824652334376865412521134727447341416618636384882728433774325228256476355672741683545584822144828364561715878648168327371584556248615656742725388372621736762576424658344282787776654334821245547821721788647576248578177762423812551648624232556472458735144845266237265248411717821714164465572355147653368341888845343455871226686528756487546132633568767785231773735261884657431747334164376431778883877414254714546724728453282781775583165156576854446442437516382556724481657154564278123764258121788218755356424782781673788611447455321545284363523257534561325627258811488523542857467735823285816864873533573635173852123132238585154163822352768622884214284758121437426223456338225215621665666616225833768268187217346411546874515757215628587126546254317516833515182654621227778164555473675583713138257276121134285684622372662834441265746516882562884128845117248833473734533475245544215315786771137427431445665886116544834562375674434247421871671442834357275354664777286384153167856143757481446872461116517775276677564171131478325183648286672118763871651757386555426485761531224577343375774431677477521571313656552576234376842675247863813845586325837423714848233626177172217838237648826472314373652226346646366732484218181435716728414655472232867878778587655433131566721683756345331246622232534558831886847643863546315287342463325122472256218464712471322137461148874161472385472621613523451232725383887717345514645516818582631856326716517257578618456825258842644121331253667517241848234625555523656437482223644717676725861588534264623832363658137718113722664757236536324688668126823885738815635145677213771672348515778761111314778361544368168181367321872863127644365388265234267686752827831752848175867282277124358451828655541124222137253121156868131116227731347242136885112715618675187551282125278548158836457812517133642751135681315285512312238187363324387464481676246147757427251278578123133211722585167421282811835514826236815634882638428621471832333815363845144877721477525368488756183344844138881635454682447373558681152255221844451735166464736385187271462453858542215753885514711588533447713664545287474814182222272183733866126315111512677718684481653641848668841667535373852152686166732664245328662866268435214877662435651842777665357357775874711621853846622575621245674377725447543434215838467558737852683847768718286386313755687478326621267745634458158112271888627341166417871883865865681758471365378621515364562725471163867185383264783426573435531343541116536828168822635564737752175783426665343841664381671222486663864318833724787277825646876311576614567846185771642213551877815376618261768154137828241835686872322335373878448241651714471748867712485454165878531677775766324164721426428827736514478635357635724562724712355173227251446828467572763721143322681415521717422861124415111423278288417157561767475775453284178865623477345178733122637844252658226465858254117418267533827771763175642354734234157527776352147423577461723733815756311146256657573131162155455817318363645427345545357231632832628555531638463684885617742831753774136716628588874525385287232518173451128147633674871485878146114141627582122881175132621584385455184851732137743342574611685832442534576478351582718766746431344264532838551571452115656361312488727521273312844745322855656783444766571871774358456328774231444826545343337721362783672615645717533154184535232417746823287768332387473786128857712153473826425312648885684386666743286278721842213712342737481745164748381182713158381138448521787838757564641556542225266784868363857615735787222441536262338363524152535771512443485778822545566173712371421654561748617537285558431635766588855116667437324538471553186343315575248653571584248261266761257725336363227844168885117655447728123711688254567136513235341238246284864546683463733746442161875364766822557585864358551456522158433732176846131532286233842146651844628463663435542851825186758823882717245275618582553753447816886143857132612537453735131536823586548853221143877837581241837857672574583617153515334155715387656574141416778231433515775115767133216344187877622132575773136446666157557425784167785171471734416218132733428875334537346325662158152212223617211321154376828234186876158125742434518147388878157743527181331571131882481385211755164873515634634781531635333317515551727151231561331361553751366523562376255228818635656682685457471575882528211131215872752366714762427248256256346442673771261324226831523748434754128467481288221421532723463447521454861141832568383231567878736443545616318535154147212851481214267418646555267363781142658648733364344558643578524525752684366611681116171845817126362542537365844125674475842454171812135532232334753817162313628716871143825215252252855156437315864674863253668771663348152458652176278484537426551555427364215174618328768672834688812645134642773712358287357423124344556587775723158867313722238224646413287478674342171132844763347648868764742363242222115488588354356884365268574353563178637663155444548255168215452431418235212353714688866884215158685565755672838367822311382883432176267733686588852248877664826772417357324841816272668546834378431136555821671358233186356454484564828477245242154338562826323448837545366541353455378266768723763524621375117318546431726685742181523356524825846281367814277354476477636288373118632581117511825354784423127128558725473314166688638246157826573221768768246512455831343714528547574257242481312564617575616352125217872832538685122577127544342768337476331218777615474238334226141757588315754672831351343351632377216634315444537568254586656844361813131635785523235381833376411511574326483154874411563711517558274515155821115523245223833648363684265457235646567275437718333663655382111235582316848485428652637356236316765665356862564116371162452673438886288475618728526581415564723461648684735623362871631345333666742467721152175751521354757282765568322186352446518541135415657724423533857263888414523734356747881323265887847857316346442123563381377773364668566712516627672827646274567842587344485234513761611335773346413737874457525418538263726147747137533848382817427445633144777257176361766637461812245545571115814517384654271867282323762843231251556733216311626847882256165657423283174764842643213825677854685672888376736662147148574436515764838563826571455256771834554237231254216764571653112181446528848622232776814646846755511733733382422666366312863648356845277527426554257587354535221425113851381625732557174223332478648632437411171815662673682711664684734642428415133767236316171215266681742478857845328851354863588238818744611251683357871144381873471452782567543577433246374342376383167385656611524718234537755554457786128785714875715267824231636222531465655221387774343465415687447275656837167813147372572227632441822625587178883486622514366472241828237813467417135385478787618667372747171822435831248724574537325181574366576641434113467681473658376711538368113273536452281133167458577274772161128735145625632434382766344557358288688842411324621516242354175663548583311432554522815637215463614521456266373431521681476674612234776558367212331166224882158243387823828636568643354428372363582854345875647362584545531357567468464658283128345666828622578823838882721778768115614645761462625272463257185186334668325358282328553537344814534161563267177785511764464722872448566473357614254817144183351452875621516174411567368478611426322843164378788422218153671483781875757853737448631213541671555614786652132546515536781534381856343677757113351874568388727421711268651422454418536255185746726814566675426567481613822462121461834352761524433214482347228366135157244362615685182323614637181213884471327786366555735865632452451856688447874281741136261375537371855781354461425425738767876475171626448876187218378322671128633465726662331757355344272372742245336151753845671865373267122733333688675645273375571567331221228448464548167162678713286874815826554174887354528268456244382584216314768585624336342522142716237725882827485725118327283368652211611458787435543132841747721732782887874374515525718584142125211166555551872113551316312571712577231442211326373118341267245883772436614346141812842528448535574423741275845813786655361281447476427545636386343175613382843486138454824321645113341561435661131172544535616867812135738312175771114464781474875244426324272461436443883637282625654455541673476132171851761617841353516645143353227783566383176773211844418442651518562782266555463466567223854675538427381826263576314682177253675374128272487722212271445857282421482478525166774112725177767116155364882488734242378587464841543848887243636217843862625765536727327788767248848746624252415244172462357233624617476762618384453515447831788336262724582282537454688157734767241328745654764276645351731267672771421873461557238454214331655833545644656612231143254586363523546177143474384467674118483354265544857365382687566543243445532256558175622751314835841881524438154657881135763322726422231564245228167147334223462721614657643361367642472513716175155172755782425881717854842616272676433623552126287673747815623552312663625787516163426714343318515777626886726281132471574722433517448245484263843771738886731257612374538816861345188547237223888774236234481532231775265686653541134424864676765541636386157372185433588857384425577824271168874274413464281413832428816621214621661117283314363475866384425843521687424421814222414644753327376156464523661152263544628122428722167225143147335255584583414455268671382263785827576613841346863417584422682858714244535361823364188212377274122245355777771764741752185513575665887475231826167754531177213368838764157125438314326432742175147622185586618536168368244827223152861176757471744447358321743228112221762626411445232134224245746525362131647777312275267657387651776656731528126312528354654576261516871618322112761753737856548368164235134812177733123764287134637227481771555438486344663242622148478533375584484138482426357538573185431876485418425633855427335645885851656816415847841577372556742113635336164234535653577418654551731461634727276642666514561635475472522584372633888626741718416552774631738512767481675653653125361341471146834744527653628637325856562676346781748574543223114386623871522361111548181128388435187183723815116161636718717446126533871272678155135476356787551828714872125122381747261428365833521114276478318353746777422575836514182741667361545881737685255526835716843478211381361141333844244422176371881631424534233427818346542748815677381641764773563264874138825553178623456734757772261563232657722654618358435213386151333215544718841575575216213717716734487446331185343821332523863653158584237816236528543482358324681556871441151463484431556258327841614347113251565618652146865468235556467458265736618523276783312867272836544224452171114644542715334183554546158256834455728666858365371741225617486533172644341843442126245725235875843124515265521733243672764167553531678215466515486452518612537442316284346167376827745615835448566846377644543712375756128554286872375256661522651383814531528364113624348481233353528868536534531483883788523744765428873612754714768158172833416518564444671267245216275177175643381641277784617788574272156282527643636525643582241365537326177748763481561881772414166758133523561711433523381411874326221278535373125444661372468581273387227445654885427456353218236234825651882877478381523841734244545276373171886775547542684226277456251464253412153824683872565312573528114124827376655611456143812261736348442245717147681165322515578371224117585466846848247484828447536887453556341542236873434378738487781255747518422675878477157567446158314134563741114153427374678182878183426466177578722226674288187184816513811755616538257673352156524734235317444216631157474286814387411882435726375351788775246575423578683861265782837525131654813257186844667246111757157784852836713467534455656417261621712885345582154456138465253385162267383552653765248142364663831726655817748783326882785262422413768326762747146432312725637877352753511471254564684873423312614786726552544181261354363654432871232874247526533235358625765823543432722334853873577141623224245485346568552528744658422318721138558275737181674125157787445145587475658535383461863422722123677286758472867714577725617725151568223121867625271852238876258313834713511347526578412818682372562653811614536252182858537655878254222278338524781676515367836428581718418336366342682235175436485543141163466111761158334774488748724777724432518371814848358838821358242381417115253356243143684736422346384281466687123483763826654445275281314574483687142148672736414581322775881251635735761658356625424288777863633875538284226755156476331187256145664241662114511355857137411222344468415315466188554124534225321457364515747224171158562174375327655262344265638344352251557686438516712234764764851173787234843514275175157412816672156541514851176254458816166414576831687654757473786474271532158658425286243676136444738578354825824118683167442673756615641747486784733218841717281432683363263558883873844182516528474627615867534422472751517231778816777831451783647778846431464865613213327387327763663475428826156474375274113471754262414363675374727145216522564171877172145643622482118352277552351755868484563622573527446262154735383317625656724273676811775355585773325771263347665163121323867426444833145146714866248861254165321768671274821827642385127572123656624748211182732632248657735212544125515512452375415167821217352368826244858287415517361171416621318173178164564685582211857678365344348725378627837255756384837523544436621582175766128627716625678188651376572648146178455787453432887136642875485753315885437641836715171235345521857246756227327557252845545117713684168457271815437623777447885334437164858558288632125436826518628425462184161843711153745163134832275184452423353467748145325768177573684586738775365366567155828455324744134872225643461372444148577633682168371852765453384788423872758135638475667763213248652646827772854883125818278262146711518357223577576144162678758411227128731788314127475328782712821323366153874152751882547727675717112416662163328127872621255785363511866641132141584463557137334272235518673583213656677542845161251411365381372224572413316471465216241735854745284185322161176684377826578853538638762144658177473264533484454377862665211115553746386216347646241314774585212282771567818733254274538147235144288826663556538843163136551251346337855876341212214426268751885524171375115685726868553547586225233822428158611184555765335114534526637341261871132577212477812361811444527323372441337145886683374484526444343554243857423242156286515716341355671763224585661445716454177674352815324363746552248544818577561461862487448111874715213726574537582431365742837177355546385424873123725168258836763334634865331448621326818813356358627625847157621718211756743474816747848422373824512546822735333567168116782251221332634827216564176544834211237132212418781544622143432553342214185232226232561464327548561646846165377157724531168483146672466673361636425544316326336865277746778553262435856358577342458811278232524434175427865466663368454873785244313811664821644567263667646237324315342718534857474612473762314635836626635732538111225212438763153684167656761477161576426464376526688152787516318134773271277746276777864725123633211475414855363117514653232185312121661732835786546612682881587681333163265745478746625722861416546713135671275731212451324855615386366884673226243177211615843448766532181112383667288226417722415764134142847214131522838677538712375475548136586225127154776465563617337731541768342244583885252438722661733425421312431637843742631487231548286786131753553484666772612456833627422454325365617876226127722643552787785422682586275556435216362417757411335281874131738851573781672182125341387717477431287144262372258474273663177737744457732131726721788252261643413845424684345883773668852583533887486555886556532768422671841818714161365177787874573627473478821423458624513867183424367213781843844526833886485737731621586652542684383352687272652383423287848227324328278863788135147863437356244566272177464147242145185836222338154758365666281152362721512642316373271543233835237811631461652486424435457618882678652467234364512122354785374458881286626214262141333613837348845134483261383464216447637133183516626533558866143684133846716763414764236684185334444687435623668116225851866468518178588151124114383778565388758757316272871477516851424623585546374882781517856243382438477843636126853871465157173776635228442221513461424185854838512271635823631177781715452524462371351527852126756544146267325511243214686857544754368855384815628816172636557844467833532678242748453286842413716315537486362253154173747675136657371786434315277682645211664416784868227318834384524741517854284351262113852171448574635286516112128836882281821868318728275443654354828735723616516244658163345747718472838386826347771677618353138864734753122423311348726612622674727261578422727458436667745624786573346758836472372158418131226434365111511325221125833843524857181382128752363362532575717861748565747423226551373587674272225777423252173685688618144553442585434411224281635463177411451518733263882112142457653214218256218135122338411342277184474486177681818143651342521835174571855625422483424128377842248357354723134871773884588458573218184143146212256253318724763758458524885313187728116187232426127876166657567445326182515713125871676328776577121485522753262438454753741265844873212476761563225562512537188276263312874612528143384523182816323544418768637612537848847714436486587572221571441315266546156412232546367183744862147413775425318454766333626663847675534133363875138463684467423887417572774763245177847482383378236855613286162378261575775764643418576552368113676642388736817217766482325386662133368822218181774288422121356556774466653553347456365134238575338373518864365717115624287756846841887752857535145576156737238523368155322641345763278531423131157831263846137325348812811273875778862763242164384252158146142626373268153336453578374257568631435318324326658176822117554484214735334665187816367445761317487832164417676534866461856154761254337467245568552385177543685617711544127344216215621561438166726467746367467175326861161146677132576214151454145447445525754363571812876588184517458661355678616764852622527547358236822556434211613534353617511283752516848336154316418776214321385426217747543542383867587678625357645588811862161156773247728112572181652448655637266152748456514478555788652812724521364876514658614781433323514123656715565511562521668862322481463124567287712163636683782637761242215174765167417767723855448434652758216421322785564741171683755836527838827787812482458538511151427212618558851685832541182267718676557478134111563424534351711668482845418826843842415436476251161821262238584548655385843355437186718882716852437526776228428227585455316152882634112781632631271783823587575327724664347566652331638854463811353778828473117247866762268135262228677625683577862614582264757565444862541557852128544652734577882386426263864643387733676111881721138745118573518348516877146785717373553576534255273762332812257183848863372714823266388251343712213668587744333258454476276537447722767222322533275288824536162548683475326146155574533852658521476481122485217455577444671332146385464364584386745385423453326553285323768868551758382343534881878417482348814848445668538185283634241474332423866511261741328688774537632561736274851844135812558878752864527883478178253421363851712555116516742321842273811266843118368121462664357572868545246523151158162387634157142886576887313865878178518684485381525312717715488164885851868484313744122482181614158525522236657817166222372147242263374413737388782564462376267374223338573272666771337153438234643642616575447783726317642364415368516764368745287534358473523151761453756417136546872526746157785536588238518823576435271852612855264154624323541354578545775837255267611637848145281152288782263685156188583587727878118655563718422181628175434872788435877765476583554237761238215128374767315625877411854676555736464716544225471271866131456846353431755243471468233515542813344347421885841843566723447318348774333873573247585763277675516244364568583716636771288666283567612165521862331528685257544512862244363458348311846433344684787672227428341842843375528655112768576188681675548777186668368126142411161217463426836283276685158211874555418312684471767134531227812357567568635174721331751473868112838672352736717517573636574582744323424654341781248277835172236655566618133272363777331535658174517878883266263247842685336235353242116834312373143312432724418781582351777625581871231327438167134338824753112111771527422325735328287363563741478531368262351848467262124458263176781714845681543158367774312676355145486653676181123857875753458823338514862377858812788442446318333258626551825723688613747248178162883255346587754382532146522237377668881516158277312276518627423858755813577582873757427876388242236384522437682567468264563576766212651564881256854546111358612132354371376387653727527221172372264512311815762751563484568464571817717417142834157817122854377138728365746136283158452226615525466118373653378345282463741882485765781726122742367275128227134611276324636712115723135853455725511713373138711453323517721488621667613863548582584745336333362817764622843817727262312642134735667146811257138726657437382661314775565357137668435744364447237672288332134782712155578581314778157571781746836612321878876132886755582246845673575561265877137471136852213761187315338583166524673335256431218811218668162631655157674824832583574556254324188565188187552317336682163162466183388214638856471626421786811521516483865537364885344823663482453668156368262537752741276224138863864262687721663454467756358755218526783344161323338772516457668386846761364165365854611126844461254747531817281453733832675633415748518656143787247181238767118654311843527713323133725783368815333176315675174483375832738728417623113577755755281343435484835453724148881266655486441848117551538514453566712142772443458864524571586723514417273437343386455513668321531667253553373473637375618231358123717253157456635261782325147146386763275122454162121323423224823311277686782884163764115184555873561436675475558735713172434628875175623836188837425633666145518117546538847712641383326887444152776215116586437423444713227621865286767234463825236614635264352877334713251548647178447665161865468441432244127875431354431287712646485621178446846643183213683734148667643573847622526737664644127675425644848466238868745816377242354524875472211717658346874468664123266625713574151845611146618662578141587826137738858131416434588161736588352642646311856657764471553377871255375666467284842885111818786568166334167754817613214114554366873516661132473358671747318336881347672384518744768553843563232833417634784634277614817852842714742615671751238118165537333513847215343825615573281713642588554142536537715333617388321541183516651118556175426843861885512852283781456255466657815661881173262557683375477751527684774878763824751748153548567146522565223222556617264524261844383426117825177447265283627612711758425877582383826116464212373134666264671771237447152537463645123485568247227663244157712233614654266787376121144446836116477543626412731512512623415775471331363861758878646527827112351351476441133172632881743343577523327668732116861135215481447266385662645532377887167677728346533168732181277637542178531452771177632736522485716124866163726824757517351116557258622375366565141561183683427241662466154321882527373658682272245152764216853624253427184218184518373768534416822724338411311436162345268625864256245286884636434535222771446767453678347717212532753117143426222256281637457372553533434632451376155178781335142484414746878123625284744533144371422485781357636355485748723326425262621742585376436667526447851464512256472161628146417728512325766882311513342225523484151282738435336844365453125854366253336866258741846173354756858665667861676237273587533614871613271573312682471648552428826657663671127876184165687811588334786132711557264347516364881723758238318354746347215538127166122542463365456752642262234817518463626621236528678566645616433176424773855326744717143664126332643186383871562653533581868368531748245584321583412737434432374335355565816622568712551184277321526161521872747627571658677575334546568567448871445461345763186457224657587186736374165522528835614778614213773276584723171563611188628235272488225316661637714773422832518625347545212842683767728117238762162526114888234122818416386753568476257256741253313851346882855713285812683417315361382651843188117616542747375718515671444341331887228363717487318776582623635422281787767524424168727576528156773732518167478882561387641323151341261274883582448435816587784585523317716133263766353113588815263514371141863228725775732683725232351132127348382748128758747351243853154754471334886572125837543844241382741431888544456618264568658678621661438454716276281623277233785738732767824247535656872561746485877222578151823447713856746446641438386288376232612667357653374186835322211828656834426282286316858282177137613463565282177714471155868733561523761888764542885512254737755713286253738883158325481872436527517383673533584425662736838551126426741713738242325554224148757286742438412476325771853333867687138272688847361724511518786336741755625368163741767828868313856837565681566447585183841747633883411171683444264361651415737234245241821824337734716814187876112682648432562324482253262521136766111644487588635722734163663448615765872341361522312615642172558213462562358312242178553657511587881626853544434243187131457213853685386617641262441321855643885365481761535348453245337412712387817571611882716232322162828255515161287886677457381564465346416121786555338745662375622825563841836653845738152881433624847732834366521711376563222254317281351484125282876614633717247654451215276463662337456647433855411177615142368167514368772647355861786382585158878413877753358543532337144356254255221813844568427327222254731343434482453718422853362583176667627736172338332286131846354682221884382581234813625426228277165265582312381482321568371265572287414542441548447485188116332452888423253214627534134612144356452354268286638177552828733257861255542267481165731683563555147124545422867665255381354318711378443852717672884183284325373816822823284637777284273613716184485656663635574111425586446123568234552831277385314828263564781761235175684338431873518733827152744118575177121675636376547121385413362835317172612145658262817418315515715228441224751464551462883221681827828642786831853115365273258826418441231874571776413532824525353857876634183641177417366337558815413166533466572173461218831882137112732678413311557365228378458365215374281527348763175128535122433861855166717784258337381768613865662868325181576511315183838783428512143658717435525122125684815763637113671188542734182258628852335186161771612881111233154111838518762841686573373862873351821861455626355168317212881872144187841413615213218675772548451531322428381871287236421535576331452251188286863655884146364116718825135621117363567843646756233185565787717212565836381643353652875254512132244447144717211445311433554653547858451746227268458517853185441725757488222644586424816866527268411251662583857368766433672467117621684524778323285487762678448827884155414135322762357573437878755256787286488542663222421828781466743538867532658676885876532638122344342254188564858426731661662415886672147714785743286754781147334817772523862243562257517317747717583742228131183214645243876754383264155528324512742336581833332356632371772348221314633676128812561465444344353383423382868568486233775718381586817234182824851644627215685752422114414516688723872768348521633738871416645684648425325834617857853561332561835544142432718354226263263878143284367212388322418123118317362366684564411188231217518215543438215532668435427415353734487337824466311854486886477767264614416521322116452742151533121547855327311427653514675438747558155676116725551517645285736553564683111447878631462677362683821385356887775415552481284853344841575771535766388238717213584678413541661354848533421741856382832383151152223166167152724443516432747521732717412274166167487142883744473553181375747455285166865216352276284827561465682265538726417336122121567574741634886465675518867248863622765588174482866584187868465784841281265664567777356621563148223238853188543481726285212286117177663847568767556872483527888317172133888546363161276215185685181764138171627671667155535181316344456131188567282767331517537338344647724666183368662723573863716147738783568713768612835828761562324881227717171652724173856661763858841331615777626234286734811883754576354512464754368542113718641267511651764858846817267125581666284356123514268768243155221374514686357378786631355621748537154431723651238562514635421374751763845216736753668143682426762858811172462123441455481633878231722781644455711812157176175618757517362674851622873381168235172542344213265233482627484324883643546625842132331258518816483434657426866768163755415115722655137548215451467318821136668832241885512237261562421533218763547613861173556624433575863525776317564678184463725733186147633321776322281337585265244547116318183775861614138313736252157455462656813871188621181475251186334178761734743764571528114214514122588367627155211867767855125573743365284161347334277861577786166488678746767581678273381168473178123187334181737723642438136442823373225382352884265327327553751288177617813288316817488333215382365135582577515215545537555672467178317563324711162685246472338244665277521557664414885334434124271315254728643183252743785266675413178166187466477633517214538778154861341143482224573153525481186158243757253175483615636333118621285246653821436414146431436367487562343535248575856668318635531887727142335772173718418368823678157862261458236514544272131487113766573684526867478583615322228485751228341114413353383832144851233324345115456657877131241316386527643848254736681184174262511232165856862112641746222348458578742134487688438561352173137685531741375122555278274488483367572233256535652846754761711113552465657126578473128213384154325223658261835763245763152454552274121146786373364541755567182868477282567266284545287454324412126885747532841852271825424435333873137551611716534623325337821376575816677428177246445877736535773344177521287118421825457262755756735674613273872843455343237668457626154347343517444148337614326274486782333643484585174822143337763222452382211356532823284126764776678727115732154254233632177565831572447827684828847772181423613621555424354623214182757518466648752881185127414464558461823684238335115624124252574227888325348347848166447551478417356858478373764642453718827454377563277125187533444682343188284547756334741381534661784264641712357876132766786853848425581536653122774552841685685517253876618821667784684654871241833371547486241621185221325188788186721646451223288671478178655532214847341458447463221175852261457758254316226624836612313131763514431527218567127358448457232452812824614357666582414458867124861733388385752122828335828686754436423457114813715787376355616151453785562653638718317881166747584731156383352313738378882646585647653443374264524152147372517163534548746864185487668456326181844117151426723162585411738387868366778771333545455865124614416144787346468371535638212363773253547143445374184666254486633647563473726122431857273373153376214158387711828115488527421624485561517374135836253214643622251627434867332832226436587838753881314686221321282741217161645882632151473271781142753535688758827784712738575648522545162656325212253442281334384547625887228786822735122755242366148334156186355538246123516741224744345824358561441253121462578164165663754412426512528366482154461614848186318636778472687813126276242757547211755461541436418174488671112821613748864564314223668286816255285146183441547631853478236558137342821832676548214158133354267688751558737448156262142836454721463438177888585278188353885144672882518157824212616343317418847746854451327337568381271136631462856368881781346833852635484242884631386345168438635584614284374324448143346881831476756832461563513577513357142155641181314451372645263118864671321126227228327188615623678627425484265684636433861547716777326435823572644457652325256711388847431655521125557788412653478844757788457161385261762114143884368728734237236458536416716756281743472812335146166366653118675361368458657268535353535836552284332744411386256443715485651447836221357447658414644841173736271867683287661576627763776756275742672682125753224882745587316486631486568754263352113332268715237274812773858252163153378726336225215451626332214211584276878312728132163663481521331755423151838437314666676614447121532527317227547162431161212871814765652143817665525538316414564527753857827455614866767415537176752727225131212684141482552121753844463833124251625462683415277477521574883874816258387234453251828144231137585761458778322617465168553552876534668324853123838433445367265825858542146145117647858285812251625378454755355731383217685572544277773758352811511726353871142128554841563433543212734222783161636186754684628638578152747745765245881156437812466332276857114535124231431331144676885357158222421811644644424853328454236727856126687738777364656267357135537381665127685538851277673286615582635846666835472516444458636356478168716211754822225332312136445458181762443812131364264843674885885863774235315447735835854428818263241551752313252324566617675652876618672472764865133681265732185453877235172465647777811171258452651461667521152738328183175121856563516865772834723323381818152628648813576365424726756544446367287785713446784245571234245847327764355366842362571618781874776354655373643745184155781785864516673367512875585867227383581826371225845284448613174471738777213331434824424155354717571238826251388467766362466527363486187678476123715482648181484683812445243755612252173643382657137868474538158842255481428382164657564526238783515225834523488562477711128868836518667121126668817655454451321842424383165342383738372476525278831426683287434416112241762376375137664673583543341462428327812572857136843316387314552253854763834733134351676477528735786864266311321313447286814886176768756554242873226812653628433616678114187273415782837881718775421481486824335412661221362256464563628371461671754746573355812257288184747866548684357354721833748457418355826573864711742844875876736362531344647285278841144583376568538264385274488454154574577242755448567185232244211357476866247653311775185275366388736174715541867546243631156643632131477612657212782165766282132342148718855463222434677357266462563254725853374584658465753588623685666268217327471436677537265444817385313644558283556471787132488127515776812821873521555455274673231788488672465484151656344322342421845814627857461133627125821158728426557153558558887351847524166114626437371815754286842681766263515815641631873112783537325538858241372325423681566481322872736412246378776725548884833621861672582238774436652541633162755783518428466525342172242157831478411848855213734642726883482481141214688826361682641388318555265246325814686433383383833444161542343448565728215412384645722744167872838217288338566586278133485353223741528258763433216725662357366251372764751183874353838722228731838715257356353457617686417452221182326711533467348764422837745735633411124357757782741114575167336647655758244174264844388465885631162617528627612715882725315864541722644363111286473334735388444432353371257246572815155274778237121325847632176347413137466176555546747571775415826885413667128544837785731142511868116143455471748325567568471443144655687335178126564136662675156222457282666367681668833261345124251176711234863636638553656858145723113123471414136688164626622764161253486214526856458582321413771852762283512866628577461426665421567456374261533486811847675874817453652267827734524275151327628421485363761544663282614635253265821544571643628885632164386563662433841612863538113875415668115255448526771743421617818472343567773341885838877115513427622875724655454127625476644655427383834311753831688717277514743562734852614516645523117857333356415517438785128377688442345266517134567423632536283116212487715575632161433365872243831138521737317514325547842756626686357837757268686732675557881561855454386221786545364835322357441585685317153776111164683734365382551267831327688715735285328427672464267855634214487876565424857785272867536127165838673785251131554421731533125218234521715515237548623443321842732251831477662533264215237383172366356162717622847424615534417634136638726658558362432852482222334554242777633638463665461683783755341524387626564517754771821712315357474323841167748334426184334838474763136713277271578755378348873226481261285868684278667367265577236811626771711735717335128333753223342638776751317732418813378616582455438772823663471472671241561723826514753131148144372863638667831286663643746427726613862818658467112473424736667345233188134562448356285677145438128837782344258275465148841153155544484538144638265376236242217468778887768732446644864657875478866553318853883537831385758157552714111116883342715712154138472363678456125856284362146448254372216247858212581824637447854487277813354365484243322126623637456813348343852176317571828773384872863717163867567173765328344718686874652114536132475526212653523826188761824624537146767183825223573265264386355751414763764843312385712317583776883841334488625815483388158144488784483737466137566455437327457384418383711413226868213512443248251245235863884351337388441424326832524727123548448268173122243813665643525876476314378286177337514775234328667468587473177511432828287686664211126524487358488557167816631646458662782526255262544841364428252688764635356561484475528161873613388668255578687746368865138381236758742316366626313815115612621116551782574745246144614765113111366422241372513813444832182168783412335351121127358627587411371381421526385883738367176524522227156175314713243765644153472363165774372367353216737734172265573127225327248168423283667554268252861152846811552566714558133147812827717268272138728771454765635536874787475578157516658682865474772362668326888756222152854481847175822751221765145842113253347723314145734571784875156442342721611772464488574663245551381533518277185231157522516228745867775761678788811438688116852457814572518287745888727374176887487746864483364521462751834621458848516642144216248185688227234734652126777317638635815784377651785563242543422175573733856678337572863237138384537811283437466872147356636633175563353613145434517111471723282745271227482632153568377368584448127135544467543516582837554184186466136464887815352424875475442185464121265666758811117516757837464842627882544442542118382244867828782346111512666533167371446717674517774535768122138524557214142288547117645553736374746267642827573883737878338566117732385544382687541145665538818748877138565482725828283613213777732345267713155313323351571855315531753514565116487331374146347866648158224674331823832113746214864741458887836125477387537855848484246636438737343262582256647357338812622382733218165241572413846744665465614575588673442243513876411653284643767685145356276442748514781322217877257441755468344261356848156724315641725338821816632333387576567217276776635725275324514137485822631174327868474173111574333524754533865422856434445554883822487846711412314826157628668166365656414444345683118766434311134361526832152382583545285326176574242815716135385221715434143466771141237547737355135265546853337313176546421725474617363827847744723173725413542178815864364118282488741877348157827215537615634761321125811822328281323782354487188217717456374364365342433863342868625252586838433653416761615888541136872532244461727181766326277886571484574832573348135754248834347377443833651155854241351221655551154123388151356741463565386728772773727334456186841366483864718556535434578755411236555848176842682745358832543563837522181674521611846836281127426235145674235713816561246857488278484867152348515352853328155634671636537338378772743164676226544377517441835871654832116324148137587848142381353433383512113576436826781626428758185145812268877266726555816848457838431347885778566783183347381783712543883577281741245176815552782742242266873134627833671236185267172855341224553455424414213485218165686718764266415425743148358332782537124217845477667533465164344464335452816551873734776883474421724136327538337677166422738378126538832655687233836247437152854677336413542154414138632443685121544254275386317422345285252734455842155555353681835114676836872562367588775155214722751513761186821658334848461418684612888657156172625128623663587668735682513272441827571423473345834461227515346415221862218211388416534345576773315383271761865576735838444733133638554647381527287487313772655634656771275847436262118343518677723452158643172418665668176552483645521452461326271627376647847728131276873624418247865515461857731545211277377818683824261733315466657645264624551753836828856454786551734313337411313862553265344866551577871777724771832845546634358424718776625683452343767536542543631577816575427358645156721144174242543251463384267441728734818323573715452442734678452411562481327357811152844478872733558355386238681663756861858118154576226515574341583888843553464523212553111282857846812854767228221362348857134834384246323142133631554456838487473564216517471734776282882411848865483624468252546333172382854741156328463887127317573413417758531833465662233631488711646278648733135618432752817847523882562541424145884741847783621571713124255631726351352187128774434735227472233755851636445474436816288143255117654334174523665133442353338548312445713335687267423324644258786136527757874551368211331756335885654285883358476364116277477167318728318341355553658334772658588232168613784128875828314541258163876723653254753442857418424182145486763645831842146544453532636845537518183776647462574736666852271141116181652268124456721126345115266462224431137441723732225632218526647157751665426666778127848781225636423546174421665267122816628788537558736335482624475632114671331155835367767535171214474518548314517111774314572518124465315886354654448741384244743251456556242327668313832423584776888344835254587127428231286675161855157634754563411184113432634681212645231286113218675636786836557723313182383321745427754443118557454653558542533244626666147663467511762776546822854286812764772383878727577246318437238363716615811583817487235137846541487257445461362111588118564877833718341753878781426136151445817845768424728455217811275326776261627438577433148416235424152675423225763373254214526255531455816885478467688776245521148275636135538476822861271618413472122321734778147381818675633132843662725861544833131668347522415748627774837882382458853721162315743537126516315518114452255383446416867625353573171486323817227567265584728144243252881752333156561188477183514486346338428784242327235712138267713243154141132854647327531414885226282352465561632433853653253741156777185327187232586768274235831525382523183713662825884426516624824243243138883784344782122471541524848712716783236563444378434453753414255831243561811434344441485742357527512665362312713326356416438242873748863768158347671881331215468313816383268763387383422513628356627143436863813338642753784635467767726414765715675532717842258546474132528661834574434375482152651764883835638744256375882786638613713753482866443776336173445472732664863261562745245753114322481356724747752636227783161267326128712752347467288866841556457751486573423768645312856873677264713227236128774311565234288565652641554262146247282574588425677542684777858644264877334876455821746381253736211267182556268451442631725185412538345251473327128282833243381513114328864265174683756267264235215534287514772347331624112524682342461272358551174213523641711615747763868532688676138363124275656231586225345723573176487415647831876555788477486411118826451343147463853556366526324326132626186438774736431652484583252434613352311471728882216356238468511742643651448338525826541174134675545772525525147338143657227372543272311423136421184856747273286412683714113425421526252145154712647578156187316357141714421557422271145654275777372363774581433556532763287445268463621276821743566443438263656384536421118883228551583166188735788237215182173684648726236165324843734313212441573522244422151214573874882615454616786814765786815361657737171517763453516253853278822665278781676888855641635824523771368358823578241664747131267446548445833351245322453333848471734647347631435523767667132871851135525448572144877554357425516571647353212175171836158761127446126852348144322411723661648274463254474185487345823376821815852764873348887378771265764435871764257153657575233241524867536228315117878784816312121524837525545723577257645442354362762283454612131852376537458456681581532513722573612134776737265274337487441584862765841288112581878738348858425687778818475612411441864836467144588445183631736571534686341711358214718743783441261341561652454464523583443754472265838861225228667584887864377115285252748452185754324618214671716373266278477131253311276244321657155363877782864714782223525687253656645134377467717738141375682636462872116713661548114718375548375144851537565685586663671335721484486256714333788136414183672382411282768753232112422537553687817674561426686514725635571736376245267818378116274754863125741155347148674244563115412423657768813764412736378256717615677422128156486376565587234615838772643555865313836276866313885541675636231656628434631337374834683255445426757612271871667162282414128337123481667452488263182248322742523567584486243738138828522413551526475575865255235684355115867126632841244455848274611271773372114368873335886421577565253557657655541541618127162737451465217173217358381812668557461117377185473818515512348715622337156532771137678218834872423253637472335815661546246335536522784388188378756477217717162671555175681628665871652343155874846225471458473671626847858214218831165726735688461622263754362731734123665814746528616172415577337636863453544382363531342566488751556513564864286111214861561253217655828415481212783875112637127571242178585676452451831264563431215411131657811215715882855257348585565641147128316852753435831476144564345727657123754717487245526831464155487755712378784628866531544625852713183882477818883323177456658811761265161861527541745351833571566351737824643457113547317355378615457716847374144814412246475422557145538353437725866241485613868348783735168527274485214461654687543576258626414521131277248375718236753382642283853661162185566478721721881671865881816712325631523381351124677377137314516171282137234743322228823351761477257457842825254366824256713857463365228827534136325782472763576511273774614674415655461353661887123387458534842516721752778876787184536285586413185231428166343222252766132663148533631217548727643471288453436376218386742381234268758752184478111618241871158276257611526835513273753852557572857738786541612825762254118434631461158471411218455346644357721437231644785472134555881433275888318173127365265586286836224378218774185522235385175435144142168146126574457174352482183167765746245463825684785645812227112546867415464818178543734555152376643481886853852776236382785681454418288585887146368155845124121262277784381754287253324722884626742372681665772567588847237286846665714532226143788483865653416771357472663166813858745177377655557313448445216587443656282834271617132873564371784666472244668316218116331427187262775111233163748446748757664542385855575752715446222617531855674361584141831241853731543318773876886411151774738718734761445633483618712758343871734721835265462342828264784753716375344527664765667572637213283587688242574132684148272183873332761651525127743354243418317336174625566145481422883243744364862143687862511258128318683775273843373775586378286786663611225221524487157373862541874214882521237674545871847118756877875286828644288454447224261555151541787433827454785324712524136746436378531476536755212154533777536251724857371853174255315584116633724876625466775761486622123683132281552665423516223874786232283462424352863821547413878262271427266613455447567118467354438242165433348874316217752576687612577227532421421247623742276827273515324263774588327668444246625842174457745381738385221682851145821436711186748665353173378351748552248718284157351468654388831875168156665747541674351348748837444125478151574618711735378368674752418862831161841181338322781863163636831513614474516487673336541524364835883411756263587831352373466838135346127415651121752158113655665718477127251368321426133388535173882481715838426538238234177385641588261431878643636548124453634653666428217177426662544186821482438147657263864647463547341846278768535158313546181324714565274736771842573716113284571647332314158754118445252472586367151887168652652613728133173666248738312366443373632241515573856746367512313336318488241714161744447714115338835544468246558284345235683223775488843526778787837416663855848488141163756313685283566833124133514611542263547737281773772254215542286421632575854112186372483526743481234348745325222721158111472681718844785826586477443124258325865826452653378886437748722721376574771843846815355785677855854367343117318651872432611553624717643851451823178882762474352743667563665464733332418346678733768583558263516445683274518487444464335822238544228117458115856353473865755721887468874472536268577862234662352214662716168483451724137162387475522788415152486245655162287613734514512176333647878482677215477844883161481635228165183723452323712678725757166848558446448261417673324711317563524137668683444777216576674146155467845774124112523747513576883516351517576183324215823342546563268828477173361486858341112737224715441724122757534525333475357444645627735122541613213451676176552283673252116774154868143358674753722213114787751757432733381776768551727863748732534476713771554125767554745474517626886342187165643265228724842714463767833446678885523155246324731614266217875744853134558857386434541267126387454357778372211521865657531255182137466411272334487564173718465244681816135825332257265543146632666467246338538644267677688353285588373623335211323162581583428168866845238755445722576336338312785588678664815447262882634235422146625577668361786174256366777587328573426154183417771314883327256764225527887834473423768661252738821268837377723164417354136326368172842361223125223825137756453857722155137148362631733365877873732536216872524446436764133726761131452228167522262824177466723783414625233142737135214847386336576526245115388657377748337162371647352537157681434367382284133666518338212662624122557434514872288732728875624286822333783276366325154118377766455388647553358586763864882668172621542486383858615817386531144275848145745741617787624137638254648321854448275164585185568572125544211324838415865262787343524735225353416354816183768664522882123345555887348817881856875644853774448687483853453115458814488644247114524428761767874874478353434215337671333316765263266663612218632178713118476561577224483313363141127884813365321133352572475641758228661513234327513327552736878881537284424746353255122862565222335654752313548855434221144562452834178311561266376467263275432384612381856171474121537543255372417337334648453854124465642175226151871124568852168473656855173448444115233725878716778534617153863871584562751616155814345741716764821346228347653741331425262448537537341842616676671788115841413326757412677444277866734435472464745566432335621214887887412655746363116286437547833438241113643478746136778584154113886614167323357162315332436737116464762318612475326458558333711246581432358566618341815825885826646475562487755686484175542743563221637457333568224628844137142464517148753766487836521831445657714228151817654416258821561615573681213364736373655317362142658625715142282528741172817667711468841222111258713822167535123638621333533255733274887412671858572575835827111478535443361163827276336578385111164214212814315181781445132342318381711517135614348151554684874724464235134552655357371425714353368783162277321546341382738332268215122386727543267863256148363754362161618564547334321882575861854261847764227127551225174631636111782577566138854542241218248558287343768578264317473211184616526127465183826413352237216364833515448548747547548653541876446717118154514335778722673746282737385282338352811883757112727566486873675518768535517827255523358627172648285228368167744463317366635766676357882587347455682225778135614816415525855762181727466838516564314455627364464153865568275417818822574812115227214637323561421312536534715324242374113435167268172741221358633852137831547364848173755557436583656446211114187662147351114458382816333383763235416832188232761837256583536456166628588568745515831655568321826555225162623264333415662584343688326784653845148478513737753228647483555755158154625857441433184413738864476273551726632661661277452127466742113274524751524513145256761444332528677123762382213485262223315464132743726626817856464343664816311252133712453347651775212268851563656733875765641675783175632685831214267655325454631815568314854655662544672887127274332837181455878711364443842638163823322163262227242556547711774645637744766647532756117755881364734574651322244121437363753755735253635457647741588326658545275712641253676567227745278243427868688724153416387278416387236123588242646554383167125411883582517438351626145223581682771715623236157131611378244324158246417732134816573362282388615378826766531826345668457574524253752514257856681754668236655742726647263536855147174864338873752536811833524285583658158127181218716588757844463345341727377318858515257742245278611458387184676514788571484823551563282866145353733651416554428436643511361513773228855562128123367524222862258547138686557451756375416561685346756785442884536824452227256457738475688474547246353434725232512228678334758268711224265775535757783332767352842828115651221456712142827644515614315541638664125288187838178526156577351284685275784244242214776242846155482671335351765843121412515877276455177673666231438241386754271825231558533225825848135772815817276343862251353743726155743343127453415672326512548845231462443355582721853578484485668622452476113244846314321626873725637472248464567755874823521868282548733346468845241548786558465321368313848834258773628474187621353344644314726364243251361182734257288321768216237518686312255237624656418828317155175372586776258635865833553135581138855684428443546685642644364443844474722733744123684765862866861427556446777286256518663861333834476787466846538746723775717712326615528211553144676835573251853623865452527427854356474788554773741183214623277228836863524663127724215337255144633181152485716354665265587752835232234144235826184576616472665855245511138282887115675131384451661282711788748526754354141585253843138275751317173278581518282172181867523251828834781722481215412465386312464164528561476516717852451252184112423175624334124576737714661276878773422752868187366226344358556112454211453458755573867151822333234352366328264327365161723122335457555243738236654337121822212344268371334226873173774443353554841575617681455458716757153115558373854481145647574866642652324743214354364587824421155387126267487821827363865373175374152668578146138536828126422816372225261634446461158521368226824746331383344177748712517236788364666653687762526554622232811414861213538823235577125818286343686476411387672736515286613886163667428225643733251738166336631617525486162111833176671374654634273613168731831334518317361648727275452145645438755785333383374768875748321821416652242242446528577262761423451732123237843312361646583632547336535827623621816577886838174727236628257285245711588873887138422241763273684844861558724524255148723211165466538575266584621785464754457662484353566886464241387433875428628121477734562643678138473535586188216186223344228732636188515822838288826822448378348827548736838728312653713411832884324787576538165332278488287476418885743263675315274138857765223763324331514232458533434367588833754876514124236278232555172844771265835114537246235158556611788523163474736357631236182733527268444472732563836158335227245158864428212428678382884413333538482581476625354758848286178437873233841628314686681266765725223514567635256385821646334563184122167587228448141672474536716314271541328363737812628273563261345118742645135475654642887872625325815661343477144224374743111518751433126862736754352645644751716446427722185336762616866328151661373754128223518736133465177124722214265287224767442785868637728138426643255637233117264717571571483753245414277248163543162126765727212647136857561472688862255687118241121366288834113158271416827747528523882475783215684442133574813535822731428386832863743767367321468553551286558623684871663282818864771516227151831474422447645682741786168872174673235166416165746585363866131268277442152635128665862255534321245185782134536318786667782324147524283163536724763416875175278647124131471233216126715178587268831344177752647356133287224641581685688362115841221211822453222242471324525266857867136843221315541352468653348713613154345373584275183855158531867861364588424813217561665625472765562878536886826633716838246471643832752441237562527212132431214554641584265133774562441671762234467423531118374312455521687481733331672382876476533654772586248278317413217746556737126746437142873488718281526216175358617413671626357374813321177271751657885637451744745243217636617334231413818858411524885735253886178736274678685444813253367634312381578846572123471466418768281486424365684563577624834816533632871176626643181458757828578813717773244524774436162861784445633171464423811823521413553886236411247351526317636475486384676424215832588321744257657483751258678348114183744768542151313188133656534113347724345527347557522584314624628257583721545117526375463714263748614556676884415141373523616182828144678474725171714166417714155561685614242456117522733318675817667317688535332753583534487677552443822732132366333575581165537633671464644741164387447525264817766821444788582882743384777847732121235365731171764751748343275184266461544323465542682533421686161426547878776446363573734588766427278536522735252561728735723432815768127267481547388243722732882438447734671614281124164846133376787342365313422581177467777166432253881226468385483786644517841736185724551281715782562683574564843124467254834121836282141263637635241535528686771268471414466736427541117167453438177777831621838773781354185118166422825644746672652384668366244586744817373621854678653656142416641232636868624158624856651467112272144742668644616763185243844738844124752722353685615388374334227281672434665515265665351388777587266428573243335818185734712537425763477388232787767812378213125267215832721186843434538526588615422622863638328363383325864532141378465618347361371617764824285873827257178573611466231323317515854366242711141774456258186814518686327558533316723544241512822882388242664812358363754722864638568141316464518583568626714847781612613246263773285637417453348176227238852246256788536168164832651164136721533262721184187181856141248831641836676485755531623836647516662625183737371443565565386156773625231111817827345518147721268487612478538388883454134413525135762621561261131445548686815575133881117132285818258124372538112816167571666827433412541681351257854413556747642657413477271215162518424717378114855761377365872783612243661676263428457875148325255341314843626835831625881788422625343737716168658477877627358486136471757534285134887431254783452218871313478858125567383768675565421357365232714361116143172634846838756148821323121631618532823676633884776577576526353216165314133823462688244553778266771421474443641478468522816574737846674175156185617328525731324768443522236544661413122311483871431753165485453518512347457613352447442851585526534664218846843146577673612851264511627322166371818364634535553674715543541745585138518528774227288421734575735147855876752743368866841165517168532178432616518485786561121837481568522478116622317154136725232387728654332883224886851538223347211733835125484453755775317218178158122621226662644372522317316873781152744466517615754684422211155132812148766536773212251447114676476647335845628611533236144413746472811262314372484324127137313627527635736861661717266878775747585135377565618378286584443174483113531484524523213757113876336334643658777311521566434337621421472726482282254361611613472274837176433643864162788851314233233182344625873475255122718228147417243372765771153564715336317147838727612855852275655365685416851812348431626442877211738475767728653362334644733338313817281133565582681735215217784752561361586243827181577755544621843661618121118877612577613762723786536544312251621845415688442481148664711126245846473618628767433461551268844244752228182134847852817181555176452334218178234528626273348546258178261647621663322638123174365364747727388156885167146145272764745237123128474887462245668416572211563872721876721515237748414271317313254858387457641532147166284684128262187441215824187514781266634341217852637286365726212837262582473278358747534216484646263338567575176867487867327683115318332171385657116714683137135665265473168534415782727732614237452885863433834273832415572665267366833873332428373521774111334137781784674826554775551857676181836565141588851318554256835641481156237257744744781873575725852826346132816876136224278751122264514373563737247728844476477362632758163126836476431774273625748631544546816342854882426477123575616267435766852427335643512861232725235612314216816461481677366515637218125433671416446572327638263881482181165115656115283556273147187754562263617477654171385318267521176251436842466765565112828472255562372165218586144321573287813565784862248117478511637816314562227364175866664332854745143566387182286783136528625756162878525181271755735476118654827726375574552244486831648274346225423877183824833336167152186465177872652641214546751325531774443246318148261272533535757542146851657333315331271413885428623325857671627821535676643374242244446272818652421185428646738128163657844581643427851482772474371625277636356684151751644772326358546361615142554381165551478275615413234447353648625262865778328866741374175141123315483666658323114138116672483323838765242743711363271528634663626563154844784827216864787361533876353344734773618163443845817863554587837375353328531425172748764324723222543762485434638883768857816337178432661774224113156648541733547151374168551667643314334314337141748253668732286584586124413874157633816751176686755223531837381753251783516843577686651613218255267824244535853423145223231126331138523673735776757336341427652632648624657232427327843552436381135153427732151472246217311686316462711351235241334541132267587245473515327882185225335143862485611532158858728331534235483617868637744715774374446537173824477141772767113512653166742731277178737521477447361366751882125574133785511354257785566356434641753218368381475334752284713867851342267614728143587364424417811814771257316222236864465413814861848665215884616411526725225367463186526713274882543382518116818815636117382752812712567538788471823621246482548427574414383882583531642171815744568618115354223175746125112383728645345742831887378872152376237183634875777774512216377563885762645781447773348266464372571257487644347735126141646762811582111461765347526376822485645614774427514115556755557653827455583615163243658132656138422823443711126346378778814324322271225165144434752611362718717172181617827852444675313251741247427544115717147266716623653774225677247434215132368647623852374527332732722331537288851355451412312254336265385725617333645356284368418783183541711512863267484732348828284457545386151346776335168157577184514131313346622325527521345215255365366316145276438352473864251473826316112515815831775148254282151781258875275676321534441526483442224223387832264374784426253416385414313286128424483844321537856584534822521232576547868682154471841133752861628164747766673731884864848616735448438266815875661136282267522656615533883151524684128213654836257777163175713838336326388677414752355361711181133625154878786842737361812677671128281685242736111713514432216865485221735124335872217342537275731858138217686784172816755544787581164881761455554724151625752362378344422133685136512271423656574127525385651233544467176352866167436155227312653616215816163461878575714615467414132673855318186112388731874425884233125626535313433475578527176216228742411612155863277136415832558134242822283358364137447537653363477656762766411773227177524451785331864752583546565134882334421843711272487313638333322522858624881675831722181524752674748717864633282234118252523472735422368633628712218285816352234673561441417358271255626152732361627367125841764446178371534761483781687253835146625348363441556545273167157362813487434435287712435612417331287546855168374665574254362752841382154331238615753865467351424548425714737654821823461856114468426557146583872573885682883436874331212551558624863543632542245368356223364845348653574447632355851572528118283258224537482287741868726476415438857471326415776843772428751181582338437668324524853665627427174264276151652111266541662568874862488152186817821544327132121273337884164351258873112824283712231881166282274762763832141486316166648358246321517461562371166461134141534853114721544672647142155525348341642781745818141545727446662515341228268751751425163767232347773581127153615744851317677513351365447748771354456243822368564312813387363867478784242875748345236432825223531565651548781634314623865244414232666427466445533682157363771751686845682113435683714337675337487188334515744114384434357551386772614734328736733862484721651384432525723353845248145586658454517735316648581185615832587281551131321652617776826518435342366165614438516472644154617338125781866471131445628635285674384838582248323154383252357576113112152243244216335522623272743658821245436526241358182418554435377467677338628455452563227326552368786536258211446563581173435628218537324735836253168866876448335885676736328812828713281711414888237877576146344232121117247213223667426131335714113723213531547865427177277367446624685854625573121625214587142671741115437572554586763232133811851557262536773717484476641537584346223876524415311748574537153286878363582142368142888138414631424122462342248224322771631763572178783627847821147285265322375174168437832473474711184576474888863866435564568655761388686782655128352574612564726825875262217666572336616531513364858243153776144335515334382527661355651618121513161384388547472276658476887614117713742783217326658687353623771562515772817616462116788732266833154248185763578386642622787482457477147532741446721178238174778384787227467573764733726371635335712334137846238378656852185534762181264828317346768565434653241415428471122813581423635112422163462321422368234242415625837611647736865663672166376545147875845438673358284366164428828476872581168453367364137478447885651465548384527324435848443248471224758377786286318788644664372151415131518335856516241223646423364547588287781412275714235546864324644263148756865122535256841838314326631616351462682766527212212544273818345158824161473311127238526577568764362645754771543363381655473151473336772855811824244865524728434626114256454245635633341438833314662187418724354837838162852858175882682371625264553438332474383577717836564777211553242151165323884654121165885827883768775427414748347124511267834812458866417457158551617732384472526283881346242166747686725851178487456476117265551328667751734764268524381727431237782577266611737371778856316178757113488265847743521166464262127585812487187873881117645758831386577686183551841846472654526323866385665131721585288865423615817317872175765824144841447728875716364578256614625715431867762158655721682863211672384882345542273754484356664788688247872513331663722254577134153567443384586468642533177557824377687127144371351223288141533532111867378614748567773456416738636333721782243785344375183445115614156616586546266215761165373713375845361135348868223376714655673344432532233185627515343728884877132852165344872338664813568834437523436537685888453551716461728232262831751128652126164417188123246115242753435587854162867846836336848781141381186218416861633353157637717746726144151444116113477746324117755238241342651432368654454454881478181285156161254738844386776474484468565838822385885185768167573588523726477525671378533546854371312351857475653657312322824157745161633441112446844176875856732415165428486337633217453657382217315754453883752738551726353263184245662656683833787548271187384475822773448383343183662776273222773557668568713717235823687828264236884717487344257726775274251368138426723556138571257442837855857566747111774612684247481256427375525133227247486717323848542145287712788521428766287588221384524462346718822567374711432431888815231727466233137128257181771641258816752164337245631236313866658321853168318671354143764637461182257434121688772775228587885181275825187753741588722366263362456627734571521671527422617832734565145163135751423324454854714221472886365522538457864125182574388274572648882544311663858214213182546321366426824557543421747156877516244553811866727731871676144562352366564367515388146772473418334568875317165662236724628831761826714132518145866527671243886887245318536111487155771464524218183521243453583884548652213231288227283244264251375217387617627336223244661143761882787527186786228141463447735581465287617457235746574587877486241731511125418658317427822632142284221823228684672433824147758134545643522471845187146556848442853284445654428884488724264125872386617344642311621517675774348274525445471611743568817273677562123324738518641657357143121444312644687544268312137518711521852272327177415136215556514256357233454233168343521273513888321614611223176166188774131428817178258237113426185664746775573341863743323562241414757232356582374637551866156714758538765231364687258323688366552472238642667214621522841544285824236682835322772418354318385856135314284685571631653751358721124654761218464413245276222251332384431127662273153572888775767184417226183267174417317375567137148557336544128431866651767677252717531352354864851373331714571751522416313616262886831511135612561666187134621876365432215675888526323726385153678288418673267281538762286768133622523186471851828866672228187155877784587584555217773185564436132571536352676817673848213346115254824328587874728724434625826218267288257643684632165284785163186726787328587657864171431134143681171868738384257356315818363628426111183831115732262637563514442753858818521711826741314234548734775666537315363617435758373223261737257178372543473165553862267328632516144318214526143136828411374485115285123142615628866716832142517124386686437155853213883784825484883228868362823243211276647784358372734462551441732546221666658676736363274235877143451276553437171474688773367242154268525464242871125851784675551866885147537483151646413762326871336741288135131262862355144412235775414473884676764666761272182268626734281257812437122216815781768222231843643473842732438668623534453444475438674766116664215438562583132531518145623476417127632571781614661635816312827438263427266737811844211537781311386215128463761832353173728858848348547245532322523771663525571124745366788628846375158112538337372515281231624422627537651671528468554674626754133755231865623626263316748222521556245812178422215233776485523575851417626635425538873228432765457168837351762332878867717674276883552357114213161554134718877544711113414785752526826466452326464231571836412264863578882784546551624463624847811735785664687451172478757847318487136214663264273127863453364718573318736644237236884846363341368515475756748658128418746266784422836217753485187118888313683711883671432762347747617215562743518576286431364115566383556712128663152615687268623158822652438314668836166873824776774846681676754617424118167226781755581248821382738816521332577634754577568365247115757777642515161127542267648256712285861777344153516781354846527383888834468444713142634287815335632385687543178151731328778323873168347218174171731753686335388666281166174558382374323653253275785588264671511414783737258467626363881437185612277462853856338122122154521681525338274541263635843718251786545147155166153133686167551348154567831246728732257854478218275288188621163155862634748456834253138886664868233863446858543867171846313656371334577834485682255826643628423156472835174558745336162331833314623873472413477872357556326556628877373123467236337651472613465138457438763573875417425675133316848683338354217758561718468468151678518514622513231276234261645771432352324442752448267542323881684828757868644787462332261425585547528176146183841744826868585158577585751561832812864632347753477386773635388548442874618552588327663536262186687753333845154853426771164878315252451442557613122461443542267754861115236514876723766287874451826584176436785563516885653285787246222834321436755444678568254135354516645645181542161536248523724235586162346111364886318866747332572354177755577147447832673475341446542186252133736336585724145258414371185865228452268321324781447765442137221152878761712857813646881164575357553418156841721182642424573717531731545331322886237861487365734827532262751655437233847345838476841224818161371761655585187613156237235712531626783847524171376661143624574515872772684112186653437616752262421365435885765517542827651743755883132632364425868737314855332581784633451867532275813117517763421573835588413321777178518143484442482152167381145853511224134444384586383288863534543531634178227634164151826831175314477755373716271383841614318436864625753741338854318468468173666187641681424125456451866871847223154724836338561273776244385627183262664854822685673384434882762675547144415232781786248245472226466247647737615644435856461353588321244687564618253447152157417135126243811432853254656562363743421735282285886873428662816751752732451631888586585163321815672735676711751425265447671731115757133761756487173326152782512173583838522232645537344124271155472365833226371543444453446253651584154365161625628132876652685342446774151123275257152774653287833677753522718132533472846832632661122161222781111458211884734156267162183342313424145131221285567175252545443784857437246725473377483326452716383135526318516884611533378238757738386574441711237882286718681263168484745885675574311672527332215755246645713431766632743346564241354885273425268832773126463754776876152413686556335346152136272775282888858674424528821284473556742142137562164235234811327341532735815468636655835433224857617857257461331516716115387458836623484842834682177655284631538867377762535512616543622282722427243871781856737457431511452218121477137131514836768876533443425431883463521123615354824325264663463626668647664311467851163511457485152685461716543315113421142776453322535575246246614623336472776176838254777168746867387542781218768474838445375673563833262888742371768328817565738677112387242471124655526444623262167317182286867332488784753178745363142837374276835812386562125648131723542836621762186423235766438422443335164627877275515752485113227157324783246865285741646844335147776825736584171334187788773476731577667477553276553212188134383412874772314528755235315715844344488574464723714327824465556646286621157241427826317721446611486754831641353142348236732183217543833664788711814727566476364228288455785673464823348187431513227161321877882174378884313464446858881855455531658515646641154346343418642264346257478141655758581886557765865672481884136223247816368213418164763468647366252128442353268732228263684521313124825247134516785412471788521737888461244684174572325815534516113126241261634773875273645163478472162275728384542731681267522536333447138524845837814682241353156817766388754143583868778575457244581826862835375348383342586367686485673852171672221515424627557856532426632451578635767341265562374483733148713636321721784146775882372355233215824585354655313582386522215133581611243364765725621371252752771842832828465854286331346187266857127816424125134724825224117388767655857358547126467886154783376217614116651228866423688135168441377384158262135464613575688633722256658343555688138453532482441235587423734111824528877787518632352718143251322333777654284254448228731745836166154886315432735424316857547724426875366825765113481785358111258726144313778158455445841557643581182233477478175688844615436685465577433846712341845115348875523146581741232456421636857546265166782576568412124773264135622888545754276726884863856356884773414158177626126578565261538814152454157581217755778165127528671585817726413358713611812741315454621153418735315646744577325726357354364343774155688227555187724326423514752354884513834544483433634675261315455563765326725734167545658655817254447645377467565888251236786518648474162575333777414573233473124162438386726775622631123137331433646332672868286336117422825155188428657721336661347288151223733462836764887261864778755576828223325687247562667643687212561272474611585158272553583871246352218236276447366487547745536358438148764118812222165415667458383867842342318521336464141856873248581632632544273527138771568458418178352563586625125814821535266243264171326677376847316158643157831348442725643314744146171873646477482368781782272673351445778237843671326816725871225836462372766211833533815464272364872276858541588722728335641574142728125165685654835428884117412651362445125377646778755756564488523457136322175441325752524838552584114685752115133688541881815665762232477574687163823673764111274486315658238542814367224321848455175357847787657675466585681235611886376133888464871331561583731871325887344277645674412466426514243713386475226352482248851217637567587233414211148361226736356228165565876456162185166421246465133655243855352127584346827334734111522576267171716312613133266676615721216812683188236235453721457646626174244251243723465646448771242711332413576438733813627365356546246346682425157355584137323146466682137336732634853353185458765232445867518762226258438672537747653745616344453747652335154618465758385171136867734566777347852484131687667164724241425335727836341876741526665258812181343182733581872814376752348225258137317637322563666423554263677556484827655828846577513535881326132524858227212736284256713532215464428147758683427718351311421634136631573143152718434254263832315675484365261422361676761154362588234531154785873126483468563622242355431826222183788213768112885237742783572787767447682687784176556643662711243877526673238586848278545383124322731214174141384328273478471787662477783357356455341288187746378424711233528854558644221684822833471513722424848524512562861738247854846255521267288443216388874668761275713436845551872277265518286261317651422677635543336587563278871623354438852473516262878384852824356765357565536218467114458257341836233171648831847444441462886856378246816816561164528222428262785321622468632738251763671567617246317122584464351184453418838624122783157264616315727134827556858717171856133661813622161536387278143648813345436384572632367772756177177823253583626871776562717275854422447663535381338182242636882843273558528248763348531354843244123464136116881732444478441454833771371571346186232365871833176354352326227727211334823872385827824732243182718588582556645814716288428475635372247183634225663887815544177312533338387376814711551225371621564863458887645732777765864846118253567466882171355733481581767773186518818626618382347357144738817528516574725614545431745834724343384627115566111344435837476511411768378713273814343515418621762525444184877278571531231718886747358435424347265838823684658311745778131522325515586533585485246731318122823473818353377887212752772758112828328322228114785661525311367438867558671277636261822428212155127761417283656858117851477673751337447766231432113857613437473523437822381311226413873786635684816484524324135733287446716863333678116545554834228553384587732788661121346635227178475535374261716765518268552856561284687625682448818886822614437444464842522353251221462248347153465561678525846825652573216178885513276118388652287442668137123274268878415436556367281263563551876462417822664861776763721163231474322173821423487245533231521337656765137775225118222412534256873365548826585153672532742856532457122661131313241318353446768112578456528255461171113116688561328331873467172158758156436448577172268573856262727431238774388266381814211586767217371735861777213714382346683221518383775634144432526342876888145672531258261378432723821618371815165652337465475566737865584355528181234642875413786353868164526273213346135642887333386281322616823747427672872672611181128871548831642411355534361478287275836785731646773315438476165781141731368134712117322326634811875654457322788566467651131226774156582484261236561486268777533137654568585365127734411184827731363681328843112874335142514884621156187642853112212613533837416278784255426486217448687582117426352474875624412745375242122854258364753182232363812283481373618315377586415312618488388424654572721545743364232246276627183227455176351657777513371553357346178357171156885722111753685531815841748722221668838625882422223624755616525352225176343554676644681236578212173582133348777147514236855563771716165161847437848368134257432213865543247176862565477588313531484147368743416354767324355265824835438311321143136827341466125124357357178774284742366328682268614216814588667118835534284876826136684758623284184626733832588353687763742132236667457447216218147821862274357631536477284575175847644737261514654462757325581272512675267337614117883781851634774128536158781867664814765734728882824527556344677245222652211218387455272813171454863745135146746557176846711746813854456636417634517288578531887773388563861433574318356876865451746468666311628155657215767121784437164612734326577317442323188512815442285373548438841142457364262776615781254254658651565863471534254441466442576418163668614336748853186611557868573845776815381342652378145532251442188386732556682521481841756711666256845252737158788858835272348152325832771555232676646864264636737137765886228454135687612245787317155254842577656285663844184521486527573436263572725128178542341818436476263477366737746667483258282416628637454134518845684825885713474446753833451444561638385565774275567831773773341111838453631655328663751187188218368815245321848572754834441431126614237631481858742832843872874355337262767533277167252221475711441824761534842654246457466653456555883655626558168715523884331852241563741286188136358254574341461377257866343316143557673226768857348143467788458474823241584478873753211576288147238521368674668524615664344854364385128686723642212745741835168467646616384368456332873836431356721582777374888338223413226222511628515343318843452418671468325447158571571432774524478485873527324848884616475733847774153414814884854372638768263518171321462767821817177655647615213832868722314312725552773253748732886844762758137583432653684573473733715152664481441575612161474327315872114253864837557452465756374542413734772871686238162524328363264453512415245437832288271224542543661476181234183773487528631484738566245165141427367171124651713656442544758857781685667641731613417232314288675415847413482537468242178168713344447345284316241732835528588578531324833861354847117455324838887821474747744847424721457542541148143187847838341788734355466566472451242682585374334466823636844286876656726441541177665615461575243817286511635788223483681654845383728461218477351661531362453853335748568417311466186724166322325811754782233845652134416718847287868425218481635838178725428217682384724434413116571153664644271411482785743211467544766812328358164824585575588453436236328732437588815251721665675485787676576345815222381136252761141774533733384825722822234486581245254244564835226165758284523384728343786856545812487174416443434434471766486174881465866271438563166244488764334367834553665378555746376731353486248365637823778153756218235241865862132524767361513333323587581747622461523351172311312657476527871233845246854652782654482724328388344568232317456372787636664661385348262158711445371741127551571715688512242883181245353614733461616253336533412525627644287132782426616165475384563384723286363412743525753443585422713237554462552563155158868222317321133571413656637213786728655474356672423657327217287836457113447766114368767577164554361171472737437822688424811356681467213386715267434843313438774872487784164657487882732272135334464823335782217166746162844236661653555282128722213876641754137251425542444182313667332177176512214434575544775717517466745512478422876441485172533446122247476338274787544112352286885678526215124463823474378568225681342658337342338647763728387537562485377723823553131467114854621526755516565437711744315687235857631251564724584434755432822527847164777868338332724434326435831783772534254186838167568328718747783155567846381214131568225161846842465325652348413235256454227711653742163316734246632437458136117858256554846457287411755455123577411125221752332137228434113862717878582243466276657587768162718666683417622188652227182567655523852387738845562781356424856475371566341141564443238876163761414232433284221561584257565848556668827217521354373785352716433116655275114635133178522768218271426832188568143116668725412476437737547451332233885447174823536115835642444564738474748332384662252785531676635643627527624781616855525241513266245817446786567333441865633826332887437277731231245818267461263858462856786528543113625568255257164866516257628588522265182613461553324888437884546434838666674441637174686575816348618276851854534118477183358674325348582647617227622132134883485525271415873654236315215611111232455463651173282433153288311383235472753532747172344363361888173537461723866775676613618486464424736815262526141672657364871128462753335287852831663588586365377154187526363362314324371626815721726565878715616135233381652238871345583448618173515712564453422225671535282116126564436768222384562381716623375642152738726526868787535384683264138328756577241731371776845237582228615328214386822868558747617786754186174473662534151145573458114521878373331443858621867811787315114538862873847566263162656557267287272838238646364331163737512131815118637663385735533476344116717365315662662341764217412778266114684267314235273261177865873651681664564683317284712564268285751417755824812637614462554534616756618761322141822334178538611355673568286162133853361381257853221447154767841836868865152543755568335467262232428475656712253326328456841751118827181742634666357761254881617556136277851426118555577147714666341658421458738475811424712837563314745857412448611358436631254181535736666767418244754424118225248327182448345266342651261773313744521654388573214878856612582862483145232178161455426757826671871884417673385317748222811377436485543162386786547361437263113352415718515255526413226844811246374552477514732463484748248851288612428376358566712386871563558121732731163626167263827661886855547787564833235823164747813558121665422472481863361311786228687354853617754826813841588812841363438718282343141184153621471217456316825727622682753735478511815612462643472551346676735772473644846112121332163712552638844724778586457182388345151231275267622667374783188623235328443
